安卓圖片縮放
阿新 • • 發佈:2019-01-11
縮放圖片並載入到記憶體中
_計算機圖形處理的原理
計算機在表示圖形的時候使用畫素點來表示,每個畫素點都是使用一個顏色來表示,
每個顏色都是6個十六進位制的數值來表示的,計算機在底層表示圖形時就是使用01001字串來表示的,處理圖形時就是修改0101的序列。
縮放載入圖片:
1、得到裝置螢幕的解析度:
2、得到原圖的解析度:
3、通過比較得到一個合適的比例值:
4、使用比例值縮放一張圖片,並載入到記憶體中:
程式碼:
// 1、得到裝置螢幕的解析度: WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); long screenHeigth = display.getHeight(); long screenWidth = display.getWidth(); // 2、得到原圖的解析度: Options opts = new Options(); //如果置為true,表示只繫結圖片的大小 opts.inJustDecodeBounds = true; BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts); long scrHeight = opts.outHeight; long scrWidth = opts.outWidth; // 3、通過比較得到一個合適的比例值: int scale = 1; //3000/320 = 9 3000/480=6 int sx = (int) (scrWidth/screenWidth); int sy = (int) (scrHeight/screenHeigth); if(sx>=sy&& sx>=1){ scale = sx; } if(sy>sx&& sy>=1){ scale = sy; } // 4、使用比例值縮放一張圖片,並載入到記憶體中: opts.inJustDecodeBounds = false; //按照比例縮放原圖 opts.inSampleSize = scale; Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts);