我想对发送到我的node.js服务器的png图片应用透明的圆形蒙版;这样我就可以在较旧的浏览器和电子邮件客户端中显示圆形图片。

我已经在使用节点画布来调整图片大小和裁剪,因此我想知道是否可以通过canvas API来完成这种图片处理。

最佳答案

我设法在这里写了我想要的代码

{Image} =画布=需要“画布”
fs =需要'fs'

img =新图片
  img.onload =->

canvas = new Canvas 200, 200
cxt = canvas.getContext '2d'
cxt.drawImage img, sx, sy, sw, sh, dx, dy, dw, dh
cxt.globalCompositeOperation = "destination-atop"

cxt.beginPath()
cxt.arc 100, 100, 50, 0, Math.PI*2, true
cxt.fill()
cxt.closePath()

canvas.toBuffer (err, buf) ->
  return cb(err) if err
  fs.writeFile  "/tmp/dest.jpeg", buf, -> console.log 'test done !'

img.src = '/tmp/src.jpeg'

07-26 07:12