HTML / जावास्क्रिप्ट में बाइट सरणी के रूप में संग्रहीत छवि कैसे प्रदर्शित करें? [बन्द है]


83

मैं HTML / जावास्क्रिप्ट में एक वेब पेज लिख रहा हूँ। मैं AJAX का उपयोग करके अपने बैकएंड से एक छवि डाउनलोड कर रहा हूं। छवि को कच्चे बाइट सरणी के रूप में दर्शाया गया है, URL नहीं, इसलिए मैं मानक का उपयोग नहीं कर सकता<img src="{url}"> दृष्टिकोण का ।

मैं उपयोगकर्ता को उल्लिखित छवि कैसे दिखाऊं?



आउटपुटस्ट्रीम ओ = resp.getOutputStream (); o.write (imageInBytes);

1
मुझे पूछने से डर लगता है, लेकिन जिज्ञासा जीत जाती है ... यह ऑफ-टॉपिक क्यों है?
घनाक्षरी 42

मुझे नहीं लगता कि यह मुद्दा ऑफ-टॉपिक है।
मेटासोयर्स

जवाबों:


141

इस HTML स्निपेट को अपने सर्व किए गए दस्तावेज़ में डालने का प्रयास करें:

<img id="ItemPreview" src="">

फिर, जावास्क्रिप्ट पक्ष पर, आप srcतथाकथित डेटा URL के साथ छवि की विशेषता को गतिशील रूप से संशोधित कर सकते हैं ।

document.getElementById("ItemPreview").src = "data:image/png;base64," + yourByteArrayAsBase64;

वैकल्पिक रूप से, jQuery का उपयोग कर:

$('#ItemPreview').attr('src', `data:image/png;base64,${yourByteArrayAsBase64}`);

यह मानता है कि आपकी छवि PNG प्रारूप में संग्रहीत है, जो काफी लोकप्रिय है। यदि आप कुछ अन्य छवि प्रारूप (जैसे JPEG) का उपयोग करते हैं, तो URL में MIME प्रकार ( "image/..."भाग) को तदनुसार संशोधित करें ।

इसी तरह के सवाल:


2
मेरा बाइट = डाइट / डाउनलोड / k1a3JvBCfU3vLji $ zKkhQObxzck। src = data: image / png; base64, dwr / download / k1a3JvBCfU3vLji $ zKkhQObxzck। मैंने DWR

बाइट प्रारूप छवि डाउनलोड।
डायमंड किंग

2
पार्टी के लिए देर से लेकिन अगर आपकी प्रतिक्रिया दिखती है [137,80,78,71,13,10,26,10,0,...], तो आप इस लाइन का उपयोग कर सकते हैं:document.getElementById("ItemPreview").src = "data:image/png;base64," + btoa(String.fromCharCode.apply(null, new Uint8Array([137,80,78,71,13,10,26,10,0,...])));
जोएल'- '31

1
मैंने उत्तर को थोड़ा और स्पष्ट करने के लिए संपादित किया, लेकिन मुझे एक चीज़ नहीं मिल रही है इसलिए मैंने इसे ठीक नहीं किया। यह उत्तर क्यों मानता है कि छवि को बेस 64 स्ट्रिंग में संग्रहीत किया गया है? ओपी ने उल्लेख किया (और मैंने संपादित इतिहास की जांच की) एक "बाइट सरणी", न कि "बेस 64 स्ट्रिंग"।
घनाक्षरी 42

1
@ जोएल'- 'यह मेरे लिए काम किया,
थंक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.