【问题标题】:Crop image, make transparent sub region and background ImageMagick裁剪图像,制作透明子区域和背景 ImageMagick
【发布时间】:2017-08-17 19:20:10
【问题描述】:

我想裁剪图像(区域 1),然后将裁剪图像的特定子区域(区域 2)设为白色,最后使背景透明。

我可以通过以下 3 个单独的命令获得所需的输出。

convert input.jpg -crop 908x391+21+545 out1.jpg   'crop image (area1)
convert out1.jpg -fuzz 100% -fill '#ffffff' -region 908x28+4+33 -opaque white out2.jpg  'make blank particular region (area2)
convert out2.jpg -bordercolor "#0019ff" -border 4x4 -transparent white output.png       'make all white background transparent

但是当我尝试像下面这样将 3 个命令合并为一个命令时,在输出中仍然出现 area2 并且背景不透明。

convert input.jpg -crop 908x391+21+545 -fuzz 100% -fill '#ffffff' -bordercolor "#0019ff" -border 4x4 -region 908x28+25+578 -transparent white output.png 

我怎样才能在一个命令中做到这一点?谢谢

更新

convert input.jpg \
\( -clone 0 -crop 908x391+21+545  +repage -region 908x28+4+33 -fill white \
-colorize 100 +region -resize 908x681! -bordercolor "#f019ff" -border 4x4 \
-repage 1842x689+0+0   \) \
\
\( -clone 0 -crop 908x391+21+4444 +repage -region 908x28+4+33 -fill white \
-colorize 100 +region -resize 908x681! -bordercolor "#f019ff" -border 4x4 \
-repage 1842x689+926+0 \) \
-delete 0 -flatten -resize 1180 -transparent white OOUUTT.png 

【问题讨论】:

    标签: imagemagick crop transparent region


    【解决方案1】:

    在 Imagemagick 6 中,试试这个(如果 Imagemagick 7 将 convert 替换为 magick),使用新行 \ 以使其更具可读性。

    convert input.jpg -crop 908x391+21+545 +repage \
    -region 908x28+4+33 -fill white -colorize 100 +region \
    -bordercolor "#0019ff" -border 4x4 -transparent white \
    output.png
    

    或者作为一个长命令行:

    convert input.jpg -crop 908x391+21+545 +repage -region 908x28+4+33 -fill white -colorize 100 +region -bordercolor "#0019ff" -border 4x4 -transparent white output.png
    

    例如使用渐变输入:

    convert -size 1500x1500 gradient: -crop 908x391+21+545 +repage -region 908x28+4+33 -fill white -colorize 100 +region -bordercolor "#0019ff" -border 4x4 -transparent white output.png
    

    或者在裁剪后的图像上交替合成一个透明区域:

    convert -size 1500x1500 gradient: -crop 908x391+21+545 +repage \
    \( -size 908x28 xc:none \) \
    -alpha on -channel rgba -geometry +4+33 -compose copy -composite \
    output2.png
    

    【讨论】:

    • 非常感谢 fmw42。它与您共享的第一个解决方案完美结合。我需要从输入图像中裁剪 2 张图像,并将您的解决方案插入到我的原始脚本中,并得到了我想要的输出。请看我上面的更新。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2012-05-16
    相关资源
    最近更新 更多