0

我正在从我的资产文件夹中使用首选配置 RGB565 加载我的位图并记录它们的格式配置,但我总是得到 ARGB8888。我确定我的一些位图配置是 RGB565 但我认为它们覆盖了像 ARGB8888 位图这样的区域.如何使用自己的格式加载它们?

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Config.RGB_565;
Bitmap bitmap = BitmapFactory.decodeStream(in,null,options);
Log.d("a", fileName+" "+bitmap.getConfig().name());
4

1 回答 1

1

您不会总是以这种方式获得 RGB565 - 它取决于编码(它是首选编码)

加载位图后,您可以创建一个新位图并将其复制到那里......因为您正在有效地重新编码图像。

Bitmap maskBitmap = Bitmap.createBitmap( orig.getWidth(), orig.getHeight(), Bitmap.Config.RGB_565 );
Canvas c = new Canvas();
c.setBitmap(maskBitmap);
Paint p = new Paint();
p.setFilterBitmap(true); // possibly not nessecary as there is no scaling
c.drawBitmap(orig,0,0,p);
orig.recycle();

然后你可以使用 maskBitmap 作为加载的位图。

于 2012-08-27T19:37:15.883 回答