नोड मॉड्यूल पर एक नज़र डालें node-imagemagick . आकार बदलने और छवि बनाने और इसे एक फ़ाइल में लिखने के लिए मॉड्यूल के पृष्ठ पर निम्न उदाहरण है...
var fs = require('fs');
im.resize({
srcData: fs.readFileSync('kittens.jpg', 'binary'),
width: 256
}, function(err, stdout, stderr){
if (err) throw err
fs.writeFileSync('kittens-resized.jpg', stdout, 'binary');
console.log('resized kittens.jpg to fit within 256x256px')
});
आप निम्न कार्य करने के लिए इस कोड को बदल सकते हैं...
var mime = require('mime') // Get mime type based on file extension. use "npm install mime"
, fs = require('fs')
, util = require('util')
, http = require('http')
, im = require('imagemagick');
http.createServer(function (req, res) {
var filePath = 'test.jpg';
fs.stat(filePath, function (err, stat) {
if (err) { throw err; }
fs.readFile(filePath, 'binary', function (err, data) {
if (err) { throw err; }
im.resize({
srcData: data,
width: 256
}, function (err, stdout, stderr) {
if (err) { throw err; }
res.writeHead(200, {
'Content-Type': mime.lookup(filePath),
'Content-Length': stat.size
});
var readStream = fs.createReadStream(filePath);
return util.pump(readStream, res);
});
});
});
}).listen(8080);
पीएस अभी तक ऊपर दिए गए कोड को नहीं चलाया है। इसे शीघ्र ही करने का प्रयास करेंगे, लेकिन इससे आपको यह पता चल जाएगा कि किसी फ़ाइल का अतुल्यकालिक रूप से आकार बदलने और स्ट्रीम करने का तरीका क्या है।