我正在开发一款使用手机相机拍照并在应用中使用的应用程序。但是,应用程序会因为位图分辨率过高导致内存不足。有没有办法使位图保持相同大小,但降低分辨率呢?
谢谢!
我正在开发一款使用手机相机拍照并在应用中使用的应用程序。但是,应用程序会因为位图分辨率过高导致内存不足。有没有办法使位图保持相同大小,但降低分辨率呢?
谢谢!
您可以设置其宽度和高度
Bitmap bm = ShrinkBitmap(imagefile, 150, 150);
调用函数
Bitmap ShrinkBitmap(String file, int width, int height){
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height);
int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width);
if (heightRatio > 1 || widthRatio > 1)
{
if (heightRatio > widthRatio)
{
bmpFactoryOptions.inSampleSize = heightRatio;
} else {
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
bmpFactoryOptions.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
return bitmap;
}