我正在为一个简单的应用程序开发离线模式,使用Indexeddb(作为库的PounchDB),我需要将图像转换为Base64或BLOB格式以便保存它。
我尝试了这段代码,它只适用于提供的图片,但我不知道为什么对于任何其他图片都不起作用:
它可以正常运行,但仅限于一个图像。如果我尝试使用其他图像,则无法正常工作。
我尝试了这段代码,它只适用于提供的图片,但我不知道为什么对于任何其他图片都不起作用:
function convertImgToBase64URL(url, callback, outputFormat){
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function(){
var canvas = document.createElement('CANVAS'),
ctx = canvas.getContext('2d'), dataURL;
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
canvas = null;
};
img.src = url;
}
convertImgToBase64URL('http://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png', function(base64Img){
alert('it works');
$('.output').find('img').attr('src', base64Img);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="output"> <img> </div>
html
中的img
元素转换为Blob
,然后再转换为data URI
? - guest271314