0

System.Drawing.Imaging.Imageformat のどのフォーマットがどのシナリオで最適なオプションですか?

アプリケーションのメモリ消費量と画像の品質に関心があります。

私のアプリケーションでは、品質が優先されず、画像のコンテンツだけが表示される必要があるメモリに画像をロードしています。どの画像形式がここに最適ですか?

4

1 に答える 1

1

メモリ管理は無関係です -ImageFormatメモリ内のビットマップを IO ストリーム (ディスク上のファイルなど) に保存するときのフォーマットを制御するために使用されます。

Image.NET の s はBitmaps または vectorMetafileです。Bitmapつまり、作成する各インスタンスは常にStride * Height * PixelFormatメモリのバイトを占有します。

十分に圧縮された PNG または JPEG 画像のバイトをメモリ内 (おそらくMemoryStreamまたはByte[]配列内) に保持することはできますが、それを使って何もすることはできません (たとえば、画面に表示したり、画像のピクセルを変更したり、など) メモリ内でラスター ビットマップとして表されるまで、GDI+ (つまりSystem.Drawing.*) が必要とするためです。

(はい、例外があります。たとえば、JFIF をメモリにロードして DCT ブロックを操作する (a la jpegtran)、または圧縮された画像を直接グラフィックス カードのメモリに読み込む機能を持つ Direct3D や OpenGL などのグラフィックス API を使用する (ただし、その場合でも、テクスチャはラスター形式でメモリ内に残ります)。

于 2013-10-31T00:10:30.483 に答える