简体   繁体   English

将图像转换为Base64时出错

[英]Error when converting Image to Base64

I am tying to write code to convert Image to Base64 for storing image in localStorage for offline usage. 我想写代码将Image转换为Base64,以便将图像存储在localStorage中以供离线使用。 But every time I get response like "data:,". 但是,每当我收到类似“ data :,”的响应时。 Image src is good because variable div will show image. 图像src很好,因为变量div将显示图像。 Can someone help me to resolve this error? 有人可以帮助我解决此错误吗?

Code: 码:

var div = $('<img />').appendTo('body');
div.attr('src', "src/1.png");
div.attr('class', 'test');

var img = new Image;
img.src = "src/1.png";

var lol = getBase64Image(img);
console.log(lol);

Function: 功能:

function getBase64Image(img) {

var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;

var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);

var dataURL = canvas.toDataURL("image/png");
console.log("lol "+dataURL);

return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}

Most probably you try to access the image which is not yet loaded. 您最有可能尝试访问尚未加载的图像。 The following works for me well: 以下对我很有效:

var img = new Image();
img.onload = function() {
    // when image is loaded...
    console.log(getBase64Image(img));
};

img.src = '/image/in/current/domain.jpg';

DEMO: http://jsfiddle.net/ZRPs9/1/ 演示: http : //jsfiddle.net/ZRPs9/1/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM