Tôi đang cố mã hóa và giải mã hình ảnh. Tôi đang sử dụng phương thức readAsDataURL của FileReader để chuyển đổi hình ảnh thành base64. Sau đó, để chuyển đổi lại, tôi đã thử sử dụng readAsBinaryString()
và atob()
mà không có may mắn. Có cách nào khác để duy trì hình ảnh mà không cần mã hóa base64 không?hình ảnh mã hóa/giải mã với hình ảnh ngắt 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.
Bất kỳ ý tưởng nào tôi đang làm sai ở đây?
Mẫu Mã 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
});
Cảm ơn!
trong đó trình duyệt nào ví dụ này làm việc? TypeError: encodedFile.srcElement không xác định – cIph3r
Tôi đang sử dụng Chrome để thử nghiệm, nhưng tôi sẽ cần nó để làm việc trong các trình duyệt Android và iOS mới nhất. – sissonb