我的另一篇文章: Nginx/Apache图片缩略图技术

gm官网

1, 软件环境

nodejs

npm

GraphicsMagick or ImageMagick

貌似ImageMagick在处理大图片时比GraphicsMagick要快很多。

2, gm的一些关键函数

//1, 使用方式
var gm = require('gm');
gm("图片源路径")
.resize(200,0) //设置压缩后的w/h
.setFormat('JPEG')
.quality(70) //设置压缩质量: 0-100
.strip()
.autoOrient()
.write("压缩后保存路径" ,
function(err){console.log("err: " + err);})
//2, 获取图片尺寸
gm("图片路径").size(function(err,value){});
//3, 获取图片大小
gm("图片路径").filesize(function(err,value){});```

resize函数, 详细参数

resize {w}x{h} {%} {@} {!} {<} {>}

这里需要注意第3个参数

%

表示按照width/height的百分比, resize(70, 0, '%')表示宽度为原先的70%

@

(×_×)表示不明白,貌似可以限制压缩文件的filesize, gm文档上是这样描述的:

Use @ to specify the maximum area in pixels of an image.

**! **

表示强制width/height, resize(70, 70, '%')表示输出图片尺寸70x70,图片可能变形

^

表示最小width/height, resize(70,70,'^')表示width/height最小不能小于70px

>

表示只有源图片的width or height超过指定的width/height时,图片尺寸才会变。

如:源图片大小:640x640, resize(1000, 1000)最终图片尺寸不变。

<

>正好相反,表示只有源图片的width or height小于指定的width/height时,图片尺寸才会变

gm默认使用GraphicsMagick处理图片,如果你想使用ImageMagick,则:

var gm = require('gm');
var imageMagick = gm.subClass({ imageMagick: true })
//使用方式同上,把上面的gm(..)函数替换成imageMagick(..)函数即可

最新文章

  1. KinectV2+Ubuntu 14.04+Ros 安装教程
  2. 多线程进行http请求
  3. 简单的python服务器程序
  4. angularJs中的隐藏和显示
  5. 基于RTP的H264视频数据打包解包类
  6. php框架练习
  7. SQL Server 2008中增强的&quot;汇总&quot;技巧
  8. .C .h 和 .CCP的区别
  9. linux下改动内核參数进行Tcp性能调优 -- 高并发
  10. jvm的内存空间分区
  11. 201521123039《Java程序设计》 第六周学习总结
  12. css 块状元素与行内元素(内联元素)的理解
  13. 有一台机器,上面有m个储存空间。然后有n个请求,第i个请求计算时需要占 R[i]个空间,储存计算结果则需要占据O[i]个空间(据O[i]个空间(其中O[i]&lt;R[i])。问怎么安排这n个请求的顺序,使
  14. SQL修改某个字段中某相同部分(MySQL)
  15. 设置Firefox(火狐)浏览器的中文菜单/界面
  16. 纪念一下我对Kalman的无限崇拜之情
  17. 特殊字符url编码以后再解码后出现错误(&amp;not , &amp;cent, &amp;curren, &amp;pound)
  18. 解决Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/transaction/spi/TransactionContext
  19. js的日期格式判断
  20. [转] caffe激活层及参数

热门文章

  1. [POJ 2588] Snakes
  2. java中线程队列BlockingQueue的用法
  3. Js动态传递不定数目的参数
  4. insert /*+APPEND*/ 各种insert 插入速度比较
  5. 在 ASP.NET MVC4 中使用 NInject
  6. MD5加密帮助类
  7. ArcEngine查询、添加、删除要素的方法
  8. DB面试题
  9. The new Portable Class Library for SQLite z
  10. 七牛上传Qt版本