Android知識筆記之圖片壓縮

圖片壓縮有兩種方式:

1、有損壓縮:通過丟失不會對文件造成太大影響的數據來達到壓縮效果,所以壓縮率高,如JPG。

2、無損壓縮:通過對冗餘數據的存儲方式進行優化,該方式不會丟失文件內容,壓縮率受冗餘度的影響,所以壓縮率降低,如PNG。

PNG壓縮:

1、編譯階段(aapt打包工具進行壓縮,40%以下)

2、api層調用方式(libpng)

注意:.9文件經過aapt打包之後會變大,因爲生成了2-3個chunk塊,而api層不會有影響。

圖片格式:

RGB_565:每個像素佔2個字節,R佔5位、G佔6位、B佔5位,最多能表示65536種顏色。

RGB_888:每個像素佔3個字節,RGB各佔8位,最多能表示16777216種顏色。

RGB_4444:每個像素佔2個字節,RGB各佔4位,最多能表示4096種顏色,成像效果比較差。

ARGB_8888:每個像素佔4,ARGB各佔8位,最多能表示16777216種顏色,前8位位alpha(0~255),通道表示每個像素點的透明度。

WebP:支持alpha通道的有損壓縮格式。

Bitmap

佔用內存計算:寬*高*每個像素所佔字節數

壓縮:

1、減少虛擬機堆中所佔用的內存大小

2、減少在硬盤中所佔用的物理內存大小

壓縮方式:

1、降低色彩位數(Bitmap.Config)

2、尺寸壓縮(BitmapFactory.Options

3、質量壓縮(Bitmap.compress())

Tips:

對於一些高清的圖片,建議放到assets目錄中,避免在drawable中讀取的時候佔用內存過高(不同分辨率讀取的文件夾不一樣,沒有同分辨率的圖片則讀取上一個的,直到默認的)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章