ImageMagick:如何为指定的边缘创建撕破的页面效果?

ImageMagick:如何为指定的边缘创建撕破的页面效果?,imagemagick,Imagemagick,ImageMagick文档提供了有关如何创建撕碎页面效果()的指导。但是,在它们的实现中,所有边都被撕裂。假设我只想撕下图像的底部或顶部。如何使用ImageMagick实现这样的目标?只需使用-extent操作符来扩展顶部和侧面即可 convert zelda.png -background pink -extent 148x138-10-10 extent.png (为堆栈上的可见性添加粉红色背景) 应用使用说明文档中的效果 convert extent.png \( +clone -a

ImageMagick文档提供了有关如何创建撕碎页面效果()的指导。但是,在它们的实现中,所有边都被撕裂。假设我只想撕下图像的底部或顶部。如何使用ImageMagick实现这样的目标?

只需使用
-extent
操作符来扩展顶部和侧面即可

convert zelda.png -background pink -extent 148x138-10-10  extent.png
(为堆栈上的可见性添加粉红色背景)

应用使用说明文档中的效果

convert extent.png \( +clone -alpha extract -virtual-pixel black \
    -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 \) \
    -alpha off -compose Copy_Opacity -composite torn.png

然后裁剪回原始图像大小

convert torn.png -crop 128x129+10+10 output.png

更新 如果不想使用几何图形,可以使用
-border
-shave
-chop
的组合

convert zelda.png -bordercolor pink  -border 10x10 -gravity South -chop 0x10  extent.png
convert extent.png \( +clone -alpha extract -virtual-pixel black \
    -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 \) \
    -alpha off -compose Copy_Opacity -composite torn.png
convert torn.png -shave 10x -chop 0x10 output.png
。。当然,这一切都可以通过一个命令完成

convert zelda.png -bordercolor pink  -border 10x10 -gravity South -chop 0x10  \
    \( +clone -alpha extract -virtual-pixel black -spread 10 -blur 0x3 -threshold 50% \
    -spread 1 -blur 0x.7 \) -gravity Forget -alpha off -compose Copy_Opacity -composite \
    -shave 10x -chop 0x10 output.png 

有几种方法可以使用ImageMagick创建撕裂边缘效果。下面是另一个使用IM版本6和*nix语法的示例命令。这将对任何输入图像的上边缘应用撕裂效果,同时保持图像的原始尺寸

convert input.png -alpha set -background black -fill white \
   \( +clone -colorize 100 -gravity south -chop 0x6 -splice 0x6 \
   -spread 6 -paint 2 +transparent white -blur 0x0.5 \) \
   -background none -compose dstin -composite torn.png
这将在括号内创建一个白色遮罩。然后切下少量“撕裂”的边缘,并拼接一条黑色带以替换它。在遮罩的白色和黑色区域之间使用“-spread”和“-paint”创建随机边缘。之后,在括号外,该遮罩用于将透明撕裂区域应用于输入图像

要将效果应用于底部边缘,只需将“-重力北”更改为“-重力南”

要使撕裂边缘位于左侧或右侧,请将重力设置更改为“西”或“东”,并将“-chop”和“-splice”操作的值从“0x6”更改为“6x0”

通过将“convert”命令更改为“magick”,这应该与使用ImageMagick版本7的方式相同


要在Windows中使用它,请删除从“\(…\)”到“(…)”的括号外的反斜杠,并将连续的行反斜杠“\”更改为插入符号“^”。

必须明确给出图像的尺寸(例如,
148x138
128x129
)?有没有办法避免这种情况?您可能会对我的ImageMagick脚本网站上的边界效果脚本感兴趣。看见它有很多不同的边界效果。如果下面的答案符合您的需要,请将其标记为可接受的解决方案,