Javascript HTML5画布剪辑()不';当应用旋转时,t在铬中工作

Javascript HTML5画布剪辑()不';当应用旋转时,t在铬中工作,javascript,html,google-chrome,html5-canvas,Javascript,Html,Google Chrome,Html5 Canvas,我尝试在画布上使用剪辑区域,当坐标系旋转任何非零值时,它就会停止工作: window.onload=function(){ var canvas=document.getElementById(“mainCanvas”); var ctx=canvas.getContext(“2d”); ctx.rotate(Math.PI/8);/!!!剪裁不适用于任何非零值 ctx.beginPath(); ctx.rect(0,0,canvas.width,canvas.height); ctx.str

我尝试在画布上使用剪辑区域,当坐标系旋转任何非零值时,它就会停止工作:

window.onload=function(){
var canvas=document.getElementById(“mainCanvas”);
var ctx=canvas.getContext(“2d”);
ctx.rotate(Math.PI/8);/!!!剪裁不适用于任何非零值
ctx.beginPath();
ctx.rect(0,0,canvas.width,canvas.height);
ctx.stroke();
ctx.clip();/!!!启用clip()时,以下图像在Chrome中不可见
var objectImage=document.getElementById(“测试”);
ctx.drawImage(objectImage,0,0);
}

在Chrome中,drawImage()是在加载图像之前完成的,您必须进行如下检查:


window.onload=函数(){
var canvas=document.getElementById(“mainCanvas”);
var ctx=canvas.getContext(“2d”);
ctx.rotate(Math.PI/8);/!!!剪裁不适用于任何非零值
ctx.beginPath();
ctx.rect(0,0,canvas.width,canvas.height);
ctx.stroke();
ctx.clip();
//确保图像已加载
var objectImage=新图像();
objectImage.src=”https://dl.dropboxusercontent.com/u/4111969/test.png"
objectImage.onload=函数()
{
ctx.drawImage(objectImage,0,0);
}
}

问题似乎与浏览器硬件加速有关。我一关掉它,一切都很好


但是,我不知道我的网页是否可以禁用硬件加速。

在这里可以正常工作。(Chrome 49,Mac OS X 10.9.5)@kaido我已经在帖子中添加了我的系统规格。我在Chrome发布的画布控件上也遇到了类似的问题。和你一样,如果我关闭硬件加速,它也能工作,但这对我的用户不好,也不会利用图形卡。我在这里发布了我的问题:您的代码在我的电脑上的chrome中也可以正常工作。如果您只想旋转图像…请尝试不使用ctx。clip()对我运行chrome v49.0.2623.108也可以正常工作。你试过改变操作顺序吗?剪切矩形外,然后旋转?
窗口。加载html文档中的所有内容时,将触发onload
,而不是这里的问题,除非您能够重新编写OP的问题并解决它?我一直在调查类似问题()并创建了Chromium错误报告:。