如何裁剪 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)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

按 x,y,w,h 裁剪图像 [关闭]

使用从 txt 文件中提取的尺寸裁剪图像

如何使用 jcrop 裁剪不同尺寸的图像

如何裁剪图像,如大小为 476X248px 的 Facebook 提要图像

如何在 PHP 中裁剪具有尺寸(没有质量损失)的图像?

如何在 Java 中裁剪图像?