第一步安装imageMagick和gm模块

1, cnpm install --save imageMagick gm

第二步在服务器上安装imageMagick,下载地址http://www.imagemagick.org/download/windows/ (另外安装时需要勾选Install legacy utilities(e.g. convert)选项)

第三步 代码使用

var imageMagick = gm.subClass({ imageMagick : true });
var fs= require('fs');
var formidable = require('formidable'); router.post('/upload',function(req,res){
var host = req.headers.host;
var origin = req.protocol + "://" + host;
var form = new formidable.IncomingForm(); form.uploadDir = "tmp"; //指定文件存放的临时目录 form.parse(req, function(err, fields, files) {
if(files.wangEditorH5File){//h5方式上传 var tempFilePath = files.wangEditorH5File.path;
var newFileName = files.wangEditorH5File.name; }else{ //ie8,ie9使用表单方式上传 var tempFilePath = files.wangEditorFormFile.path;
var fileName = files.wangEditorFormFile.name;
var fileType = fileName.split('.')[1];
var newFileName = Math.random().toString().slice(2)+'.'+fileType; } fs.rename( tempFilePath, process.cwd() + '/public/uploads/' + newFileName, function(err){
if(err) {
res.set('Content-Type', 'text/plain;charset=UTF-8');
return res.send('error|'+err.stack);
}
// res.end(origin+'/uploads/'+newFileName);//返回图片地址
imageMagick(process.cwd() + '/public/uploads/' + newFileName)
.resize(750, 450, '!') //加('!')强行把图片缩放成对应尺寸150*150!
.autoOrient()
.write(process.cwd() + '/public/uploads/min/' + newFileName, function(err){
if(err){
// res.set('Content-Type', 'text/plain;charset=UTF-8');
return res.end('error|'+err.message);
}
res.sendFile(process.cwd() + '/public/uploads/min/' + newFileName)
});
})
});
})

Note:如果执行以上三步报错的话,请确保将安装目录下的convert.exe文件所在目录添加到系统环境变量里

其他参考文档 gm命令大全

使用gm和imageMagick处理图片的更多相关文章

  1. 使用ImageMagick处理图片后导致图片变大的问题

    最新在使用ImageMagick处理图片时,发现有时经过处理的图片变大的问题. 例如原图为27K,经处理后的图片会变为77K. 先看测试代码: // imgtest.cpp : 定义控制台应用程序的入 ...

  2. JMagic 操作 ImageMagick 处理图片

    项目描述 imagemagick是功能强大的图片处理库,以稳定及高效率著称,众多语言对该库进行封装处理.比如php.java.由于我们是java项目,直接使用java通过JNI技术调用ImageMag ...

  3. Im4java 操作 ImageMagick 处理图片

    背景 之前用的是JMagick,各种限制各种坑,直到使用了Im4java,真是相当的好用啊. 项目描述 ImageMagic的安装可参考:图片处理软件 ImageMagick 的安装和使用 Im4ja ...

  4. 图片处理GraphicsMagick & ImageMagick

    用Java的ImageIO处理一个大于15M的JPG文件,内存溢出. 于是寻求新的解决方案,用ImageMagicK,发现处理图片速度不令人满意,于是切换至GraphicsMagicK,如下是总结. ...

  5. NodeJs + gm图片缩略图

    我的另一篇文章: Nginx/Apache图片缩略图技术 gm官网 1, 软件环境 nodejs npm GraphicsMagick or ImageMagick 貌似ImageMagick在处理大 ...

  6. ImageMagick图片服务器

    1.前置准备工具如下: nodejs express(nodejs mvc框架) body-parser(express middleware) gm(nodejs中用来处理图片的) uuid(nod ...

  7. 【gm】

    gm : GraphicsMagick for node.js aheckmann/gm imgAreaSelect 图片剪裁 apt-get install imagemagick 执行conver ...

  8. ImageMagick

    http://blog.csdn.net/lan861698789/article/details/7738383 1.官网 http://www.imagemagick.org/script/ind ...

  9. 图片处理服务 ImageMagick 的安装和使用

    简介 该文章使用目前官方最新版本7.0.8,这里只记录下Windows系统下的安装. 官方网站:http://www.imagemagick.org/script/index.php. ImageMa ...

随机推荐

  1. python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等) #http://www.c ...

  2. Domino中使用JAVA代理

    Domino中使用JAVA代理一定要小心,特别是R5的版本. 1.及时地对所用到Notes Object(session,agentContext,db,view,document. 等等)进行Rec ...

  3. GDALBuildVRT异构波段的支持

    目录 简述 修改源码 1.修改DatasetProperty结构体 2.修改VRTBuilder::AnalyseRaster函数 3.修改VRTBuilder::CreateVRTNonSepara ...

  4. java中pojo、dao命名解释

    POJO::POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和EJB ...

  5. 微信小程序组件

  6. windbg dds、dps、dqs

    dds.dps和dqs命令显示给定范围内存的内容,它们是把内存区域转储出来,并把内存中每个元素都视为一个符号对其进行解析,dds是四字节视为一个符号,dqs是每8字节视为一个符号,dps是根据当前处理 ...

  7. 微信支付中的jsapi返回提示信息

    jsapi中跳转到微信支付中触发的方法是js中的getBrandWCPayRequest方法. 改方法中的返回结果msg提示信息如下: err_msg:get_brand_wcpay_request: ...

  8. centos 为OPENJDK配置JAVA_HOME环境变量,安装MAVEN

    1.安装开发者工具包 yum install java--openjdk-devel -y 2.配置环境变量 vim /etc/profile export JAVA_HOME=/usr/lib/jv ...

  9. C# Deldegate的使用

    Delegate类简介 ------------------------ 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 委托(Delegate)类是一种数据结构 ...

  10. web前端学习笔记-瀑布流的算法分析与代码实现

    瀑布流效果目前应用很广泛,像花瓣,新浪轻博,蘑菇街,美丽说等好多网站都有.也有好多支持该效果的前段框架,今天学习了一下这种效果的实现,不依赖插件,自己动手分析实现过程,为了便于叙述清楚,分析中的一些名 ...