【发布时间】:2019-01-15 12:24:14
【问题描述】:
我的网页上有很多住宿和餐馆的图片,但每张图片的大小不同。 例如,我有一张 300x250 的图像和另一张 550x300 的图像。
我想制作正方形,例如将这些图像从 300x250 裁剪到 250x250 和 300x550 到 300x300。
我找到了一些使用“imagemagic”裁剪图像的命令,但我无法裁剪为正方形,居中。
我想复制所有图片的平方,然后将所有图片调整为相同大小。
我尝试使用此命令,但出现“没有这样的文件或目录”错误。
find . -name '*.jpg' -type f -exec bash -c 'convert -define jpeg:size=200x200 ${0%.jpg} -thumbnail 100x100^ -gravity center -extent 100x100 $0_thumbnail.jpg' {} \;
现在,我可以使用以下代码裁剪图像:
find . -name '*.jpg' -type f -exec bash -c 'convert -define jpeg:size=200x200 $0 -thumbnail 100x100^ -gravity center -extent 100x100 ${0}_thumb.jpg' {} \;
但裁剪后的图像得到这个名称“X.jpg_thumb.jpg”。 如何修改此命令以创建 X_thumb.jpg 文件名?
[已解决] 这个命令解决了我的问题“%.*”
find . -name '*.jpg' -type f -printf "%f\n" -exec bash -c 'convert -define jpeg:size=200x200 $0 -thumbnail 100x100^ -gravity center -extent 100x100 ${0%.*}_thumb.jpg' {} \;
【问题讨论】:
-
谢谢@MarkSetchell,但是如何递归地裁剪所有图像并将所有图像重命名为 X_thumb.jpg?有了这段代码,
find . -name '*.jpg' -type f -exec bash -c 'convert -define jpeg:size=200x200 $0 -thumbnail 100x100^ -gravity center -extent 100x100 $0' {} \;我可以随意修改我所有的图像裁剪,但我不知道如何将名称更改为 X_thumb.jpg -
请问
X是什么? -
X 是原始文件名。像“image.jpg”
-
就我个人而言,我提倡使用 GNU Parallel,因为它可以简单地拆分路径、基本名称和扩展名,避免引用和转义问题并且性能卓越。
标签: image command-line imagemagick ubuntu-16.04 crop