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