1. 程式人生 > >使用libjpeg進行圖片壓縮(哈夫曼算法,無損壓縮)

使用libjpeg進行圖片壓縮(哈夫曼算法,無損壓縮)

ima fma 編碼 不同 通過 amp lib 打包 一個

Huffman算法也是一種無損壓縮算法,但與LZW壓縮算法不同,Huffman需要得到每種字符出現概率的先驗知識。通過計算字符序列中每種字符出現的頻率,為每種字符進行唯一的編碼設計,使得頻率高的字符占的位數短,而頻率低的字符長,來達到壓縮的目的。通常可以節省20%~90%的空間,很大程度上依賴數據的特性!Huffman編碼是變長編碼,即每種字符對應的編碼長度不唯一。

前綴碼:任何一個字符的編碼都不是同一字符集中另一種字符編碼的前綴。Huffman編碼為最優前綴碼,即壓縮後數據量最小。

項目鏈接:https://github.com/ewgcat/CompressImageByHuffman

使用libjpeg進行圖片壓縮(哈夫曼算法,無損壓縮)

使用方法:

方法一、依賴compress

方法二、拷貝example 的lib包下文件到你的項目,具體使用參考例子

推薦方法 下載compress,根據具體需求,重新打包

註意

1、只支持armeabi;

2、壓縮過程是耗時操作,必須在子線程中調用

3、圖片壓縮有最大極限,如果要指定壓縮到多少KB,請結合其他壓縮方式使用。

使用效果

將3.58M的圖片無損壓縮到100KB

使用libjpeg進行圖片壓縮(哈夫曼算法,無損壓縮)