为图像添加评论时,为什么我的图片尺寸会减小?

时间:2016-10-29 16:25:09

标签: python windows image file exif

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

  • 我的图片是2007KB。它不包含用户评论 它的exif数据。
  • 当我添加评论时("嗨,我喜欢土豆"只是测试评论) 通过属性页面(Windows 10)它减少了我的大小 图片到1991KB。
  • 当我使用python脚本添加用户评论时("等等等等) blah")它将文件大小减小到726KB。

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

的区别在于
  • EXIF InteroperabilityOffset
  • EXIF OffsetSchema
  • EXIF Padding
  • GPS GPSProcessingMethod
  • Image ExifOffset
  • 图片GPSInfo
  • 图片填充
  • Image XPComment
  • 互操作性互操作性指数
  • 互操作性互操作性版本
  • 缩略图JPEGInterchangeFormat
  • 缩略图JPEGInterchangeFormatLength。

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

这是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))

1 个答案:

答案 0 :(得分:5)

使用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)
  

请注意,它可能会创建尺寸大于原始图像尺寸的图像。

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