PyQt で画像のビューアを作る 14 version 9

2019/10/30 09:46 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
PyQt で画像のビューアを作る 14
# enhancer2
- ホワイトポイント補正の後で、ボタンで三色独立したベジェにそれぞれ補正値を送れるようにした
最初は写真のような補正直線になるが、ベジェでいじり直せる
https://live.staticflickr.com/65535/48278573487_182cd35572_b.jpg
- ソフトとしては思った通りに動いてるが、操作が難しすぎて使えない

# enhancer
https://live.staticflickr.com/65535/48280119826_336ddc5214_b.jpg

- 実用中、かなり良いです
- カラーウィジェットを搭載したのでホワイトポイント補正が使いやすく高精度になった(と思う)

- ベジェのウィジェットはenhancer2 の方でバージョンアップして綺麗にクラス化したので、いずれenhancerに戻したいが、仕様を少し変えたので戻すのも少し面倒かな?
- 範囲指定してコピーをクリップに送る機能を実装したい、現在は一旦保存してるので

-----
190716
- 大きい画像の補正用に、enhancer の右側にスクロールバーをつけた
- 調べたら結構難しそうだったけど、designerでlabelの代わりにScrollAreaを配置して、プログラムの中でlabelをこのScrollAreaにsetWidgetする、簡単だった(・∀・)ノ
- ラベルにスクロールをつけるんじゃなくて、スクロールできるwidgetにラベルを貼り付ける感じ、逆です
- スクロールはやはりマウスでグリグリしたいので、サブクラス化することになるかな。マウスはホワイトポイント取得にも使うので書き分ける必要ありだなあ

----
191029
## enhancer マスクをチェックした状態でDDすると落ちるバグフィクス
- 前から気づいていたがチェックを外せば問題ないので放置していた
でも最近外し忘れて落ちることが多くそろそろFixしようと思った
- マスク画像はメイン画像と同じサイズで作る。新たに画像をDDすると当然マスク画像も作り直すけど、メイン画像表示後に多分作ってるんだと思う。なのでチェックがあると古いマスク画像を強引に適用して表示しようとするため落ちるんだと思う
- マスク画像作成のタイミングを調整しても良いけど、全体への影響が少ない方法として、単純にDD時にプログラム的にチェックをはずすことにした
確認したらDDではファイル名を取得する程度で、ここに動作を投げていた
def imagereset(self):
ここは次の三つから呼ばれている
drop DD
imagefix 変換等を固定
imagerestore 元画像に戻す
いずれも作ったマスクは必要ないからここではずす
- QAbstractButton Class 
QAbstractButton.setChecked (self, bool)
これで false にしてやるだけ
多分右側だけで良いと思うけど両方やっておく
- imagereset って関数は良い関数だね
必要に迫られて作ったんだろうけど
**一度全体を見ながら書き直した方が良いんだろうけどなあ**

## enhancer jit高速化ねた
テーブル参照が遅く jitでもあまり高速化できていないんだが、
外の参照が遅いってことを思い出した
確認したら関数の中でselfのテーブルを参照していたのでいったん
table = self.table
として関数内の変数にしたら少しだけど速くなった ( ´∀`)
- しかし地味だな
もっとネックを押さえて早くできないものか??

 
----
→ [戻る PyQt で画像のビューア](https://mimemo.io/m/QORbW4qkvOoda0N)
      

enhancer2

  • ホワイトポイント補正の後で、ボタンで三色独立したベジェにそれぞれ補正値を送れるようにした
    最初は写真のような補正直線になるが、ベジェでいじり直せる
  • ソフトとしては思った通りに動いてるが、操作が難しすぎて使えない

enhancer

  • 実用中、かなり良いです

  • カラーウィジェットを搭載したのでホワイトポイント補正が使いやすく高精度になった(と思う)

  • ベジェのウィジェットはenhancer2 の方でバージョンアップして綺麗にクラス化したので、いずれenhancerに戻したいが、仕様を少し変えたので戻すのも少し面倒かな?

  • 範囲指定してコピーをクリップに送る機能を実装したい、現在は一旦保存してるので


190716

  • 大きい画像の補正用に、enhancer の右側にスクロールバーをつけた
  • 調べたら結構難しそうだったけど、designerでlabelの代わりにScrollAreaを配置して、プログラムの中でlabelをこのScrollAreaにsetWidgetする、簡単だった(・∀・)ノ
  • ラベルにスクロールをつけるんじゃなくて、スクロールできるwidgetにラベルを貼り付ける感じ、逆です
  • スクロールはやはりマウスでグリグリしたいので、サブクラス化することになるかな。マウスはホワイトポイント取得にも使うので書き分ける必要ありだなあ

191029

enhancer マスクをチェックした状態でDDすると落ちるバグフィクス

  • 前から気づいていたがチェックを外せば問題ないので放置していた
    でも最近外し忘れて落ちることが多くそろそろFixしようと思った
  • マスク画像はメイン画像と同じサイズで作る。新たに画像をDDすると当然マスク画像も作り直すけど、メイン画像表示後に多分作ってるんだと思う。なのでチェックがあると古いマスク画像を強引に適用して表示しようとするため落ちるんだと思う
  • マスク画像作成のタイミングを調整しても良いけど、全体への影響が少ない方法として、単純にDD時にプログラム的にチェックをはずすことにした
    確認したらDDではファイル名を取得する程度で、ここに動作を投げていた
    def imagereset(self):
    ここは次の三つから呼ばれている
    drop DD
    imagefix 変換等を固定
    imagerestore 元画像に戻す
    いずれも作ったマスクは必要ないからここではずす
  • QAbstractButton Class
    QAbstractButton.setChecked (self, bool)
    これで false にしてやるだけ
    多分右側だけで良いと思うけど両方やっておく
  • imagereset って関数は良い関数だね
    必要に迫られて作ったんだろうけど
    一度全体を見ながら書き直した方が良いんだろうけどなあ

enhancer jit高速化ねた

テーブル参照が遅く jitでもあまり高速化できていないんだが、
外の参照が遅いってことを思い出した
確認したら関数の中でselfのテーブルを参照していたのでいったん
table = self.table
として関数内の変数にしたら少しだけど速くなった ( ´∀`)

  • しかし地味だな
    もっとネックを押さえて早くできないものか??

→ 戻る PyQt で画像のビューア