很多android開發者可能發現,将bitmap轉為位元組數組可能檔案大小和原始圖檔差異很大,代碼如下
1. 位元組數組data儲存bitmap對象轉為位元組數組,處理代碼:
bitmapfactory.decodebytearray(data, 0, data.length);
2. 而第二種方法處理代碼:
bytearrayoutputstream baos = new bytearrayoutputstream();
bitmap.compress(bitmap.compressformat.jpeg, 100, baos);
data2 = baos.tobytearray();
這裡其實很好了解,第二種方法使用了bitmap的compress方法,一般用于儲存一個bitmap對象,轉為位元組輸出流,但是compress目前編碼由兩種,比如jpg,一般處理照片和png,png一般處理帶alpha透明通道的圖檔,後面的第二個參數是清晰度,一般100是最高,0是最低,這個值越大圖檔越清晰,同時檔案體積越大,jpg和png都是壓縮的圖檔,是以和原始的直接通過bitmapfactory.decodebytearray解碼後的大小會有很大的不同。