2017-07-28 361 views
0

我在Python中創建了一個小腳本,它可以根據文件名設置我舊的Whatsapp圖片的exif數據。Python PIL(Pillow)在修改exif數據後調整了我的圖片

我使用piexif和PIL(Pillow)包。

import piexif 
from PIL import Image 
from collections import defaultdict 

img = Image.open(fname) 

try: 
    exif_dict = piexif.load(img.info["exif"]) 
except KeyError: 
    exif_dict = defaultdict(dict) 

exif_dict['Exif'][piexif.ExifIFD.DateTimeOriginal] = exiftime(date) 
exif_dict['Exif'][piexif.ExifIFD.DateTimeDigitized] = exiftime(date) 

exif_bytes = piexif.dump(exif_dict) 
img.save('%s' % fname, "jpeg", exif=exif_bytes) 

exiftime()函數僅用於格式化日期。

但是,腳本設置了一些exif字段,我不修改壓縮或類似的東西。

我的問題是,圖片變得更小,運行該腳本後。我用一些示例圖片測試了這個腳本,例如用尼康D5300拍攝的照片,分辨率爲6000x4000。原始文件大約12Mb,在腳本之後它只有4Mb。

腳本是否會導致圖片質量損失,還是隻是一種更好的壓縮?

回答

1

根據文檔資料,枕頭的.save會自動壓縮默認的75%質量。你可以將它提高到100%(增加質量= 100),這將使壓縮最小化,看起來好像它會完全跳過一些壓縮組件,但枕頭顯然沒有完全跳過壓縮的能力。很少有軟件包可以做到這一點,而且我不知道Python模塊的形式。請注意,文檔說不提高95以上的質量,我可以證明這樣做會輸出一個較大的文件..奇怪。

相關問題