我正在尝试在画布内部放置一个html5图像。图像是使用CSS变换属性翻译,旋转和缩放。主要问题是如何复制图像的属性并在画布上将它们应用于。HTML 5画布 - 旋转,缩放,翻译和绘制图像
您可以尝试下面的jsfiddle链接:可以缩放,移动和旋转图像,并且在绿色框中出现的任何图像都应该与红色中的相同。
https://jsfiddle.net/q7y1py5f/3/。在这里,我可以移动和缩放图像,但是当旋转开始时没有任何效果。这里是代码的错误我(在JavaScript的jsfiddle 58线):
context.save();
context.translate(image.width/2, image.height/2);
context.rotate(angle * Math.PI/180);
context.translate(((-image.width)/2), ((-image.height)/2));
context.translate(-x, -y);
context.scale(scale, scale);
context.drawImage(image, 0, 0);
context.restore();
这里x和y是绿色容器的左上角和图像左上角之间的差异。任何帮助,将不胜感激。
我已经设法让每个属性单独工作,但是当它们结合在一起时它不起作用。当我只翻译和缩放图像并应用到画布上下文时,一切都很好,但是当我在图像中添加旋转并不是它应该在的位置时。
我尝试了以下方法 - 用角度计算元素的左上角以获得正确的值,然后使用它进行平移和旋转。
一些变化是否有特定的浏览器,这不适合你?除非我误解你所说的话,否则在使用Chrome v49的小提琴中一切正常 - 我可以移动,缩放和旋转图像。编辑:当它包含在绿色框中时,我无法移动图像。 – Shaggy
绿箱中的东西应该出现在红盒子里,抱歉误会。 – electrofly
啊,我的道歉,误解是我的;我没有注意到红色盒子里发生了什么。 – Shaggy