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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用imagemagick linux脚本裁剪图像不起作用相关的知识,希望对你有一定的参考价值。

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

我让调整大小工作得很好,但我在切割/裁剪方面遇到了重大问题。

我删除了所有变量,看看我是否能找到错误但我不能和我一直试着让它上班2小时但我根本就不能

任何帮助,将不胜感激。

  1 #!/bin/bash
  2 
  3 percentage=50%
  4 
  5 for i in *.jpg; do
  6         printf "Resize $i
"
  7         convert "$i" -resize $percentage "output_$i"
  8 done
 14 
 15 for j in *.jpg; do
 16         printf "Crop $j
"
 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      
答案

在Imagemagick中,印章和裁剪完全不同。 -chop将删除部分图像,剩余部分。 -crop将裁剪并保存图像的一部分。你做的不是作物。要做一个作物使用-crop WxH + X + Y + repage。其中+ X + Y是您要保留的WxH部分的左上角,即所需区域左上角的偏移量。请参阅http://www.imagemagick.org/Usage/crop/#chophttp://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链接。

但是如上所述,通过在+ X + Y处指定WxH和左上角,您可能会更好地使用一个-crop

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

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

使用 Jcrop 和 Imagemagick 裁剪图像

如何使用 ImageMagick 在裁剪图像顶部注释文本

ImageMagick 基于矩形边框颜色裁剪图像

使用 ImageMagick(图像裁剪语法)从其他部分组装图像

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