【发布时间】:2015-11-11 15:41:11
【问题描述】:
我一直在尝试使用创建另一个画布、剪裁、保存然后将图像绘制到我的主画布上的方法将图像裁剪为椭圆形。但是,它只显示黑色椭圆形而没有覆盖在顶部的图像
var Ctx = document.getElementById('canvas').getContext('2d');
var tCan = document.createElement('canvas');
var tCtx = tCan.getContext('2d');
tCtx.beginPath();
var centerX = 50;
var centerY = 50;
var width = 100;
var height = 100;
tCtx.moveTo(centerX, centerY - height/2);
tCtx.bezierCurveTo(
centerX + width/2, centerY - height/2,
centerX + width/2, centerY + height/2,
centerX, centerY + height/2);
tCtx.bezierCurveTo(
centerX - width/2, centerY + height/2,
centerX - width/2, centerY - height/2,
centerX, centerY - height/2);
tCtx.fillStyle = "black";
tCtx.fill();
tCtx.closePath();
var img = new Image();
img.onload = function(){
tCtx.drawImage(img,1,1, 98, 98);
};
img.src = 'http://imgur.com/GvRewu7.png';
tCtx.clip();
var cSi = tCan.toDataURL();
var cImg = new Image();
cImg.src = cSi;
Ctx.drawImage(cImg,0,0);
为什么这不包括裁剪的图像?有没有其他方法可以做到这一点(完全在 javascript 中)?
编辑:我的活动 JSBin 页面:https://jsbin.com/yulituc/edit?js,output
【问题讨论】:
标签: javascript html canvas