如何阻止 Image Magick stripImage() 删除分辨率数据
How do I stop Image Magick stripImage() from removing resolution data
我正在将图像上传到我的网站并通过使用 Image Magick 的 stripImage() 函数删除 EXIF 数据来优化它们。
$img = new Imagick($image);
$img->stripImage();
$img->writeImage($image);
$img->destroy();
它工作得很好,我按预期减少了文件大小。但是,如果我在 Photoshop 中打开图像,photoshop 会将图像读取为每英寸 1 个像素的分辨率。
stripImage 似乎正在删除 photoshop 用来确定分辨率的 EXIF 数据。
如何在剥离其他所有内容的同时防止这种行为?
简短的回答是,我认为您不能使用 ImageMagick 有选择地删除部分 EXIF 数据,因此您可能需要提取原始密度,清除 EXIF,然后放回 Photoshop 需要的任何内容。 . 但不确定,如果 Photoshop 使用 JPEG 中的标准密度 header 或来自 EXIF 数据的值。
无论如何,要找出答案,您可以使用 EXIFtool
获取图像中的所有密度类型设置,如下所示:
exiftool "-*resolution*" image.jpg
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
描述了 Exiftool here。或者,如您所知并且喜欢 ImageMagick,您可以像这样使用 identify
:
identify -verbose IMG_3942.JPG | grep -i reso
Resolution: 72x72
exif:ResolutionUnit: 2
exif:thumbnail:ResolutionUnit: 2
exif:thumbnail:XResolution: 72/1
exif:thumbnail:YResolution: 72/1
exif:XResolution: 72/1
exif:YResolution: 72/1
您还可以在剥离 EXIF 数据后使用 ImageMagick 设置密度,如下所示:
# Strip EXIF then add in resolution
convert IMG_3942.JPG -strip -density 180x180 180.jpg
# Check what happened
exiftool "-*resolution*" 180.JPG
Resolution Unit : inches
X Resolution : 180
Y Resolution : 180
你也可以用libexif
修改EXIF数据如果你看here.
我正在将图像上传到我的网站并通过使用 Image Magick 的 stripImage() 函数删除 EXIF 数据来优化它们。
$img = new Imagick($image);
$img->stripImage();
$img->writeImage($image);
$img->destroy();
它工作得很好,我按预期减少了文件大小。但是,如果我在 Photoshop 中打开图像,photoshop 会将图像读取为每英寸 1 个像素的分辨率。
stripImage 似乎正在删除 photoshop 用来确定分辨率的 EXIF 数据。
如何在剥离其他所有内容的同时防止这种行为?
简短的回答是,我认为您不能使用 ImageMagick 有选择地删除部分 EXIF 数据,因此您可能需要提取原始密度,清除 EXIF,然后放回 Photoshop 需要的任何内容。 . 但不确定,如果 Photoshop 使用 JPEG 中的标准密度 header 或来自 EXIF 数据的值。
无论如何,要找出答案,您可以使用 EXIFtool
获取图像中的所有密度类型设置,如下所示:
exiftool "-*resolution*" image.jpg
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
描述了 Exiftool here。或者,如您所知并且喜欢 ImageMagick,您可以像这样使用 identify
:
identify -verbose IMG_3942.JPG | grep -i reso
Resolution: 72x72
exif:ResolutionUnit: 2
exif:thumbnail:ResolutionUnit: 2
exif:thumbnail:XResolution: 72/1
exif:thumbnail:YResolution: 72/1
exif:XResolution: 72/1
exif:YResolution: 72/1
您还可以在剥离 EXIF 数据后使用 ImageMagick 设置密度,如下所示:
# Strip EXIF then add in resolution
convert IMG_3942.JPG -strip -density 180x180 180.jpg
# Check what happened
exiftool "-*resolution*" 180.JPG
Resolution Unit : inches
X Resolution : 180
Y Resolution : 180
你也可以用libexif
修改EXIF数据如果你看here.