急求 node 图片裁切 后台怎么处理
目的:对上传上来的图片进行裁切。
自己网上百度过,尝试使用 gm ,怎么弄就是不行。imageMagick这个也进行了引用。
出现的问题:图片能生成,但是图片没内容是空白的。
代码:
var fileReadStream = fs.createReadStream(old_path);
var fileWriteStream = fs.createWriteStream(new_path);
gm(fileReadStream)
.resize('200', '200')
.stream(function(err, stdout, stderr) {
stdout.pipe(fileWriteStream);
});
发现自己问题出在哪里了:
gm中有一段是这么写的自己没注意
First download and install GraphicsMagick or ImageMagick. In Mac OS X, you can simply use Homebrew and do:
我以为是npm安装ImageMagick,其实还需要配置环境变量。谢谢下面的回答
dishors
9 years, 5 months ago
Answers
巧了,我的项目中,我就是拿nodejs当图片服务器的。以前有写着图片处理的代码,你看下哈,我这里没啥问题。
我这个是添加水印和修改大小的
var gm = require('gm');
var watermark = 'logo.png';
var spawn = require('child_process').spawn;
function resize_image(path, max_width, callback){
gm(path).resize(max_width, null, '>').quality(80).setFormat('JPEG').write(path, callback);
}
function add_watermark(path, callback){
var composite = spawn('gm', ['composite', '-gravity', 'SouthEast', '-dissolve', '80', 'logo.png', path, path]);
composite.on('exit', function(code){
callback();
});
}
俊程Jared
answered 9 years, 5 months ago