- Options options1 = new Options();
- options1.inJustDecodeBounds = true;
- BitmapFactory.decodeFile(filePath, options1);
- options1.inSampleSize = RegisterTool.calculateInSampleSize(options1, 110, 160); //110,160:转换后的宽和高,具体值会有些出入
- options1.inJustDecodeBounds = false;
- Bitmap bitmap = BitmapFactory.decodeFile(filePath, options1); //filePath:文件路径
- public static int calculateInSampleSize(BitmapFactory.Options options,
- int reqWidth, int reqHeight) {
- final int height = options.outHeight;
- final int width = options.outWidth;
- int inSampleSize = 1;
- 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 ? widthRatio : heightRatio;
- }
- return inSampleSize;
- }
- //压缩图片并将Bitmap保存到本地
- FileOutputStream out = new FileOutputStream(new File(filePath));
- saveBitmap.compress(Bitmap.CompressFormat.JPEG, 60, out); //60代表压缩40%