謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

画像の処理

パレットがサポートされていなかったり、ピクセルフォーマットの対応が少なかったり、BMPですら1,2,4,8ビットに対応してなかったりする罠。
取り合えず、適当に2bp (BMPの2bit) に対応するパッチ書いてみた。
http://www4.pf-x.net/~nazodane/cgi-bin/index.cgi?mode=upload:show&name=ffmpeg-2bp.diff
まともに実装するにはPIX_FMT_GRAY2を実装しなきゃならん。



ところでbmpの32bit、最後のはalphaだよな。PIX_FMT_BGRA使うべきでね? あと、BITFIELDSじゃないときはmemcpy使うべきでね? って思った。あとBITFIELDSって仕様的に32bitしか使えんのか? 本当にって思った。元のコード、もの凄いダメダメな予感。直したいが、Linux上だとサンプルファイル集めるのが面倒な罠。

仕様上reservedなのにalphaとして使われているらしい? あと、compにJPEG(4)とPNG(5)があるらしい。混沌。


ffmpegは本家に取り入れてもらうためのパッチ開発が面倒なんだよなぁ。パッチを分割しないといけないから。
GNU Archで管理すれば楽かも? undo/redo的な意味で。


Archに四苦八苦してたらsvn-arch-mirrorというものを見つけたが、うまくいかないので使わないことにした。
色々やってやっと何とかうまくいった気がする。


リビジョン間差分の取得法が分からん (ファイルごとに分かれてるのは手に入るけど)。
undo/redoがうまくいってるか分からないというか、何かおかしい。undoで現在の変更と前回のコミット操作を巻き戻して欲しいのに、undoした状態でchangesを取っても何も返ってこない。
ふむぅ。


2bpってもしかしたらgrayじゃなくてカラーパレットあるのかも。もしそうなら、ちゃんとサポートする場合パレットの仕組みから作らなあかん。後で確認する。


パレットあり。