Javascript 缩放画布。我做错了什么
我正在尝试使用scale命令缩放画布Javascript 缩放画布。我做错了什么,javascript,canvas,Javascript,Canvas,我正在尝试使用scale命令缩放画布 我做错了什么?我不清楚你想做什么,但我想到了这些想法: 要获得准确的画布鼠标位置,请相对于画布元素计算: $('#myCanvas').click(function (e) { //Default mouse Position console.log(e.pageX); $("#myCanvas2").attr("width", e.pageX ); $("#myCanvas3").attr("width", e.pageX );
我做错了什么?我不清楚你想做什么,但我想到了这些想法: 要获得准确的画布鼠标位置,请相对于画布元素计算:
$('#myCanvas').click(function (e) { //Default mouse Position
console.log(e.pageX);
$("#myCanvas2").attr("width", e.pageX );
$("#myCanvas3").attr("width", e.pageX );
var imageData = context.getImageData(0, 0, e.pageX,400);
context2.putImageData(imageData,0,0);
context3.putImageData(imageData,0,0);
context.clearRect ( 0 , 0 , 2000 , 2000 );
$("#myCanvas3").css("scale", "(-1, 1)" );
$("#myCanvas3").css("transform", "scale(-1,1)");
var canvas4 = document.getElementById('myCanvas4');
var context4 = canvas4.getContext('2d');
context4.drawImage( myCanvas2, 0,0 );
context4.drawImage(myCanvas3, e.pageX,0 );
context3.scale(3,3);
});
关于混合CSS和画布:
- CSS缩放将在元素的中心进行操作李>
- 画布比例将从原点操作(原点默认为0,0)李>
- CSS缩放不会影响画布绘制。因此,如果使用CSS缩放“翻转”,然后将翻转的元素绘制到画布上,则生成的画布图形不会翻转
- 更改画布元素宽度也会自动清除画布内容李>
- 更改CSS宽度将保留画布内容,但会将现有像素“拉伸”到新宽度(内容将出现变形)李>
context3.scale(3,3)
不会影响您以前在myCanvas3上绘制的任何内容
以下是如何在画布元素上水平翻转图像:
示例代码和演示:
到底出了什么问题?你有一个链接到一个例子吗?它只是似乎没有规模。我已经在函数外定义了我的上下文。唯一似乎不起作用的是scale命令。此线程应该有帮助:
$('myCanvas').click(function(e){
var BB=canvas.getBoundingClientRect();
var mouseX=parseInt(e.clientX-BB.left);
var mouseY=parseInt(e.clientY-BB.top);
}
var img=document.getElementById("theImg");
var iw=img.width;
var ih=img.height;
var canvas2=document.getElementById('myCanvas2');
var context2=canvas2.getContext('2d');
canvas2.width=iw;
canvas2.height=ih;
context2.save();
context2.translate(iw,0);
context2.scale(-1,1);
context2.drawImage(img,0,0);
context2.restore();