如何将位图解码为特定文件



我当前正在缩放位图,以避免使用offmemoryexception。有没有办法指定要解码的文件大小?因此,无论输入映像是什么文件大小,它都会缩放到指定的文件大小。

我正在使用http://androidbysravan.wordpress.com/category/outofmemory-exception-when-decoding-with-bitmapfactory/,直到我可以找出一种指定输出文件大小的方法,我正在使用以下代码。/p>

Bitmap bm = null; 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inSampleSize = 10; 
AssetFileDescriptor fileDescriptor =null; 
try { 
    fileDescriptor = _context.getContentResolver().openAssetFileDescriptor(selectedImage,"r"); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
finally{ 
    try { 
        bm = BitmapFactory.decodeFileDescriptor(fileDescriptor.getFileDescriptor(), null, options); 
        fileDescriptor.close(); 
    } catch (IOException e) { 
        e.printStackTrace(); 
    } 
} 
return bm; 
} 

您解释的图像将以压缩格式(例如png,jpeg等)等。尽管您无法控制解码的图像的大小,但是您可以控制某些属性,使您可以使用BitmapFactory.Options类有效地解码图像。

这是有关如何正确使用此类课程有效加载图像的出色官方指南:

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

最新更新