我使用 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')
我还需要做什么来减小图像大小?
我使用 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')
我还需要做什么来减小图像大小?
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 - 这些可以根据需要变得更小,交易大小为了质量。
您可以使用其他工具,例如PNGOUT