PIL Imaging-1.1.5c1
Imaging-1.1.5c1 が公開されていました。 PNG 保存時に補助情報 (chunk) を指定できるようになってたので、 パッチ は不要です。
dpi は引数で直接渡し、 その他の補助情報は PngInfo インスタンスに格納して渡すことができます。
from PIL import Image from PIL.PngImagePlugin import PngInfo im = Image.new('RGBA',(200, 200),(0,0,0,0)) # 画像描画処理をおこなう info = PngInfo() info.add('bKGD', '\000\377\000\377\000\377') im.save('img-rgba.png', 'PNG', dpi=(72,72), pnginfo=info)
pngcheckで確認してみると
$ pngcheck -v img-rgba.png File: img-rgba.png (3601 bytes) chunk IHDR at offset 0x0000c, length 13 200 x 200 image, 32-bit RGB+alpha, non-interlaced chunk pHYs at offset 0x00025, length 9: 2835x2835 pixels/meter (72 dpi) chunk bKGD at offset 0x0003a, length 6: red = 255 green = 255 blue = 255 chunk IDAT at offset 0x0004c, length 3505 zlib: deflated, 32K window, default compression chunk IEND at offset 0x00e09, length 0 No errors detected in img-rgba.png (97.7% compression).解像度 pHYs と背景色 bKGD がちゃんと追加されています。