4

我使用 PIL 将 jpg/bmt 转换和调整大小为 png .. 我可以轻松调整大小并转换为 png,但文件大小是新图像太大

im=Image.open(p1.photo)
im_resize = im.resize((400, 400), Image.ANTIALIAS)    # best down-sizing filter
im.save(str(merchant.id)+'_logo.'+'png')

我还需要做什么来减小图像大小?

4

2 回答 2

4

PNG 图像仍然必须保存图像上每个像素的所有数据,因此您可以压缩它们的程度是有限的。

由于您的 400x400 将用作各种“缩略图”,因此进一步减少它的一种方法是使用索引模式:

im_indexed = im_resize.convert("P") im_resize.save(...)

*等待 * 刚刚在您的示例代码中看到一个错误:您正在保存原始图像,而不是调整大小的图像:

im=Image.open(p1.photo)
im_resize = im.resize((400, 400), Image.ANTIALIAS)    # best down-sizing filter
im.save(str(merchant.id)+'_logo.'+'png')

当你应该做的时候:

im_resize.save(str(merchant.id)+'_logo.'+'png')

您只是在保存原始图像,这就是它看起来如此之大的原因。可能您不需要对它们使用索引模式。

另一件事:索引模式图像可能看起来很差 - 如果您需要它,一个更好的出路可能是将您的较小尺寸保存为 .jpg 而不是 .png s - 这些可以根据需要变得更小,交易大小为了质量。

于 2012-08-13T12:39:46.180 回答
0

您可以使用其他工具,例如PNGOUT

于 2012-08-13T08:27:24.933 回答