使用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 ...