Ste*_*ith 5 imagemagick conversion
我正在尝试在脚本中使用 ImageMagick 来转换和调整大量文件的大小以进行版本控制。我需要文件每次都在同一时间转换,这样 git 就不会提交刚刚更新时间戳的文件。不幸的是,ImageMagick 坚持为每个图像添加一个创建和修改时间戳,这使得 git 再次重新提交每个文件。
我对这个问题进行了很多搜索,并尝试了以下标志:
-define png:exclude-chunks=date
+set date:create +set date:modify
-strip
Run Code Online (Sandbox Code Playgroud)
这些都没有导致可重复的过程:
-定义 png:exclude-chunks=date
stephen@Saturn ~/test (git)-[master] % convert input.png -define png:exclude-chunks=date -resize 100x100 1.png
stephen@Saturn ~/test (git)-[master] % convert input.png -define png:exclude-chunks=date -resize 100x100 2.png
stephen@Saturn ~/test (git)-[master] % diff 1.png 2.png
Binary files 1.png and 2.png differ
stephen@Saturn ~/test (git)-[master] % cmp -l 1.png 2.png
125 41 42
126 67 0
127 322 101
128 321 101
129 35 353
130 64 370
Run Code Online (Sandbox Code Playgroud)
+设置日期:创建 +设置日期:修改
stephen@Saturn ~/test (git)-[master] % convert input.png +set date:create +set date:modify -resize 100x100 1.png
stephen@Saturn ~/test (git)-[master] % convert input.png +set date:create +set date:modify -resize 100x100 2.png
stephen@Saturn ~/test (git)-[master] % diff 1.png 2.png
Binary files 1.png and 2.png differ
stephen@Saturn ~/test (git)-[master] % cmp -l 1.png 2.png
125 51 52
126 71 0
127 375 211
128 260 230
129 272 141
130 73 360
Run Code Online (Sandbox Code Playgroud)
-跳闸
stephen@Saturn ~/test (git)-[master] % convert input.png -strip -resize 100x100 1.png
stephen@Saturn ~/test (git)-[master] % convert input.png -strip -resize 100x100 2.png
stephen@Saturn ~/test (git)-[master] % diff 1.png 2.png
Binary files 1.png and 2.png differ
stephen@Saturn ~/test (git)-[master] % cmp -l 1.png 2.png
110 41 45
111 241 246
112 235 360
113 264 160
114 252 263
Run Code Online (Sandbox Code Playgroud)
如何使用 ImageMagick 完成可重复的转换?
我已经放弃了让 ImageMagick 正常工作,转而使用 GraphicsMagick,它似乎具有 ImageMagick 的所有功能,但减去了这个时间戳错误:
stephen@Saturn ~/test (git)-[master] % gm convert -resize 100x100 input.png 1.png
stephen@Saturn ~/test (git)-[master] % gm convert -resize 100x100 input.png 2.png
stephen@Saturn ~/test (git)-[master] % diff 1.png 2.png
stephen@Saturn ~/test (git)-[master] % cmp -l 1.png 2.png
Run Code Online (Sandbox Code Playgroud)
识别显示 2 个不同的时间戳,但它是从文件属性而不是嵌入的元数据获取的,并且 diff / cmp 显示文件是相同的。
归档时间: |
|
查看次数: |
618 次 |
最近记录: |