需要多格式信息: -

时间:2017-04-11 22:25:09

标签: graphicsmagick

我需要调整图像大小和清除exif数据,但是从源图像big.jpg输出exif数据,并输出small.jpg的变换图像大小。

那不输出exif数据:

gm convert big.jpg -format "%w %h %[exif:DateTime]" -strip -resize "250x250>" -write small.jpg info:-

不输出变换后的图像尺寸(small.jpg):

gm convert big.jpg -format "%w %h %[exif:DateTime]" -write info:- -strip -resize "250x250>" small.jpg

如何正确完成? 感谢。

1 个答案:

答案 0 :(得分:0)

我有两个解决方案 - 一个是丑陋的,一个是非常难看的! : - )

第一个提取EXIF数据,将其写入stderr,使其不通过管道,然后管道图像(内部MIFF => Magick图像文件格式)进入第二个convert进行调整大小并打印调整大小的大小:

gm convert big.jpg -format "%[exif:DateTime]" -write info:/dev/fd/2 miff:- | gm convert miff:- -strip -resize "250x250>" -format "%w %h" -write info:- small.jpg
2017:04:06 09:12:02
250 107

第二种方法可能更有效,因为它只加载原始图像一次并将其存储在两个处理步骤之间的MPR( Magick持久寄存器)中。这两个步骤在单个GraphicsMagick batch进程中运行:

cat - <<EOF | gm batch -prompt off
convert big.jpg -write mpr:orig -format "%[exif:DateTime]" info:-
convert mpr:orig -strip -resize "250x250>" -format "%w %h" -write small.jpg info:-
EOF

这两个都包含“bashisms”,因此您需要在bash下运行它们。