2015-03-31 85 views
2

我用枕頭爲什麼在Pillow-python中調整圖像大小刪除Image.format?

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.formatNone值調整在蟒蛇的圖片?

如何在使用枕頭調整大小時保留格式?

+1

如果您擔心您將無法到新的圖像保存爲JPG,繼續前進,嘗試 - 我很確定'resized_image.save(「output.jpg」)即使在'resized_image.format'不是「JPEG」時也可以工作。 – Kevin 2015-03-31 16:58:53

+0

@Kevin是的,它確實:)雖然我認爲格式屬性應通過調整大小 – wolfgang 2015-03-31 17:07:34

回答

5

由於Image.resize創建一個新的Image對象(圖像的尺寸調整副本),並用於通過庫本身創建時的任何圖像(經由工廠功能,或通過運行的現有圖像上的方法),「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

4

正如documentation說:

源文件的文件格式。對於由庫本身創建的圖像(通過工廠函數或在現有圖像上運行方法),此屬性設置爲無。

您可以指定保存格式:

image.save(fp, 'JPEG') 
0

您可以保存縮放後的圖像與保存的意見

resized_image.save("New_image.png") 

它會保存到當前目錄。

如果你想在Python控制檯看到自己,你必須運行

resized_image.show()