我使用ImageMagickconvert命令制作缩略图并将转换后的图像保存在另一个目录中,一个接一个,在PHP中。但是,无法弄清楚如何在转换后的图像中保留图像名称。
> convert 1.JPG -resize 120X120 thumb/*.JPG
需要保持输出文件名与输入相同。请帮帮我
yzckvree1#
另一种方式:
convert *.jpg -resize 80% -set filename:f '%t' ../'%[filename:f].jpg'
将转换后的文件放在上面的文件夹中。选项-set filename:f '%t'将属性filename:f设置为不带扩展名的当前文件名。以filename:开头的属性是一种特殊情况,可以在输出文件名中引用。在这里,我们将其设置为../'%[filename:f].jpg,它最终成为图像文件名,并在父目录中将扩展名替换为.jpg。
-set filename:f '%t'
filename:f
filename:
../'%[filename:f].jpg
.jpg
-set
%t
lyr7nygr2#
一个简单的解决方案是copy,然后是mogrify -另一个imagemagick工具-这将保持相同的名称,它采用与convert相同的参数。
cp *.jpg thumb/ cd thumb mogrify -resize 120X120 *.JPG
或者,您也可以使用find -exec或xargs编写一些shell脚本。
# using -exec find . -iname "*.JPG" -maxdepth 1 -exec convert -resize 120x120 {} thumbs/{} \; # using xargs find . -iname "*.JPG" -maxdepth 1 | xargs -i{} convert -resize 120x120 {} thumbs/{}
r7s23pms3#
另一种不需要大量输入的简单方法是GNU Parallel:
parallel convert {} -resize 120X120 thumb/{} ::: *.jpg
对于:::之后给出的每个文件,都会调用convert,而对于每个调用,{}都会被替换为文件名。这也将并行处理文件,所以它可能比这里的其他解决方案快得多。如果您想转换文件类型,它也可以工作:
:::
convert
{}
parallel convert {} {.}.png ::: *.jpg
{.}被替换为不带扩展名的文件名,允许您轻松更改。
{.}
wbrvyc0a4#
我是这么做的将所有文件转换为filename-new.extension
filename-new.extension
for FILE in *; do convert -resize 320 $FILE $(echo $FILE | sed 's/\./-new./'); done
将所有filename-new.extension文件移回filename.extension:
filename.extension
for FILE in *; do mv $FILE $(echo $FILE | sed 's/-new//'); done
kqhtkvqz5#
在Windows中,请改为执行以下操作:
FOR /f "tokens=*" %G IN ('dir /b *.jpg') DO convert %G -resize 120x120 thumb\%G
注意事项:
thumb
%%
%
5条答案
按热度按时间yzckvree1#
另一种方式:
将转换后的文件放在上面的文件夹中。
选项
-set filename:f '%t'
将属性filename:f
设置为不带扩展名的当前文件名。以filename:
开头的属性是一种特殊情况,可以在输出文件名中引用。在这里,我们将其设置为../'%[filename:f].jpg
,它最终成为图像文件名,并在父目录中将扩展名替换为.jpg
。参考文档:
-set
文档,其中提到了filename:
的特殊情况%t
and other Format and Print Image Propertieslyr7nygr2#
一个简单的解决方案是copy,然后是mogrify -另一个imagemagick工具-这将保持相同的名称,它采用与convert相同的参数。
或者,您也可以使用find -exec或xargs编写一些shell脚本。
r7s23pms3#
另一种不需要大量输入的简单方法是GNU Parallel:
对于
:::
之后给出的每个文件,都会调用convert
,而对于每个调用,{}
都会被替换为文件名。这也将并行处理文件,所以它可能比这里的其他解决方案快得多。如果您想转换文件类型,它也可以工作:
{.}
被替换为不带扩展名的文件名,允许您轻松更改。wbrvyc0a4#
我是这么做的
将所有文件转换为
filename-new.extension
将所有
filename-new.extension
文件移回filename.extension
:kqhtkvqz5#
在Windows中,请改为执行以下操作:
注意事项:
thumb
文件夹。%%
代替%
。convert
一次性完成所有操作相比,它的一个好处是内存效率更高,* 可能 *..