在Javascript中将图像转换为二进制数据或字符串

时间:2011-05-11 10:18:09

标签: javascript html5 google-chrome google-chrome-extension filereader

我正在使用Chrome扩展程序上的XMLHttp请求将图像文件上传到TWITPIC。我需要将图像作为有效载荷发送。有没有办法做到这一点 ?我找到了这个链接Convert an image into binary data in javascript 但这适用于图像标签。我需要一种方法来指定图像文件路径并将图像上传到TWITPIC。

我开始了解有关HTML 5的FileReader API。有没有办法使用它?它应该在本地文件上工作。

Chrome Extension是否支持FileReader API而不运行localhost服务器?

2 个答案:

答案 0 :(得分:3)

我自己找到了答案。 Chrome扩展程序确实支持HTML 5的FileReader API。因此,只需下面的代码就可以了。

  var reader = new FileReader();
  reader.readAsDataURL(f);

答案 1 :(得分:-1)

您可以使用它来使用XMLHTTPRequests获取图像的二进制数据,我最近将其用于类似目的:

var dataToBinary = function(data){
    var data_string = "";
    for(var i=0; i<data.length; i++){
        data_string += String.fromCharCode(data[i].charCodeAt(0) & 0xff);
    }
    return data_string;
};

$.ajax("http://some.site.com/myImage.jpg", {
    success: function(data){
        binary = dataToBinary(data);
        //or: 'binary = data', dataToBinary might not be needed
    },
    mimeType: "text/plain; charset=x-user-defined"
});

二进制数据存储在binary变量中。