2012-03-02 6 views
28

मैं एक जेपीईजी छवि को पढ़ने और फिर छवि दिखाने का उदाहरण खोजने का प्रयास कर रहा हूं।nodejs - jpg छवि को कैसे पढ़ और आउटपुट करें?

var http = require('http'), fs = require('fs'); 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/html'}); 

fs.readFile('image.jpg', function (err, data) { 
    if (err) throw err; 
    res.write(data); 
}); 

res.end(); 
}).listen(8124, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:8124/'); 

निम्नलिखित कोड की कोशिश की लेकिन मुझे लगता है एन्कोडिंग बफर वस्तु के रूप में प्रकट होता है जब मैं डेटा console.log निर्धारित करने की आवश्यकता।

उत्तर

48

यहाँ है कि कैसे आप पूरी फ़ाइल सामग्री पढ़ सकते हैं, और अगर सफलतापूर्वक किया है, एक वेबसर्वर जो हर अनुरोध के जवाब में JPG छवि प्रदर्शित करता है शुरू:

var http = require('http') 
    , fs = require('fs'); 

fs.readFile('image.jpg', function(err, data) { 
    if (err) throw err; // Fail if the file can't be read. 
    http.createServer(function(req, res) { 
    res.writeHead(200, {'Content-Type': 'image/jpeg'}); 
    res.end(data); // Send the file data to the browser. 
    }).listen(8124); 
    console.log('Server running at http://localhost:8124/'); 
}); 

ध्यान दें कि सर्वर द्वारा शुरू की है " readFile "कॉलबैक फ़ंक्शन और प्रतिक्रिया शीर्षलेख Content-Type: image/jpeg है।

[संपादित करें] तुम भी सीधे एक data URI source के साथ एक <img> का उपयोग करके एक HTML पृष्ठ में छवि एम्बेड कर सकते हैं। उदाहरण के लिए:

res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.write('<html><body><img src="data:image/jpeg;base64,') 
    res.write(Buffer.from(data).toString('base64')); 
    res.end('"/></body></html>'); 
+2

वहाँ यह इतना मान लीजिए कि हम jpeg डेटा पढ़ सकते हैं और यह base64 करने के लिए एन्कोडिंग के माध्यम से हो सकता है src विशेषता में डाल करने के लिए एक तरीका है? – mesh

+2

बहुत बढ़िया! बस मुझे जिस समाधान की आवश्यकता थी। उस दूसरे उदाहरण के लिए धन्यवाद। – mesh

+0

क्या हमारे पास एकाधिक छवियां हैं? –

-1

दो बातों में मन सामग्री प्रकार रखने के लिए और एन्कोडिंग को

1. क्या करता है, तो फ़ाइल सीएसएस

है अगर (/.(css)$ /.test(path)) { res.writeHead (200, {'सामग्री-प्रकार': 'टेक्स्ट/सीएसएस'});

res.write (डेटा, 'UTF8');

} 2 फ़ाइल JPG/PNG

है क्या होगा अगर अगर (/.(jpg)$/.test(path)) { res.writeHead (200, {'सामग्री-प्रकार': 'छवि/जेपीजी'});

res.end (डेटा, 'Base64'); }

एक से ऊपर जवाब और नहीं सटीक कोड पैटर्न की व्याख्या करने के लिए सिर्फ एक नमूना कोड है।

संबंधित मुद्दे