使用PIL优化.png图像

时间:2010-01-02 15:44:01

标签: python image optimization png python-imaging-library

我只需创建一个透明背景的.png图片,在其上绘制一些黑色文字并使用img.save('target.png', option='optimize')

保存

看起来PIL会自动以32位模式保存.png图像。我可以减少颜色深度而不会在保存之前使输出图像看起来更糟糕吗?由于它只包含黑色文本和透明背景,我认为减少颜色深度会大大减少文件大小。

1 个答案:

答案 0 :(得分:0)

RGBA模式是唯一支持透明性的模式,它必须为32位:

  

1 (1位像素,黑白,每字节存储一个像素)

     

L (8位像素,黑白)

     

P (8位像素,使用调色板映射到任何其他模式)

     

RGB (3x8位像素,真彩色)

     

RGBA (4x8位像素,带有透明蒙版的真彩色)

我建议您以非透明的 1 模式存储图像,并将图像本身用作遮罩。如果为图像提供 1 模式作为蒙版,则黑色像素将保留而白色像素将变为透明。 这将减少32倍的空间,而不会丢失任何信息。

  

您可以使用“ 1”,“ L”或“ RGBA”图像(在后一种情况下,alpha波段用作遮罩)。遮罩为255时,将按原样复制给定图像。掩码为0时,将保留当前值。中间值会将两个图像混合在一起,包括它们的Alpha通道(如果有的话)。

它看起来像这样:

your_transparent_image.paste(bw_image, mask=bw_image)

其中bw_image是您的黑白文本。