node.js - 急求 node 图片裁切 后台怎么处理
巴扎黑
巴扎黑 2017-04-17 12:00:19
[Node.js讨论组]

目的:对上传上来的图片进行裁切。

自己网上百度过,尝试使用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,其实还需要配置环境变量。谢谢下面的回答

巴扎黑
巴扎黑

全部回复(3)
迷茫

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号