標籤:
publicclass BitMapTools {
?
????/**
???? * 對圖片進行解碼操作
???? *
???? * @param resource
???? * 資源檔
???? * @param resId
???? * 解碼位元影像的iD
???? * @param reqWidt
???? * 指定輸出位元影像的寬度
???? * @param reqHight
???? * 制定輸出位元影像的高度
???? * @return
???? */
????publicstatic Bitmap decodeBitmap(Resources resource, int resId,
????????????int reqWidth, int reqHight) {
????????// 對位元影像進行解碼的參數設定
????????BitmapFactory.Options option = new BitmapFactory.Options();
????????// 在對位元影像進行解碼的過程中,避免申請記憶體
????????option.inJustDecodeBounds = true;
????????BitmapFactory.decodeResource(resource, resId, option);
????????//對圖片進行壓縮
????????option.inSampleSize = calculateInSimpleSize(option, reqWidth, reqHight);
????????option.inJustDecodeBounds = false;
????????return BitmapFactory.decodeResource(resource, resId, option);
????}
?
????/**
???? * 計算相關壓縮比例
???? * @param option
???? * @param reqWidth
???? * @param reqHight
???? * @return
???? */
????publicstaticint calculateInSimpleSize(BitmapFactory.Options option,
????????????int reqWidth, int reqHight) {
????????// 擷取圖片的原始寬高
????????int imageHight = option.outHeight;
????????int imageWidht = option.outWidth;
?
????????// 壓縮比例
????????int inSimpleSize = 1;
????????if (imageHight > reqHight || imageWidht > reqWidth) {
????????????finalint heightRatio = Math.round(1.0f * imageHight / reqHight);
????????????finalint widthRatio = Math.round(1.0f * imageWidht / reqWidth);
????????????inSimpleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
????????}
????????return inSimpleSize;
????}
}
Android位元影像相關解碼操作