--- Title: PyQt で画像のビューアを作る 5 Author: yamasyuh68 Web: https://mimemo.io/m/qERa6lBeKpoPb0v --- PyQt で画像のビューアを作る 5 190625 # Jpg comment 読み込み - できた( ´∀`) モジュールとして使えるようにクラス化した まだ読み込みだけ 書き込みできるように以前書いたCのソースを読み返してみよう 頭の部分に挿入するだけで良いと思うんだが? ``` <code> ``` - このコードは先頭の20バイトしか調べてない 自分でコメントを書き込むときは先頭にしか書き込まないのでこれで十分なんだけど きちんとjpgの構造解析をしておいた方が良いのだろうか? - バイナリの読み書きが勉強になった バイナリにスライスを使うと検索も簡単だ、pythonいいな(・∀・)ノ - bigとかlitteとか、久しぶりに見た コメントサイズの計算ね、今回は自分でやったけどpythonでは関数が用意されてました ``` key = b'\x00\x0a' print( int.from_bytes( key, 'big') ) # ---> 10 print( int.from_bytes( key, 'little') ) # ---> 2560 ``` - バイナリで読み込んでるのでエンコする前に末端に0を書いておきたいんだけど上手く出来ない┐('д')┌ - **jpgのコメントはshit-jis**なんだなあ いずれutf-8になるのであろうか? エンコの自動判定は特に長さが短いと難しいし今後このフォーマットはどうなるんだろう? - **pngでも表示・書き込み出来るようにしておきたいなあ** # pillow を使う 画像の合成 できた(^_^) <fig> - 画像の補正をしたかった。明るくするのがメイン ただし全体では無く部分的に補正したい場合がほとんどなのでマスクを使って合成する PhotoShoだと重いのでいつもPhotoLineってのを使っていて、これはかなり良いんだけどその代替が欲しかった 基本はこんな感じ ``` orig=Image.open(< pass >) grad=Image.open(< pass >) # マスク用のグラデ画像 orig_back=orig.copy() orig_conv=origk.point(lambda x: x * 1.5) orig_conv_masked = orig_back.paste( orig_conv, (0,0), grad ) ``` - いろいろやりたいことはあるけど基本が出来たのであとは作り込みですな - **動作が不安定で結構落ちる** VSCodeで実行してもエラーも出ずに落ちる 解決しておかないと実用化は難しい 多分 pillow と QT でデータを変換するあたりだと思う そこら辺に try を仕込んでおけば良いのかな???? ---- → [戻る](https://mimemo.io/m/QORbW4qkvOoda0N)