为什么我在图片上添加评论后图片的尺寸会变小?

Why does the size of my image decrease when I add a comment to an image?

我试图在我的图片中添加评论,但它减小了文件大小。我有三张图片都有不同的文件大小和不同的用户评论 EXIF 数据。没有评论的图片是最大的。为什么没有评论的图片最大?通过编辑 EXIF 数据,我是在压缩还是改变图像。

除了文件大小和 EXIF 数据外,我发现图像没有其他差异。我放大了图像并没有注意到差异。我查看了其余的 EXIF 数据,发现存在一些差异。差异在

如果您有任何其他问题,请告诉我。

这是 python 脚本:

import piexif
import os.path 
from PIL import Image

def writeExifComment(filename,comment):

    im = Image.open(filename)
    fileExtension = os.path.splitext(filename)[1]
    exif_dict = piexif.load(im.info["exif"])
    exif_dict["Exif"][piexif.ExifIFD.UserComment] = comment
    exif_bytes = piexif.dump(exif_dict)
    im.save(filename, 'jpeg', exif=exif_bytes)
    im.close()

def readExifComment(filename):

    data = piexif.load(filename)
    exif = data['Exif']
    comment = exif.get(37510, '').decode('UTF-8')
    return comment

filename = '1.jpg'

writeExifComment(filename,"blah blah blah")
print(readExifComment(filename))

当您使用 PIL 库保存图像 (im.save(filename, 'jpeg', exif=exif_bytes)) 时,您会使用默认质量。这 default is 75(这意味着 - 如果您的原始图像质量更高 - 在保存过程中 - 图像的质量会降低,图像的大小也会降低。

您可以使用 quality=X 更改质量(X = 1->95,您应该避免任何超过 95 的数字):

im.save(filename, 'jpeg', exif=exif_bytes, quality=95)

Note that it might create an image with higher size than your original image's size.

堆栈中存在关于图像原始质量的问题,您可以在此处查看更多信息:Determining JPG quality in Python (PIL)