优化图像一次,避免再次使用

时间:2018-03-30 06:31:13

标签: imagemagick compression jpeg

我有大量的图像存储库,主要是JPEG,我想使用像ImageMagick这样的库或像jpegtran这样的Linux CLI工具进行优化(如JPG File Size Optimization - PHP, ImageMagick, & Google's Page Speed中所述),但我不想&# 39;我想要跟踪已经优化过的那些,我不想在以后再次优化每一个。是否有某种标志我可以轻松添加到文件中,以便于检测和跳过优化?最好是在备份到其他文件系统时保留文件的那个?

例如:一小段exif数据,一个文件系统标志,一些在文件末尾添加的无害空字节,一个已经足够智能化的工具,等等。

2 个答案:

答案 0 :(得分:1)

您可以使用"扩展属性" 这些元数据并存储在文件系统中。使用xattr读取和写入它们:

# Read existing attributes
xattr -l image.png

# Set an optimised flag of your own invention/description
xattr -w optimised true image.png

# Read attributes again
xattr -l image.png
optimised: true

可以在长列表中检测到扩展属性的存在 - 它是权限之后的@符号:

-rw-r--r--@ 1 mark  staff  275 29 May 07:54 image.png

正如您在评论中提到的那样,确保您使用的任何备份程序在将其作为策略提交之前都遵循这些属性。 FAT-32文件系统在这种情况下是出了名的穷人 - 虽然tar文件或类似文件可能会在Windows-land和back之后幸存下来。

作为替代方案,只需在EXIF标题中设置评论 - 我已在this相关答案中介绍了该评论......

答案 1 :(得分:1)

为了借鉴 Mark Setchell 的答案,如果您使用 xattr,您很可能需要使用 trusted namespace,否则您可能会收到“操作不受支持”错误。我能找到的大部分文档都提到了“setfattr”,但是,同样的可信命名空间规则也适用于“xattr”。

例如,使用用户命名空间:

# Set an optimised flag of your own invention/description
xattr -w user.optimised true image.png