मैं एक छवि को एन्कोड और डीकोड करने की कोशिश कर रहा हूं। मैं छवि को base64 में बदलने के लिए FileReader की readAsDataURL विधि का उपयोग कर रहा हूं। फिर इसे वापस बदलने के लिए मैंने readAsBinaryString()
और atob()
का उपयोग करके कोई भाग्य नहीं लिया है। क्या बेस 64 एन्कोडिंग के बिना छवियों को जारी रखने का कोई और तरीका है?बेस 64 ब्रेक छवि के साथ एन्कोड/डीकोड छवि
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
मैं परीक्षण के लिए क्रोम का उपयोग कर रहा हूं, लेकिन मुझे नवीनतम एंड्रॉइड और आईओएस ब्राउज़र में काम करने की आवश्यकता होगी। – sissonb