0

そのようなエンコーダは存在しますか? GDI+ の機能はあまり充実していません。たとえば、8bpp のインデックス付きインメモリを使用している場合でも、常に 32bpp の画像をレンダリングします。

Web サーバーから多くの PNG を書き始めようとしていますが、これは実際には 8bpp で透明度がインデックス化されている必要があります (PNG はパレットでアルファ レベルをサポートしています)。パフォーマンス上の理由から、ネイティブ .NET (および安全でないコード) でこれを実行したいので、ImageMagickまたはFreeImageを提案しないでください。

この質問に答えられない時間が長ければ長いほど、PNG 仕様をさらに読み進めることになります :)

4

2 に答える 2

2

PngBitmapEncoder クラスを使用します。内部で WIC を使用します。FormatConvertedBitmap クラスは、パレットを設定し、ピクセル形式を変換するのに役立ちます。少なくとも .NET 3.0 が必要です。

于 2010-11-13T16:24:22.517 に答える
1

http://nquant.codeplex.comで nQuant をチェックすることもできます。GDI+ 32 ビット BitMap インスタンスをそれに渡すと、8 ビット 256 色のインデックス付きパレット イメージが返されます。元の画像が 8 ビットの場合、この変換はロスレスになるはずです。

これは依存関係のないバニラ C# で書かれたライブラリです。

于 2011-09-11T20:06:10.033 に答える