可以在Javascript中将图像文件转换为二进制格式。

可以在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

如何在Javascript中将图像文件转换为二进制格式。我找不到解决这个问题的办法。请解释这是否可能?

目前的图像文件是二进制图像数据(png、jpg、gif等),如果您的问题是关于转换为base64编码字符串的问题,那么最好的方法是使用HTML5画布进行转换,下面是一个可供您使用的给定函数:

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应该考虑提供更多的信息。