如何使用BitmapFactory.decode *()指定位图格式(例如RGBA_8888)?

时间:2011-06-25 20:03:12

标签: android bitmapfactory

我正在拨打BitmapFactory.decodeFile()BitmapFactory.decodeResource()几次,我想指定位图解码的格式,例如RGB_565或RGBA_8888。

目前,解码的位图格式似乎取决于传入的图像。或者,有没有办法将现有位图转换为特定格式?

这一点很重要的原因是,当我尝试使用jnigraphics解码图像时,某些图像会返回AndroidBitmapFormat类型ANDROID_BITMAP_FORMAT_NONE,我认为这是无用的。有没有人更深入地了解为什么格式不是已知值?发生这种情况时,内置图像选择器会正确显示以这种方式解码的图像,因此我认为必须有一种方法来处理它们。

感谢您的投入!

2 个答案:

答案 0 :(得分:22)

这可能就是你要找的东西:

BitmapFactory.Options op = new BitmapFactory.Options();
op.inPreferredConfig = Bitmap.Config.ARGB_8888;
bitmap = BitmapFactory.decodeFile(path, op);

答案 1 :(得分:1)

当你有位图时,可以在它上面调用copy方法,指定BitmapConfig,这基本上就是你想要的。 http://developer.android.com/reference/android/graphics/Bitmap.html#copy(android.graphics.Bitmap.Config,boolean