ImageMagick:如何为指定的边缘创建撕破的页面效果?
ImageMagick文档提供了有关如何创建撕碎页面效果()的指导。但是,在它们的实现中,所有边都被撕裂。假设我只想撕下图像的底部或顶部。如何使用ImageMagick实现这样的目标?只需使用ImageMagick:如何为指定的边缘创建撕破的页面效果?,imagemagick,Imagemagick,ImageMagick文档提供了有关如何创建撕碎页面效果()的指导。但是,在它们的实现中,所有边都被撕裂。假设我只想撕下图像的底部或顶部。如何使用ImageMagick实现这样的目标?只需使用-extent操作符来扩展顶部和侧面即可 convert zelda.png -background pink -extent 148x138-10-10 extent.png (为堆栈上的可见性添加粉红色背景) 应用使用说明文档中的效果 convert extent.png \( +clone -a
-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脚本网站上的边界效果脚本感兴趣。看见它有很多不同的边界效果。如果下面的答案符合您的需要,请将其标记为可接受的解决方案,