[英]Resize the canvas output image to a specific size (width/height)
I have a big canvas ( 5000x5000
) and I want to take a picture of it and create a thumbnail on client side.我有一个大画布( 5000x5000
),我想给它拍照并在客户端创建一个缩略图。 I can capture the image using canvas.toDataURL
but how do i re-size it?我可以使用canvas.toDataURL
捕获图像,但如何调整它的大小? Do i have to create an new $("<canvas></canvas>")
element and then put that image inside and run the canvas2.toDataURL();
我是否必须创建一个新的$("<canvas></canvas>")
元素,然后将该图像放入其中并运行canvas2.toDataURL();
Can anyone help me with this?谁能帮我这个? I can't get my head around it how to do it.我不知道该怎么做。
var canvas = document.getElementById("main");
var ctx = canvas.getContext("2d");
var tumbnail64 = null;
var image = new Image();
image.src = canvas.toDataURL();
image.onload = function() {
$c2 = $("<canvas></canvas>");
$c2[0].width=100;
$c2[0].height=100;
$c2[0].getContext("2d");
$c2[0].drawImage(image, 0, 0,100,100);
tumbnail64 = $c2[0].toDataURL();
};
Something like this should work, given you don't have security restrictions on the original canvas element:鉴于您对原始画布元素没有安全限制,这样的事情应该可行:
var resizedCanvas = document.createElement("canvas");
var resizedContext = resizedCanvas.getContext("2d");
resizedCanvas.height = "100";
resizedCanvas.width = "200";
var canvas = document.getElementById("original-canvas");
resizedContext.drawImage(canvas, 0, 0, 200, 100);
var myResizedData = resizedCanvas.toDataURL();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.