4

DNG RAW画像ファイルからサムネイル画像を取得してAndroidで表示しようとしています。必要なすべてのタグを正常に読み取り、値を取得して画像を形成しました。しかし、私は以前に画像を扱ったことがないので、ビットマップの作成で問題に直面しています。生の画像タグを読み取ることで、次の値を取得しました。

画像の幅 = 320

画像の高さ = 216

圧縮 = 1 (1 = 非圧縮)

ピクセルあたりのサンプル = 3

サンプルごとのビット = 8

画像開始オフセット = 7044

色の解釈 = 2 (2=ARGB_8888)

画像データを取得するには、私のコードは次のとおりです。

int uBitsPerPixel = samplePerPixel * bitPerSample;
int lengthOfBitmap = imageLength * imageWidth * uBitsPerPixel/8;//size of image data
InputStream fis = new FileInputStream(file);
byte[] img = new byte[lengthOfBitmap];
fis.skip(startOffset);//image data starting position
fis.read(img, 0, lengthOfBitmap);
fis.close();

上記のコードから、圧縮されていない画像データのバイト配列を取得しています。しかし、ビットマップをヌルとして取得して、ビットマップに変換しています。

BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
bitmap = BitmapFactory.decodeStream(inputStream, null, bmpFactoryOptions);

では、どうすればビットマップを適切に作成できますか? 助けてくれてありがとう。

4

0 に答える 0