日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android压缩图片不失真,Android压缩图片到100K以下并保持不失真的高效方法 - feicien的博客 - eoe移动开发者社区...

發布時間:2024/9/15 Android 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android压缩图片不失真,Android压缩图片到100K以下并保持不失真的高效方法 - feicien的博客 - eoe移动开发者社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.獲取原始圖片的長和寬

1

2

3

4

5

BitmapFactory.Options options = new BitmapFactory.Options();

options.inJustDecodeBounds = true;

BitmapFactory.decodeFile(filePath, options);

int height = options.outHeight;

int width = options.outWidth;

以上代碼是對圖片進行解碼,inJustDecodeBounds設置為true,可以不把圖片讀到內存中,但依然可以計算出圖片的大小,這正好可以滿足我們第一步的需要。

2.計算壓縮比例

1

2

3

4

5

6

7

8

9

10

int height = options.outHeight;

int width = options.outWidth;

int inSampleSize = 1;

int reqHeight=800;

int reqWidth=480;

if (height > reqHeight || width > reqWidth) {

final int heightRatio = Math.round((float) height/ (float) reqHeight);

final int widthRatio = Math.round((float) width / (float) reqWidth);

inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;

}

一般手機的分辨率為 480*800 ,所以我們壓縮后圖片期望的寬帶定為480,高度設為800,這2個值只是期望的寬度與高度,實際上壓縮后的實際寬度也高度會比期望的要大。如果圖片的原始高度或者寬帶大約我們期望的寬帶和高度,我們需要計算出縮放比例的數值。否則就不縮放。heightRatio是圖片原始高度與壓縮后高度的倍數,widthRatio是圖片原始寬度與壓縮后寬度的倍數。inSampleSize為heightRatio與widthRatio中最小的那個,inSampleSize就是縮放值。 inSampleSize為1表示寬度和高度不縮放,為2表示壓縮后的寬度與高度為原來的1/2

3.縮放并壓縮圖片

1

2

3

4

5

6

7

8

//在內存中創建bitmap對象,這個對象按照縮放大小創建的

options.inSampleSize = calculateInSampleSize(options, 480, 800);

options.inJustDecodeBounds = false;

Bitmap bitmap= BitmapFactory.decodeFile(filePath, options);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

bm.compress(Bitmap.CompressFormat.JPEG, 60, baos);

byte[] b = baos.toByteArray();

前3行的代碼其實已經得到了一個縮放的bitmap對象,如果你在應用中顯示圖片,就可以使用這個bitmap對象了。由于考慮到網絡流量的問題。我們好需要犧牲圖片的質量來換取一部分空間,這里調用bm.compress()方法進行壓縮,這個方法的第二個參數,如果是100,表示不壓縮,我這里設置的是60,你也可以更加你的需要進行設置,在實驗的過程中我設置為30,圖片都不會失真。

閱讀全文……

總結

以上是生活随笔為你收集整理的android压缩图片不失真,Android压缩图片到100K以下并保持不失真的高效方法 - feicien的博客 - eoe移动开发者社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。