MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Преоразмеряване на изображения с Nodejs и Imagemagick

Разгледайте модула за възли 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);

Пс. Все още не сте изпълнили горния код. Ще се опитам да го направя скоро, но би трябвало да ви даде представа как да преоразмерите асинхронно и да предавате поточно файл.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. node.js MongoDB заявката не връща резултати

  2. Командата е неуспешна с грешка 168 (InvalidPipelineOperator):„Неразпознат израз „$match“

  3. Mongoose добавя няколко обекта към масива, ако не съществува

  4. mongorestore се проваля поради невалиден BSONSize

  5. Не може да се запише буфер в MongoDB GridFS