使用 imagemagick linux 脚本裁剪图像不起作用

Posted

技术标签:

【中文标题】使用 imagemagick linux 脚本裁剪图像不起作用【英文标题】:Cropping image with imagemagick linux script not working 【发布时间】:2017-12-28 22:57:38 【问题描述】:

这是我在这里的第一篇文章,因为我越来越绝望。 我需要编写一个脚本来调整图像大小,然后根据用户输入的内容从边缘切割 X 数量的像素。

我的调整大小工作正常,但我在印章/裁剪时遇到了重大问题。

我删除了所有变量,看看我是否能找到问题所在,但我找不到,我已经尝试了 2 个小时才能让它工作,但我就是不能

任何帮助将不胜感激。

  1 #!/bin/bash
  2 
  3 percentage=50%
  4 
  5 for i in *.jpg; do
  6         printf "Resize $i\n"
  7         convert "$i" -resize $percentage "output_$i"
  8 done
 14 
 15 for j in *.jpg; do
 16         printf "Crop $j\n"
 17         convert $j -gravity North -chop  0x10 tempimagechop.png 
 18         convert tempimagechop.png -gravity South -chop 0x10 tempimagechop.png
 19         convert tempimagechop.png -gravity East -chop 0x10 tempimagechop.png
 20         convert tempimagechop.png -gravity West -chop  0x10 "Chop_$j"
 21         
 22 done      

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。 【参考方案1】:

在 Imagemagick 中,chop 和crop 是完全不同的。 -chop 将删除图像的一部分,留下其余部分。 -crop 将裁剪并保存图像的一部分。你是在做剁而不是庄稼。要进行裁剪,请使用 -crop WxH+X+Y +repage。其中 +X+Y 是你想要保留的 WxH 部分的左上角,即你想要的区域左上角的偏移量。请参阅http://www.imagemagick.org/Usage/crop/#chop 和 http://www.imagemagick.org/Usage/crop/#crop_repage 和 http://www.imagemagick.org/Usage/crop/#crop_gravity

你的斩波命令是错误的。要在顶部(北)切碎,请使用 -chop 0x10。要在左侧(西)切碎,请使用 -chop 10x0。要在右侧(东)切碎,请使用 -chop 10x0。要在底部(南)切碎,请使用 -chop 0x10。第一个数字是要砍的列,第二个数字是要砍的行。您也不需要使用单独的转换。您可以将它们一个接一个地串成一个转换。您还应该在之后添加 +repage 。请参阅上面的 -chop 链接。

但是你可能会更好地使用上面描述的一个 -crop,通过指定 WxH 和 +X+Y 的左上角

【讨论】:

以上是关于使用 imagemagick linux 脚本裁剪图像不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Imagemagick / ghostscript将裁剪标记添加到pdf

使用 Imagemagick 从图像中自动裁剪文本(签名)并更改背景颜色

Imagemagick 裁剪不起作用

ImageMagick的安装和使用案例

使用 Jcrop 和 Imagemagick 裁剪图像

ImageMagick:转换、裁剪、调整大图像