我正在尝试使用imagemagick替换图像中某些像素的颜色,但不是仅在图像的一部分内的整个图像中。
我现在使用的命令是:
convert original_image.jpg -fuzz 5% -fill '#f2f2f2' -opaque white image_without_colour.jpg
这有效,但它取代了#f2f2f2无处不在,而不仅仅是我想要的地方。
理想情况下我应该这样做:
convert original_image.jpg -fuzz 5% -fill '#f2f2f2' -area '100,100,50,50' -opaque white image_without_colour.jpg
答案 0 :(得分:1)
我正在考虑一个更优雅的解决方案,但我认为这可以满足您的需求:
convert x.jpg -crop 100x100+50+50 y.jpg # Extract region to work on into y.jpg
convert y.jpg -fuzz 5% -fill '#f2f2f2' -opaque white z.jpg # Do your stuff and save as z.jpg
convert x.jpg z.jpg -geometry +50+50 -composite out.jpg # Whack it back whence it came!
输出文件为out.jpg
我认为这是一个更优雅的解决方案:
convert x.png \( +clone -crop 100x100+50+50 -fuzz 5% -fill '#f2f2f2' -opaque white \) -flatten out.jpg
答案 1 :(得分:1)
ImageMagick" -region"选项相当于您建议的" -area"选项:
convert original_image.jpg -fuzz 5% -fill '#f2f2f2' -region 100x100+50+50 \
-opaque white image_without_colour.jpg
将指定区域中的白色像素更改为灰色。