TinyPNGNodeJSBatcher-基於TinyPNG的批量壓縮圖片工具

by AlexQ (email alexq_andr@163.com)javascript

工程源碼託管在 GitHub follow&star

tinypngPanda

TinyPNG

Smart PNG and JPEG compression
Optimize your images with a perfect balance in quality and file size.複製代碼

若是你想進一步瞭解TinyPNG壓縮圖片請移步官網TinyPNG查看。java

什麼是TinyPNGNodeJSBatcher?

提供一個NodeJS環境下,基於TinyPNG服務的,批量壓縮任意數量圖片的工具。node

###使用
熟悉tinypng的朋友能夠直接進入使用階段,不熟悉的能夠先閱讀下面的內容再回頭來看這個部分。android

  1. 安裝NodeJS環境:隨便百度一下你使用的平臺如何安裝吧,大把大把的資料;
  2. 安裝tinify支持:npm install --save tinify;
  3. 修改index工程適配你的環境:
    • 申請API KEY(如何申請下面的部分找一下),填寫到global.key中 ;
    • 使用compressAllFiles入口,將參數設置成本身的吧;
  4. 啓動工程中的index.js入口:
    • cd到工程目錄
    • node index.js

demo運行結果(工程中不少圖片都已經被壓縮過了,因此壓縮率demo中不高,你能夠用你的工程看一下,效果明顯):git

demo

實際場景中的批量壓縮

TinyPNG提供了不錯的圖片壓縮,可是免費版本每月只能免費壓縮500張圖片,並且我看到產品同窗、設計同窗每每都是手動的將每一張圖片拖動到TinyPNG中,手動的話每次20張圖片,這樣很不方便,白白耗費人力耗費時間。github

tinypngcomplex

申請TinyPNG的KEY

tinypng.com/developers/…npm

getapikey

解決痛點

咱們實際應用中,多是須要對一個成型的產品裏面全部圖片文件統一執行壓縮,並且圖片可能會分散在不一樣的目錄下,那麼TinyPNGNodeJSBatcher就是解決這些痛點的。api

簡單易用

  1. 一個調用就將你指定目錄下(容許帶有子文件夾的任意目錄)圖片文件多線程利用tinypng在線壓縮;
  2. 若是你指定了多個tinypng可用的key,那麼在第一個key每個月500張使用完後,TinyPNGNodeJSBatcher會自動切換使用第二個key,依此類推,作到不限數量的批量壓縮,多找幾個郵箱註冊就能夠得到多個可用的APIKey啦;
  3. 結合實際,接口中能夠指定那些你不想它們參與壓縮的目錄,例如:android工程編譯後會生成不少中間目錄,這些目錄我們不作壓縮,典型的就是build目錄;
  4. 接口中能夠指定那些不想參與壓縮的,帶有關鍵字文件名稱,也就是說名字包含這些字串的文件將不參與壓縮,典型應用android中「.9」類型的圖片咱們通常不作壓縮,例如:['.9.png'];

瀏覽接口

  1. compressAllFiles:核型功能-壓縮全部指定目錄文件到另外一個指定目錄
  2. tools_checkImages:工具方法-查找全部能夠壓縮的文件
  3. tools_findImageFiles:工具方法-查找並拷貝全部可壓縮文件
  4. tools_overWriteFiles:工具方法-反向將壓縮後的文件覆蓋原來對等目錄結構的文件

測試

Mac上測試可用多線程

相關文章
相關標籤/搜索