为什么在Pillow-python中调整图像大小会删除Image.format?

时间:2015-03-31 16:48:51

标签: python python-imaging-library pillow

我正在使用Pillow

在python中调整图像大小
image = Image.open("image_file.jpg")

print(image.format) # Prints JPEG

resized_image = image.resize([100,200],PIL.Image.ANTIALIAS)

print(resized_image.format) # Prints None!!

为什么resized_image.format保留None值?

如何在使用枕头调整大小时保留格式?

3 个答案:

答案 0 :(得分:6)

因为Image.resize创建了一个新的Image对象(图像的大小调整后的副本)以及由库本身创建时的任何图像(通过工厂函数,或者通过在现有图像上运行方法) ),“format”属性设置为

如果您需要format属性,您仍然可以这样做:

image = Image.open("image_file.jpg") #old image object
resized_image = image.resize([100,200],PIL.Image.ANTIALIAS)
resized_image.format = image.format # original image extension

Read the docs

答案 1 :(得分:4)

documentation中所述:

  

源文件的文件格式。对于库本身创建的图像(通过工厂函数,或通过在现有图像上运行方法),此属性设置为“无”。

您可以在保存时指定格式:

image.save(fp, 'JPEG')

答案 2 :(得分:0)

您可以使用保存注释保存已调整大小的图像

resized_image.save("New_image.png")

它将保存到您当前的目录中。

如果你想在python控制台中看到你必须运行

resized_image.show()