web-dev-qa-db-ja.com

不変ビットマップファイルを可変ビットマップに変換する

A:

 Bitmap immutableBmp= BitmapFactory.decodeResource(getApplicationContext().getResources(),R.drawable.sample);
 mutableBitmap=immutableBmp.copy(Bitmap.Config.ARGB_8888, true);

B:

Bitmap immutableBmp= BitmapFactory.decodeFile(filePath);
mutableBitmap=immutableBmp.copy(Bitmap.Config.ARGB_8888, true);

C:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable=true;
myBitmap=BitmapFactory.decodeFile(filePath,options);

Aは機能しますが、BとCは機能しません。不変のビットマップを可変に変換しようとしています。リソースイメージでは機能しますが、ファイルイメージでは機能しません。どうしたの?

18
Alex

問題を見つけました!上記の3つの方法はすべて機能しており、画像の解像度に問題があったため、コードは機能せず、変更可能ではないと思いましたが、私は間違っていました。不変のイメージを変更可能に変更する別のソリューションを次に示します。

BitmapFactory.decodeResourceは、Android 2.2で変更可能なビットマップを返し、Android 1.6)で不変のビットマップを返します

1
Alex

これが見つかりました:

Bitmap bmp_Copy = bmp_Base.copy(Bitmap.Config.ARGB_8888,true);
4
Florian Erwig