मैं इसपीएनजी बाइनरी डेटा को एक आईएमजी टैग में कैसे डालें और इसे एक छवि के रूप में प्रदर्शित करें?
$.ajax({
type: "GET",
url: 'template/bump1/purse.png',
datatype:"image/png",
success: function (data) {
var reader = new FileReader();
reader.onload = function (e) {
var img = document.getElementById("CaptchaImg");
img.src = e.target.result;
};
reader.readAsDataURL(data);
//$('#CaptchaImg').attr('src', data);
}
});
एक छवि डाउनलोड करने के लिए उपयोग कर रहा हूँ, और यह बाइनरी में बाहर आता है, इस
Node.js की तरह लग रही
WriteHeaderMode('image/png', res, 200);
res.end(data, 'binary');
के रूप में यह लौटा रहा है
लेकिन अब, मैं इसे एक छवि टैग में कैसे डालूं और इसे एक छवि के रूप में दिखाऊं। नोट: मैं बेस 64 एन्कोडिंग के रूप में डेटा वापस करना चाहता हूं, इसे बाइनरी होना चाहिए। हालांकि, बाइनरी को क्लाइंट साइड पर बेस 64 में कनवर्ट करने के साथ ठीक है।
जब मैं इसे readAsDataURL
पर पास करता हूं, तो यह TypeError
अपवाद कहता है।
धन्यवाद
संपादित
var img = document.getElementById("CaptchaImg");
var reader = new FileReader();
reader.onload = function(e) {
//img.src = e.target.result;
$("body").html(e.target.result);
};
reader.readAsDataURL(new Blob([data]));
इस यह एक बेस 64 एन्कोडिंग, जो data:application/octet-stream;base64,
के रूप में शुरू होता है, लेकिन एक छवि प्रदर्शित नहीं करता है में परिवर्तित करने लगता है ...
मैं इतना शोध नहीं किया है, लेकिन मैं के बाद से 'आवेदन/ओकटेट पर stream' मूल रूप से कह रहा है" मुझे डाउनलोड "अनुमान लगा रहा हूँ, यदि आप एक सीधे ऊपर कर' कोशिश कर सकते हैं .replace ("एप्लिकेशन/ऑक्टेट-स्ट्रीम", "छवि/पीएनजी"); '। एक शॉट लॉल के लायक – Deryck
मैंने कोशिश की, लेकिन यह काम नहीं किया। – sneaky
अच्छी तरह से मुझे पता है कि मैं इसे सुझाव देने के लिए पागल नहीं था। लेकिन समस्या के रूप में इसे ठीक करने की कोशिश करने के बजाय, शायद तर्क को फिर से सोचने का प्रयास करें? बस चित्र URL को 'src' विशेषता सेट करके आप AJAX की तो बजाय छवि के डाउनलोड की प्रक्रिया शुरू करेंगे सिर्फ इतना है कि – Deryck