清洁图像的左侧

时间:2016-09-14 20:19:38

标签: imagemagick

使用imagemagick,我想清理图像的左侧,即在没有裁剪的情况下制作白色。例如,清洁25像素宽的最左侧垂直条带。我想出了如何裁剪到给定的几何体,但我无法弄清楚如何在不裁剪的情况下进行清理。

1 个答案:

答案 0 :(得分:2)

这是我的开始图片,如下所示:

convert -size 256x256 gradient:cyan-yellow image.png

enter image description here

方法1

一种方法是使用-fx并设置x坐标小于25到1.0(即白色)的所有像素,并保留所有其他像素:

convert image.png -fx "i<25?1:u" result.png

enter image description here

方法2

另一种更快捷的方法可能是克隆原始图像,然后将其缩小到25像素宽,用原始图像填充白色和复合图像:

convert image.png \
   \( +clone -scale 25x! -fill white -colorize 100  \) \
   -composite result.png

结果是一样的。

方法3

第三种方法可能是从左侧裁剪25像素的图像,然后在左侧拼接25个白色像素:

convert image.png -crop +25+0 -background white -gravity west -splice 25x result.png

方法4

有点像kludge,但更接近你的要求。在这里,我猜你的图像高度不超过10,000像素并绘制一个矩形:

convert image.png -fill white -draw "rectangle 0,0 24,9999" result.png

我想正确的方法是首先获得高度然后使用它:

#!/bin/bash
h=$(convert image.png -format "%[fx:h-1]" info:)
convert image.png -fill white -draw "rectangle 0,0 24,$h" result.png