【发布时间】:2015-06-03 07:54:16
【问题描述】:
我使用这段代码在 Javascript 中保存图像:
function saveImage() {
var canvas = document.getElementById('myPicture');
var ctx = canvas.getContext('2d');
var img = new Image();
ctx.rect(0, 0, 460, 600);
ctx.fillStyle = 'white';
img = new Image();
img.crossOrigin = 'anonymous';
img.src = "http://localhost/upload/abc.jpg";
ctx.drawImage(img,0,0,_item.width(),_item.height());
return canvas.toDataURL("image/jpeg");
}
当我点击按钮保存图片时:
$("#save").on('click', function () {
var rawImageData = saveImage();
$(this).attr('download', 'your_pic_name.jpeg').attr('href', rawImageData);
});
但是我得到的结果是白色图像。 然后我再次单击保存按钮(即 2 次)然后是正确的结果。我怎样才能只点击一次? 谢谢。
【问题讨论】:
-
奇怪...你打电话给
saveImage(),你显然希望它神秘地返回一些rawImageData。然而,你的函数saveImage没有返回任何东西......除此之外,你使用了两次new Image()。 -
我的代码丢失了,我已经添加了
-
嗯...
the result I get is white image??您正在(可能)白色画布上绘制一个白色矩形?这就像在白地上有一面白鹰的旗帜 -
我想要的结果是一张包含url图片的图片,白色也是背景
-
我还是不明白你的 saveImage 函数中
img变量的含义。它无处使用,与画布无关......
标签: javascript jquery image canvas