【问题标题】:How to crop images in same dimension W/H (Ubuntu 16) [closed]如何裁剪 W/H 相同尺寸的图像(Ubuntu 16)[关闭]
【发布时间】: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


【解决方案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'  {} \;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 2012-12-17
    • 2022-01-23
    • 2021-07-25
    • 2019-01-11
    • 2020-08-15
    相关资源
    最近更新 更多