我有一个包含许多图像的存储桶,我想从Amazon S3 getObject()方法返回的缓冲区中动态调整其中一个,但是我找不到直接调整大小的库从内存缓冲区。 Thumbbot和Imagemagick从磁盘读取文件,这不是我需要的!
这是一个示例代码:
exports.resizeImage = function(req, res) {
bucket.getObject({Key: 'image.jpg'}, function(err, data){
if (err) throw err;
var image = resizeImage(data.Body);//where resize image is a method or a library that I need to call
res.writeHead(200, {'Content-Type': data.ContentType });
res.end(image); //send a resized image buffer
});
};
我感谢任何帮助,谢谢
答案 0 :(得分:4)
我找到了使用gm
库的节点js
var gm = require('gm').subClass({ imageMagick: true });
exports.resizeImage = function(req, res) {
bucket.getObject({Key: 'image.jpg'}, function(err, data){
if (err) throw err;
gm(data.Body, 'ok.jpg')
.size({bufferStream: true}, function(err, size) {
this.resize(200, 200);
this.toBuffer('JPG',function (err, buffer) {
if (err) return handle(err);
res.writeHead(200, {'Content-Type': data.ContentType });
res.end(buffer);
});
});
});
};