ノード画像は、画像を圧縮しました

前提条件:インストール・イメージ

 

 NPMインストールイメージを

 

コードを書きます

アイデア:指定されたファイルの画像からクリップトラバース、圧縮を実行し、フォルダに指定したファイルの完了後に圧縮し、写真を保つには変化がなかったです。

VaRの画像=は、(「画像」)が必要です。
VaRのFSの=は、( "FS")を必要とします。

VARパス= "1012"; 
VaRのOUTPATH = "圧縮/";  


関数圧縮(パス){ 
    fs.readdir(パス、関数(ERR、ファイル){      
        IF(ERR){ 
            にconsole.log( 'エラー:\ n' + ERR); 
            リターン; 
        } 

        files.forEach(関数(ファイル){ 

            fs.stat(パス+ '/' +ファイル、関数(ERR、STAT){ 
                IF(ERR){にconsole.log(ERR);リターン;} 
                もし(stat.isDirectory()){                  
                    //如果是文件夹遍历
                    (パス+ '/' +ファイル)を圧縮
                {}さもなければ
                   
                    console.log( 'ファイル名:' +パス+ '/' +ファイル); 
                    VARパス=名+ '/' +ファイル; 
                    VAR = OUTPATH OUTNAME +ファイル

               イメージ(名).SAVE(OUTNAME、{              
                                品質:82 / /ファイル50の画質に画像を保存する
                            );} 

                }                
            ;})

        ;)} 

    )}; 
} 

圧縮(パス)

  

テスト実行:ノードimg.js

 

 

 

結果 

試験後、画像の幅と高さを変更することなく、携帯電話のカメラ画像が圧縮され、圧縮された画像サイズは、元の画像の1/4です。

 

注:APIインタフェース

画像(ファイル)

ファイルからのロードおよびデコード画像
指定されたファイルとデコード画像からロードします

画像(幅、高さ)

新しい透明画像作成
透明画像の指定された幅と高さを作成するために

画像(緩衝液[開始[エンド]])

バッファから負荷デコード画像
復号画像データバッファから

イメージ(画像【、X、Y、幅、高さ])

別の画像からコピーし
た画像を作成するために、画像の別の領域からコピー

.fill(赤、緑、青の[アルファ])

EG:images(200, 100).fill(0xff, 0x00, 0x00, 0.5) と塗りつぶしのカラー
指定した色画像を埋めます

.draw(画像、x、y)は

描画  画像  現在の画像上の位置(  X  、  Y  )
現在の画像内の(  X  、  Yが  上にプロット)  イメージ  画像

.encode(タイプ[、設定])

EGは:images("input.png").encode("jpg", {operation:50}) 画像バッファへのエンコードは、  configが  画像の設定です。
バッファに現在の画像をエンコードするために指定された形式で、画像のためのコンフィグ設定は、現在の設定JPG画像の画質をサポートしている
リターンバッファが
満たされたバッファを返す
注:でウィルによる操作をカテナのalberghieraので切断
注:これは、コールチェーンを切断します
参照:.SAVE(ファイル[、タイプ [、設定]]) 参照:.SAVE([タイプ、ファイル設定]])

.SAVE([設定]、[入力]ファイル)

EG:images("input.png").encode("output.jpg", {operation:50}) エンコードとする現在の画像の保存  ファイルの場合は、  型が  指定されていない、  タイプ  まあ自動的にに従って決定され  、ファイル、  設定は  :. EGを設定するイメージである  { operation:50 }
コーディングとする現在の画像を保存する  ファイルの  種類が指定されていない場合は、応じて  ファイルを  自動的にファイルの種類、画像のためのコンフィグ設定を決定し、現在、JPG画像の画質設定をサポートしています

.size([幅[高さ])

画像のサイズを取得または設定した画像の大きさを、高さが指定されていない場合は、現在の幅と高さに基づいてスケーリング
HIGHER現在の幅の拡大縮小率、高さが指定されていない場合は、画像の幅と高さを取得または設定します

.resize(幅[高さ])

画像のサイズを設定した場合、高さが指定されていない、現在の幅と高さに基づいてスケーリングする
高さは、バイキュービックアルゴリズムのデフォルト値、幅のスケーリングよりも高い電流に応じて、指定されていない場合、画像の幅と高さに設けられています。

.width([幅])

画像のための幅を取得または設定幅画像のは、
取得または画像の幅を設定し、

.height([高さ])

イメージの高さを取得または設定する高さの画像のは、
取得またはイメージの高さを設定し、

images.setLimit(幅、高さ)

各画像の上限サイズを設定し
、ライブラリの写真に設定されているサイズ制限を、(例外がスローされた場合にオーバーラン)すべての新規事業のための発効後に設定

images.setGCThreshold(値)

ガベージコレクションの閾値を設定する
(ような画像処理ライブラリGC自動閾値を設定する追加のメモリ使用量が閾値、ガベージコレクションを超えます)

images.getUsedMemory()

(バイト)が使用メモリを取得
(バイト単位)画像処理ライブラリのメモリ・サイズを得るために

images.gc()

強制ガベージコレクション
必須ガベージコレクションは、V8を呼び出します




おすすめ

転載: www.cnblogs.com/fslnet/p/11769436.html