6

ビットマップのサイズを変更する最良の方法は何ですか?

使用する

options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);

また

Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);
4

3 に答える 3

13

これを使用して、元の画像と同じアスペクト比を維持するサンプル画像を作成します。これはサイズを変更するための最良の方法です。

options.inSampleSize = 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mandy_moore, options);
Bitmap resizedbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);

これにより、提供されたwとhでビットマップがスケーリングされます。これにより、ビットマップが歪む可能性があります。

必要に応じてご使用ください。

于 2013-01-27T11:40:39.513 に答える
13

ビットマップのサイズを変更する最良の方法は何ですか?

必要な柔軟性によって異なります。

options.inSampleSize = N;これは、元の画像のN分の1の画像が得られることを意味します。基本的に、デコーダーはNピクセルごとに1ピクセルを読み取ります。

ビットマップに特定のサイズは必要ないが、メモリの使用量を減らすためにサイズを小さくする必要がある場合は、このオプションを使用します。これは、大きな画像を読む場合に特に便利です。

Bitmap.createScaledBitmap一方、より詳細な制御が可能です。ビットマップの最終的な寸法を正確に示すことができます...

最良の方法は、両方の方法を組み合わせて使用​​することです。

  1. ソース画像を効率的にデコードするために使用できる最大値を決定しinSampleSizeます(デコードされた画像が必要な最終サイズよりも大きいように)
  2. Bitmap.createScaledBitmap結果のサイズを正確に制御するために使用します
于 2013-01-27T11:46:52.803 に答える
-1

createScaledBitmapメソッドは低品質の画像を生成します

この投稿から提案を取りますビットマップの画質

于 2013-01-27T11:45:08.027 に答える