Atitit js nodejs 图像处理压缩缩放算法 attilax总结
Atitit js nodejs 图像处理压缩缩放算法 attilax总结
2. GraphicsMagick Image Processing System 1
2.2. 注意事项。使用im类库貌似比较麻烦,下载了几个都不是的。。不带cli接口。。Gm默认的也不带接口,要在官网下载的才带cli接口。。 3
1.1. 项目背景,图片体积太大。需要压缩
先看是否使用jpg压缩,图片已经是jpg压缩过了。这个思路只好放弃。
然后看是否可以使用减小分辨率压缩法。这个是可以的,预计可以吧34M大小的图片压缩到几百kb级别。。原来的图片有大几千到几万的像素宽高度。。
1.2. 语言选项,使用Js 使用gm模块
Java 使用imageio或者thumbnail也可以了。。
因为毕竟一个简单的缩放功能,所以使用大型库有点麻烦,就选择小型类库gm。。
下载gm
http://www.graphicsmagick.org/
2. GraphicsMagick Image Processing System
Current Release | 1.3.25 (Released September 5, 2016) download release |
GraphicsMagick-1.3.25-Q16-win32-dll.exe 4m
Then Instatll ,then ok
2.1. code
/**
* Created by Administrator on 2017/1/29.
*/
//node_path=C:\Users\Administrator\node_modules;C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm
//mod C:\Users\Administrator\AppData\Roaming\npm\node_modules\cnpm
function processOnePicV2(f,hit,wid)
{
var gm22 = require('mysql')
var gm = require('gm')
, fs = require('fs')
// , imageMagick = gm.subClass({ imageMagick : true });
var path = require('path');
var filM = require("./com.attilax/io/fileUtil.js");
var pM = require("./com.attilax/io/path.js");
var outFull=pM.addSuffix(f,"_mini");
gm(f)
.resize(150, 150, '!') //加('!')强行把图片缩放成对应尺寸150*150!
.autoOrient()
.write(outFull, function(err){
if (err) {
console.log(err);
}
});
}
function main(){
var pm=require("path");
var tim_mod = require("./com.attilax/time/time.js");
var filM = require("./com.attilax/io/fileUtil.js");
var dir="D:\\0pictest";
var fls=filM.getFileListV2(dir);
for(idx in fls)
{
/**
* { path: 'c:\\00orgSave',
filename: 'index_P57_1484408092882.html' }
*/
var f=fls[idx];
var f_str= f.path+pm.sep+ f.filename;
// var data=fs.readFileSync(f_str,"utf-8");
processOnePicV2(f_str);
console.log(f_str);
}
}
main();
注意gm模块调用的是gm.exe,务必要把gm安装好。。并加入到path中。。
2.2. 注意事项。使用im类库貌似比较麻烦,下载了几个都不是的。。不带cli接口。。Gm默认的也不带接口,要在官网下载的才带cli接口。。
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher kok 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
Emir Uke部落首席大酋长,
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke 首席cto 奶牛科技首席cto , 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长
uke终身教育学校副校长 Uke医院 与医学院方面的创始人
Uke 户外运动协会理事长 度假村首席大村长 uke交友协会会长
uke出版社编辑总编
转载请注明来源:attilax的专栏 ?http://blog.csdn.net/attilax
--Atiend v4