GIF の color table を調べる

gif の color table を調べたくなったのでシュッと確認できるよう gifpalette というのを書きました。

github.com

実行すると

このように出力されます。 golang には gif の parser が標準でついてるので読むと color table がどこに入っているかとかがわかります。

true color で出力する

これを書くのに当たって調べていたらどうやらターミナルで true color が表示できる世界線に居ることを知ったので(いつの間に....) *1*2 golang で true color でターミナルに出力出来るものを書きました。それがこちら。

github.com

鮮やか...

Image I/O で大きいサイズの GIF が正しく作れない

golang から cocoa の話になりますが、Image I/O では CGImageDestinationCreateWithURL, CGImageDestinationAddImage を使うと gif が作れるけど、大きいサイズだと以下のように色が飛んでしまうことがありました。(正しくない画像の一部切り取ったもの)*3

f:id:soh335:20160831211959p:plain

なので gif ファイルの color table を調べるために上のものを作りましたが、調べた結果としては color table を外から入れたとしてもこのようになってしまうので Image I/O で大きい gif は厳しいなという感じです。

*1:https://gist.github.com/XVilka/8346728

*2:https://github.com/tmux/tmux/issues/34

*3: 大きくても飛ばないこともありました。ターミナルの背景のように同じ色が多く占めてる場合におかしくなる印象