急求 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,其实还需要配置环境变量。谢谢下面的回答

阅读 6k
5 个回答

巧了,我的项目中,我就是拿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();
    });
}

听起来像是某个依赖包没有装上导致的

先占位置,有时间做个demo

新手上路,请多包涵

但是这种在高并发的情况下失败率很高

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题