6

私はBitmap.Save(location,coded,parameters)tiff 画像の最初のフレームを保存するために使用しています: 使用されるエンコード方式は Tiff 形式です。その後、などを使用saveadd()します。win 7 64 ビットでは魅力的に動作しますが、32 ビットまたはそれ以前の Windows バージョンでは動作しません。

調査の結果、GDI+ より前のものとは異なる方法で処理された tiff 画像エンコーディングが原因である可能性があることがわかりました。

劇的な変更なしにこれを克服する方法はありますか?

ソース:

Bitmap.Save() を呼び出しているパラメータが無効です

http://social.msdn.microsoft.com/Forums/fi-FI/netfxbcl/thread/1585c562-f7a9-4cfd-9674-6855ffaa8653

4

2 に答える 2

18

品質パラメータには「long」を使用する必要があります

EncoderParameters parametre = new EncoderParameters(1);
parametre.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (quality as long));

また

EncoderParameters parametre = new EncoderParameters(1);
parametre.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90L);

また

long quality=90; //
EncoderParameters parametre = new EncoderParameters(1);
parametre.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
于 2013-03-01T22:14:39.757 に答える
1

わかりました、ついに解決策が見つかりました。問題は、Save() の入力パラメーターの 1 つとして指定された圧縮形式と、GDI+ のしくみにあります。

解決策 1:

圧縮の形式は、そのウィンドウでサポートされている形式に変更する必要があります。例) (long)EncoderValue.CompressionLZW.net での圧縮は、.net の代わりにこの場合に機能し(long)EncoderValue.CompressionCCITT4ます。

ただし、イメージのサイズは CCITT4 から生成されたものよりも大きくなります。また、CCITT4 はモノクロ イメージ専用で、LZW はほとんどのイメージに適合します。したがって、これらの問題を先取りして考えてください。tiff イメージの作成が使用されるほとんどの場所では、使用される圧縮とこの問題はあまり重要視されていません。

または、別の解決策を以下に示します [試したことはありません]

解決策 2:

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/1585c562-f7a9-4cfd-9674-6855ffaa8653/

追加資料:

したがって、どの圧縮を選択するか、および参照できる理由について質問します。

https://stackoverflow.com/questions/3478292/whats-the-recommended-tiff-compression-for-color-photos/3480411#3480411

于 2013-03-02T12:06:25.903 に答える