使用Imagemagick扫描图像的4面

时间:2018-05-23 18:07:37

标签: bash shell image-processing imagemagick imagemagick-convert

我有以下图片:

test PNG 1366x655 1366x655+0+0 8-bit sRGB 286KB 0.000u 0:00.000

我需要从图像的边框切下它:

top: 140 px
bottom: 140 px
left: 180 px
right: 60 px

是否有单行命令行用convert执行此操作?

4 个答案:

答案 0 :(得分:3)

您可以合并两个-crop s:

                      #left,top      right,bottom
convert test.png -crop +180+140 -crop -60-140 cropped.png

答案 1 :(得分:2)

使用V7的另一种方法

  

magick输入-crop"%[fx:w-(180 + 60)]" x"%[fx:h-(140 + 140)]" +180+ 140   结果

答案 2 :(得分:1)

来自that other guy的解决方案非常聪明。标准方法是使用-chop。但这意味着4次调用,因为要删除的大小没有对称性。所以在ImageMagick中使用-chop,你可以做到

convert text.png -gravity north -chop 0x180 -gravity east -chop 60x0 -gravity south -chop 0x140 -gravity west -chop 140x0 cropped.png

请参阅http://www.imagemagick.org/Usage/crop/#chop

当左/右或上/下或全部存在对称时,请参见-shave。 http://www.imagemagick.org/Usage/crop/#shave

答案 3 :(得分:1)

基于Bonzo的解决方案,你可以使用视口裁剪(Unix语法)在ImageMagick 6中做类似的事情:

top=140
bottom=140
left=180
right=60
convert image.png -set option:distort:viewport "%[fx:w-$left-$right]x%[fx:h-$top-$bottom]+${left}+${top}" -filter point +distort SRT 0 +repage result.png