2016-10-22 40 views
3

嗨我想转换一些图像的圆角。我发现这可怎么用ImageMagic来完成他们的网站上圆形图像转角GM ImageMagic,通过选项

convert thumbnail.gif \ 
    \(+clone -crop 16x16+0+0 -fill white -colorize 100% \ 
     -draw 'fill black circle 15,15 15,0' \ 
     -background Red -alpha shape \ 
     \(+clone -flip \) \(+clone -flop \) \(+clone -flip \) \ 
    \) -flatten rounded_corners_red.png 

​​的问题是,我不知道怎么打发这一切的选择到GM。我试过

gm.in("\(+clone -crop 16x16+0+0 -fill white -colorize 100% 
      -draw 'fill black circle 15,15 15,0' 
      -background Red -alpha shape 
      \(+clone -flip \) \(+clone -flop \) \(+clone -flip \) 
     \) -flatten") 

但它不工作。这就是我如何调整我的图片

var gm = require("gm").subClass({ imageMagick: true }) 
var _ = require("lodash") 
var images = ['1b.jpg', '2b.jpg', '3b.jpg'] 

_.forEach(images, function(image, key) { 

    var img = gm(__dirname + '/' + image) 
    var dest = __dirname + '/' + key+'.jpg' 
    img.resize('100', '100', '^') 
    img.gravity('Center') 
    img.crop('100', '100') 

    img.in("\(+clone -crop 16x16+0+0 -fill white -colorize 100% 
      -draw 'fill black circle 15,15 15,0' 
      -background Red -alpha shape 
      \(+clone -flip \) \(+clone -flop \) \(+clone -flip \) 
     \) -flatten") 

    img.write(__dirname + '/' + key+'.jpg', function (err) { 
    if (!err) console.log(' image done! '); 
    }) 

}) 
+0

你要红色或透明的角落?您的图像是否要将圆角应用于大致相同的尺寸 - 如果是,尺寸是多少? –

+0

所以我试图做的是自动化这个过程,所以在这个例子中图像的大小是100x100,但在某些时候可能会有所不同。您可以从上面的示例中看到图像已被调整大小和裁剪,因此在此之后,我想使其具有圆角。关于背景我更喜欢透明,但如果不可能的话,任何颜色都可以很好 – Alex

回答

1

我不相信GraphicsMagick工具支持括号,这似乎做事的方式很复杂的。我想我会制作一个alpha蒙版,显示我希望图片不透明/透明的位置,并将其复制到图像中。

所以,具体而言:

convert -size 100x100 xc:none -draw "roundrectangle 0,0,99,99,12,12" mask.png 

enter image description here

convert -size 100x100 gradient:blue-yellow mask.png -compose copyopacity -composite result.png 

enter image description here

另外请注意,您将无法透明的角落存储,因为JPEG一个JPEG输出文件不支持透明度。

如果你想红的角落,你可以这样做:

convert -size 100x100 xc:red -draw "roundrectangle 0,0,99,99,12,12" -transparent black mask.png 
convert -size 100x100 gradient:blue-yellow mask.png -composite result.png 

enter image description here

+0

最近版本的ImageMagick支持括号。见http://www.imagemagick.org/Usage/basics/#parenthesis –

+0

@JonAdams我指的是** GraphicsMagick **不支持括号。 –

+0

我不知道GraphicMagick,但是操作人员询问_ImageMagick_,而不是GM。我的观点是,使用括号的op原始解决方案仍然可以在理论上工作......通过转换谈论非常相似但不完全相同的GM,您的答案有点混乱。我不是在说你错了或不是(我在这两种工具中都不是专家) - 我只是想澄清未来的用户,他们可能不知道GM和IM之间的差异。 (甚至提醒自己,因为我发现它们之间的区别也很混乱。) –