6

ビットマップ オブジェクトの MIME タイプを取得したい。実際、私は使用してビットマップを圧縮しました

bitmap.compress (Bitmap.CompressFormat.PNG , 100, stream);

ここで、フォーマット、outBounds、およびメモリ領域のサイズをクロスチェックしたいと思います。しかし、私は長くて退屈な仕事をしたくありません。それをストリームに戻してから、オプション付きの BitmapFactory を使用して再度 BItmap に変換します。

4

1 に答える 1

4

Dmitry が提案するように、ストリームに圧縮された画像がある場合は BitmapFactory を使用してそれをデコードし、それがどのタイプであるかを伝える必要があります。(技術的には、ストリームを自分で読み込んで独自のアドホックファイル形式チェックを実行することもできますが、独自のツールを作成するよりも、既存のツールを使用することをお勧めします。)

実行できる最適化の 1 つは、BitmapFactory.Options.inJustDecodeBoundsを設定して、画像の型を知りたい場合に画像全体を不必要にデコードしないようにすることです。デコード後、outMimeTypeプロパティは画像のタイプを示します。

タイトルの文字通りの質問に関しては、意味がありません。Bitmapには MIME タイプはありません。これは、ピクセルの配列の単なるコンテナーです。JPEG、PNG、WEBP などのさまざまな形式を使用してビットマップをストリームに圧縮できますが、それは画像の圧縮されたコピーを提供するだけです。

于 2014-02-11T04:03:35.223 に答える