System.Drawing.Imaging.Imageformat のどのフォーマットがどのシナリオで最適なオプションですか?
アプリケーションのメモリ消費量と画像の品質に関心があります。
私のアプリケーションでは、品質が優先されず、画像のコンテンツだけが表示される必要があるメモリに画像をロードしています。どの画像形式がここに最適ですか?
System.Drawing.Imaging.Imageformat のどのフォーマットがどのシナリオで最適なオプションですか?
アプリケーションのメモリ消費量と画像の品質に関心があります。
私のアプリケーションでは、品質が優先されず、画像のコンテンツだけが表示される必要があるメモリに画像をロードしています。どの画像形式がここに最適ですか?
メモリ管理は無関係です -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 を使用する (ただし、その場合でも、テクスチャはラスター形式でメモリ内に残ります)。