我正在尝试编码和解码图像。我正在使用FileReader的readAsDataURL方法将图像转换为base64。然后将其转换回来,我尝试过使用readAsBinaryString()
和atob()
,但没有运气。有没有其他的方式来保持图像没有base64编码他们?带有base64中断图像的编码/解码图像
readAsBinaryString()
Starts reading the contents of the specified Blob, which may be a File. When the read operation is finished, the readyState will become DONE, and the onloadend callback, if any, will be called. At that time, the result attribute contains the raw binary data from the file.
任何想法我在做什么错在这里?
示例代码 http://jsfiddle.net/qL86Z/3/
$("#base64Button").on("click", function() {
var file = $("#base64File")[0].files[0]
var reader = new FileReader();
// callback for readAsDataURL
reader.onload = function (encodedFile) {
console.log("reader.onload");
var base64Image = encodedFile.srcElement.result.split("data:image/jpeg;base64,")[1];
var blob = new Blob([base64Image],{type:"image/jpeg"});
var reader2 = new FileReader();
// callback for readAsBinaryString
reader2.onloadend = function(decoded) {
console.log("reader2.onloadend");
console.log(decoded); // this should contain binary format of the image
// console.log(URL.createObjectURL(decoded.binary)); // Doesn't work
};
reader2.readAsBinaryString(blob);
// console.log(URL.createObjectURL(atob(base64Image))); // Doesn't work
};
reader.readAsDataURL(file);
console.log(URL.createObjectURL(file)); // Works
});
谢谢!
在浏览器这个例子中工作? TypeError:encodedFile.srcElement未定义 – cIph3r 2013-02-19 23:35:41
我正在使用Chrome进行测试,但我需要它在最新的Android和iOS浏览器中工作。 – sissonb 2013-02-19 23:37:20