這篇文章主要介紹了Android中3種圖片壓縮處理方法,本文講解了質(zhì)量壓縮方法、獲得縮略圖、圖片縮放三種方法并分別給出示例代碼,需要的朋友可以參考下
Android中圖片的存在形式:
1:文件形式:二進制形式存在與硬盤中。
2:流的形式:二進制形式存在與內(nèi)存中。
3:Bitmap的形式
三種形式的區(qū)別:
文件形式和流的形式:對圖片體積大小并沒有影響。也就是說,如果你手機SD卡上的圖片通過流的形式讀到內(nèi)存中,在內(nèi)存中的大小也是原圖的大小。
注意:不是Bitmap的形式。
Bitmap的形式:圖片占用的內(nèi)存會瞬間變大。
以下是代碼的形式:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 /** * 圖片壓縮的方法總結 */ /* * 圖片壓縮的方法01:質(zhì)量壓縮方法 */ private Bitmap compressImage(Bitmap beforBitmap) { // 可以捕獲內(nèi)存緩沖區(qū)的數(shù)據(jù),轉(zhuǎn)換成字節(jié)數(shù)組。 ByteArrayOutputStream bos = new ByteArrayOutputStream(); if (beforBitmap != null) { // 第一個參數(shù):圖片壓縮的格式;第二個參數(shù):壓縮的比率;第三個參數(shù):壓縮的數(shù)據(jù)存放到bos中 beforBitmap.compress(CompressFormat.JPEG, 100, bos); int options = 100; // 循環(huán)判斷壓縮后的圖片是否是大于100kb,如果大于,就繼續(xù)壓縮,否則就不壓縮 while (bos.toByteArray().length / 1024 > 100) { bos.reset();// 置為空 // 壓縮options% beforBitmap.compress(新聞熱點
疑難解答