PILで画像反転
pycturesに追加した右回転用のアイコンを、画像ツールで作らないでPILでやってみた。
>>> from PIL import Image >>> im = Image.open("/root/pyctures-0.20/website/static/images/rotate.gif") >>> import ImageOps >>> im2 = ImageOps.mirror(im) >>> im2.save("/root/pyctures-0.20/website/static/images/rotater.gif", "GIF")
確かにPILって面白いよな。
コマンドで画像の制御が簡単にできるもの。
あれ、できたけど透過GIFじゃなくなっているや...
>>> im2.save("/root/pyctures-0.20/website/static/images/rotater.gif", "GIF", transparency= 1, optimize=1)
これでいいの?
あれ、これはパレットの透過性オプションなのか。
色が薄くなったというかなくなったな...
ファイルヘッダを操作するには、Imageのインスタンスじゃダメで、ファイルオブジェクトじゃないとダメそげだな。
>>> im2.write(['GIF87a', 'GIF89a']) >>> im2.write(chr(transparency)+chr(0x00))
とかしたかったのだけど。
infoってのがあるな。
>>> im2.save('/root/pyctures-0.20/website/static/images/rotater.gif', transparency=im.info["transparency"])
こんなんでいいのかな?
できたみたい。
同じ絵なので反転しても、透過色は変更なしだろうという予測に基づいています。
ちなみに、im.info["transparency"]の値は63だった。
ここは便利だ。
http://nagosui.org/Nagosui/Misc/python-personal/doc/python-imaging-library-tutorial