可以在Javascript中将图像文件转换为二进制格式。
如何在Javascript中将图像文件转换为二进制格式。我找不到解决这个问题的办法。请解释这是否可能?目前的图像文件是二进制图像数据(png、jpg、gif等),如果您的问题是关于转换为base64编码字符串的问题,那么最好的方法是使用HTML5画布进行转换,下面是一个可供您使用的给定函数:可以在Javascript中将图像文件转换为二进制格式。,javascript,jquery,bytearray,web-sql,Javascript,Jquery,Bytearray,Web Sql,如何在Javascript中将图像文件转换为二进制格式。我找不到解决这个问题的办法。请解释这是否可能?目前的图像文件是二进制图像数据(png、jpg、gif等),如果您的问题是关于转换为base64编码字符串的问题,那么最好的方法是使用HTML5画布进行转换,下面是一个可供您使用的给定函数: function toDataUrl(url, callback, outputFormat){ var img = new Image(); img.crossOrigin = 'Anon
function toDataUrl(url, callback, outputFormat){
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function(){
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var dataURL;
canvas.height = this.height;
canvas.width = this.width;
ctx.drawImage(this, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
canvas = null;
};
img.src = url;
}
然后你可以打电话:
toDataUrl(imageURLString, function(base64Img){
// Base64DataURL
});
使用
XMLHttpRequest
加载图像。这将避免必须穿过画布。CORS限制适用于这两者,因此唯一的区别是使用XMLHttpRequest
可以直接作为ArrayBuffer
或Blob
加载数据
//通过XMLHttpRequest加载图像
var xhr=new XMLHttpRequest();//创建一个“加载器”
xhr.open(“GET”https://i.imgur.com/9LqhOl3b.jpg"); // url,CORS应用(!)
xhr.responseType=“arraybuffer”//或“斑点”
xhr.onerror=警报;//在这里使用错误处理程序
xhr.onload=function(){//异步onload处理程序
if(xhr.status==200)进程(xhr.response);//全部正常
else警报(“错误:+xhr.statusText);//oops。。。
};
xhr.send();//发送请求
//现在我们可以通过类型化数组wo/canvas访问它
函数进程(缓冲区){
var view=newuint8array(buffer);//通过视图访问字节
日志(“内容:”、视图[0]、视图[1]、视图[2]、视图[3]、”等);
//转换为blob并显示
var blob=新blob([view],{type:“image/jpeg”});
var url=url.createObjectURL(blob);
var img=新图像;
img.src=url;
文件.正文.附件(img);
}
加载…
图像文件是二进制的。您到底要转换什么?dup假定本地加载了文件。答案是过时的,并且没有生成二进制格式(数据uri)。OP应该考虑提供更多的信息。