为什么我在图片上添加评论后图片的尺寸会变小?
Why does the size of my image decrease when I add a comment to an image?
我试图在我的图片中添加评论,但它减小了文件大小。我有三张图片都有不同的文件大小和不同的用户评论 EXIF 数据。没有评论的图片是最大的。为什么没有评论的图片最大?通过编辑 EXIF 数据,我是在压缩还是改变图像。
- 我有一张 2007KB 的图片。它不包含用户评论
这是exif数据。
- 当我添加评论时("Hi I like potatoes"只是测试评论)
通过属性页 (Windows 10) 它减小了我的大小
图像到 1991KB.
- 当我使用 python 脚本添加用户评论时(“blah blah
blah") 它将文件大小减小到 726KB。
除了文件大小和 EXIF 数据外,我发现图像没有其他差异。我放大了图像并没有注意到差异。我查看了其余的 EXIF 数据,发现存在一些差异。差异在
- EXIF 互操作性偏移量
- EXIF 偏移架构
- EXIF 填充
- GPS GPSProcessingMethod
- 图像 ExifOffset
- 图像 GPSInfo
- 图像填充
- 图片XP评论
- 互操作性互操作性指数
- 互操作性互操作性版本
- 缩略图 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))
当您使用 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)
我试图在我的图片中添加评论,但它减小了文件大小。我有三张图片都有不同的文件大小和不同的用户评论 EXIF 数据。没有评论的图片是最大的。为什么没有评论的图片最大?通过编辑 EXIF 数据,我是在压缩还是改变图像。
- 我有一张 2007KB 的图片。它不包含用户评论 这是exif数据。
- 当我添加评论时("Hi I like potatoes"只是测试评论) 通过属性页 (Windows 10) 它减小了我的大小 图像到 1991KB.
- 当我使用 python 脚本添加用户评论时(“blah blah blah") 它将文件大小减小到 726KB。
除了文件大小和 EXIF 数据外,我发现图像没有其他差异。我放大了图像并没有注意到差异。我查看了其余的 EXIF 数据,发现存在一些差异。差异在
- EXIF 互操作性偏移量
- EXIF 偏移架构
- EXIF 填充
- GPS GPSProcessingMethod
- 图像 ExifOffset
- 图像 GPSInfo
- 图像填充
- 图片XP评论
- 互操作性互操作性指数
- 互操作性互操作性版本
- 缩略图 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))
当您使用 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)