ImageMagick绘制带有特殊角的矩形

时间:2016-12-13 22:12:40

标签: imagemagick mask rounded-corners

您好我想创建一个带有“特殊角落”的面具图像我称之为特殊因为我真的不知道如何用英语称呼它们是我想要实现的目标:

enter image description here
我现在使用的是

convert xc:black -size 300x300 -fill white -draw "roundrectangle 3,3,296,296,5,5"

但这给了我圆角。

提前感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

以下链接指向显示如何按照其他效果执行操作的页面https://www.imagemagick.org/Usage/thumbnails/#rounded

这是页面中的代码:

convert thumbnail.gif -alpha set  -compose DstOut \
      \( -size 20x15 xc:none -draw "polygon 0,0  0,14 19,0" \
         -write mpr:triangle  +delete \) \
      \( mpr:triangle             \) -gravity northwest -composite \
      \( mpr:triangle -flip       \) -gravity southwest -composite \
      \( mpr:triangle -flop       \) -gravity northeast -composite \
      \( mpr:triangle -rotate 180 \) -gravity southeast -composite \
      corner_cutoff.png

您应该查看示例,因为您可以使用另一种方法来处理较小的图像。

答案 1 :(得分:1)

这是实现目标的一种方式。

convert -size 300x300 xc:none                   \
   -shave 10 -bordercolor black -border 10      \
   -fill black -draw "polyline 0,0 30,0 0,30"   \
   \( +clone -flip \) -gravity north -composite \
   \( +clone -flop \) -gravity south -composite -background white -flatten result.png

那说...... "画一个你的全尺寸和透明的矩形,全面削掉10个像素并添加一个10像素的黑色边框(比做数学和制作280x280并添加10更容易在每一边)。在左上角绘制一个三角形。复制整个形状并将其翻转并在原件上绘制。复制整个形状并翻转它并在原件上再次绘制。现在将所有透明区域设为白色。"

enter image description here

这是另一种方式 - 也许更容易一些。绘制原始正方形,然后复制它,用平方根(2)(即141%)放大,加厚边框,旋转45度并将其合成到自身上。有点取决于你的大脑是如何运作的!

magick -size 300x300 xc:none -shave 10 -bordercolor black -border 10 \
  \( +clone -scale 142% -shave 30 -border 30 -rotate 45 \)  \
  -gravity center -composite -background white -flatten result.png