【问题标题】:Resize the canvas output image to a specific size (width/height)将画布输出图像调整为特定大小(宽度/高度)
【发布时间】:2014-05-05 20:25:51
【问题描述】:

我有一个大画布 (5000x5000),我想为它拍照并在客户端创建一个缩略图。我可以使用canvas.toDataURL 捕获图像,但如何重新调整它的大小?我必须创建一个新的$("<canvas></canvas>") 元素,然后将该图像放入其中并运行canvas2.toDataURL(); 有人可以帮我吗?我不知道该怎么做。

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();
};

【问题讨论】:

    标签: javascript jquery html canvas


    【解决方案1】:

    鉴于您对原始画布元素没有安全限制,这样的事情应该可以工作:

    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();
    

    【讨论】:

    • var context 在哪里使用?
    • @Alcalyn 无处。 OP 在原始代码中包含它,因此假设它在某个地方被使用。但调整大小不需要它。
    猜你喜欢
    • 2012-08-14
    • 2023-03-22
    • 2015-05-19
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2016-07-15
    • 2017-12-08
    相关资源
    最近更新 更多