如何裁剪 W/H 相同尺寸的图像(Ubuntu 16)[关闭]
Posted
技术标签:
【中文标题】如何裁剪 W/H 相同尺寸的图像(Ubuntu 16)[关闭]【英文标题】:How to crop images in same dimension W/H (Ubuntu 16) [closed] 【发布时间】: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' \;
【问题讨论】:
见***.com/a/53660350/2836621 谢谢@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,因为它可以简单地拆分路径、基本名称和扩展名,避免引用和转义问题并且性能卓越。
【参考方案1】:
解决方案
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' \;
【讨论】:
以上是关于如何裁剪 W/H 相同尺寸的图像(Ubuntu 16)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章