Atitit js nodejs 图像处理压缩缩放算法 attilax总结

Atitit js  nodejs 图像处理压缩缩放算法 attilax总结

 

1.1. 项目背景,图片体积太大。需要压缩 1

1.2. 语言选项,使用Js  使用gm模块 1

2. GraphicsMagick Image Processing System 1

2.1. code 2

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

 

posted @ 2017-02-01 19:46  attilaxAti  阅读(35)  评论(0编辑  收藏  举报