1

ImageView に読み込もうとしている画像 (PNG) があります。このPNGファイルのファイルサイズは390.6KBです。

このPNGファイルをビットマップにデコードすると、ビットマップのサイズは> 9MBになります。ただし、ビットマップの幅と高さはそれぞれ 1920 と 1280 です。

なぜビットマップのサイズ > ( bitmap.width * bitmap.height ) なのですか? このような他の多くの画像をロードする私のアプリでは、9MB は大量です。

サンプル サイズ (2/4) を指定してこの画像をサンプリングしようとすると、画像の幅と高さがビットマップのサイズと共に変化します。

この画像をメモリサイズで拡大縮小するにはどうすればよいですか?ただし、画像の幅と高さは保持されますか?

4

1 に答える 1

5

PNG は最大 4 つのチャネル (ARGB) を持つことができるため、実際のメモリ消費量はwidth*height*4、各ピクセルがメモリ内に 4 つのスペースを必要とするためです。

他のほとんどすべての画像形式に対して同様の計算を行うことができます。width*height*channels

于 2013-05-11T16:36:42.817 に答える