使用gm和imageMagick处理图片
第一步安装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处理图片的更多相关文章
- 使用ImageMagick处理图片后导致图片变大的问题
		
最新在使用ImageMagick处理图片时,发现有时经过处理的图片变大的问题. 例如原图为27K,经处理后的图片会变为77K. 先看测试代码: // imgtest.cpp : 定义控制台应用程序的入 ...
 - JMagic 操作 ImageMagick 处理图片
		
项目描述 imagemagick是功能强大的图片处理库,以稳定及高效率著称,众多语言对该库进行封装处理.比如php.java.由于我们是java项目,直接使用java通过JNI技术调用ImageMag ...
 - Im4java 操作 ImageMagick 处理图片
		
背景 之前用的是JMagick,各种限制各种坑,直到使用了Im4java,真是相当的好用啊. 项目描述 ImageMagic的安装可参考:图片处理软件 ImageMagick 的安装和使用 Im4ja ...
 - 图片处理GraphicsMagick & ImageMagick
		
用Java的ImageIO处理一个大于15M的JPG文件,内存溢出. 于是寻求新的解决方案,用ImageMagicK,发现处理图片速度不令人满意,于是切换至GraphicsMagicK,如下是总结. ...
 - NodeJs + gm图片缩略图
		
我的另一篇文章: Nginx/Apache图片缩略图技术 gm官网 1, 软件环境 nodejs npm GraphicsMagick or ImageMagick 貌似ImageMagick在处理大 ...
 - ImageMagick图片服务器
		
1.前置准备工具如下: nodejs express(nodejs mvc框架) body-parser(express middleware) gm(nodejs中用来处理图片的) uuid(nod ...
 - 【gm】
		
gm : GraphicsMagick for node.js aheckmann/gm imgAreaSelect 图片剪裁 apt-get install imagemagick 执行conver ...
 - ImageMagick
		
http://blog.csdn.net/lan861698789/article/details/7738383 1.官网 http://www.imagemagick.org/script/ind ...
 - 图片处理服务 ImageMagick 的安装和使用
		
简介 该文章使用目前官方最新版本7.0.8,这里只记录下Windows系统下的安装. 官方网站:http://www.imagemagick.org/script/index.php. ImageMa ...
 
随机推荐
- SpringBoot集成MyBatis的分页插件PageHelper
			
俗话说:好
 - 【原创+亲测可用】JS如何区分微信浏览器、QQ浏览器和QQ内置浏览器
			
1.原理: 通过不同移动端的ua弹窗 获取user-agent 参数包含的信息,进行判断浏览器类型 在Android上 QQ内置环境的ua中有关键字 MQQBrowser, 并且后面包含一个[空白符+ ...
 - Windows下的包管理器Chocolatey的使用
			
1.配置安装路径(后续需要管理员权限执行命令) Create a machine level (user level will also work) environment variable name ...
 - Dubbo OPS工具——dubbo-admin & dubbo-monitor
			
1. 前言 今年八月份的时候,查看github仓库,Dubbo OPS还提供了三种工具用于Dubbo的监控运维: 九月份,伴随着Dubbo的全面快速的升级,现在仓库里Dubbo OPS下这三个工具已经 ...
 - 【原创视频教程】XSL视频教程[共9集]
			
这些视频都是13年-14年两年里面录制的,怀着一份创造之心, 可能说得不对,或者说得肤浅,望见谅....也请指正... 谢谢你的支持.. 更多资料:北盟网 www.bamn.cn ---------- ...
 - ios中LeveyPopListView 弹出view的用法
			
下载地址https://github.com/levey/LeveyPopListView 是arc, 如果是非arc项目要设置一下 方法 选中工程->TARGETS->相应的targe ...
 - RS:关于协同过滤,矩阵分解,LFM隐语义模型三者的区别
			
项亮老师在其所著的<推荐系统实战>中写道: 第2章 利用用户行为数据 2.2.2 用户活跃度和物品流行度的关系 [仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法.学术界对协同过滤算 ...
 - libevent终于编译通过了
			
在网上找了个例子,其实libevent本身带了很多测试用例,不过这是第一次编译成功,尼玛 各种高性能IO库都是在linux下的,win32果断被bs了,还好有libevent对win32支持的比较好. ...
 - 树莓派进阶之路 (003) - Raspberry Pi(树莓派)国内软件源
			
树莓派自带的软件源是 deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi 由于网站在国外 ...
 - mysql5.7忘记密码时,修改root密码
			
(1).由于MySQL5.7在安装完后,第一次启动时,会在root目录下生产一个随机的密码,文件名为 .mysql_secret 所以,登录时需要用随机密码登录,然后通过以下命令修改密码 “SET P ...