1

XP と Windows 7 のイメージ ファイルに問題がありますが、Windows 2008 ボックスでは問題なく動作します。実際の問題になると、問題のTIF画像は、請求書の詳細を含む白い背景の請求書フォーム画像です。2008 年に開くと白い背景で開きますが、XP と Windows 2008 で開くと、黒い背景に白いテキストが表示されます。この問題について助けを求めています。1. OS の問題ですか 2. OS の問題である場合、開発に C# を使用しているため、任意のコード (できれば C#) を使用して背景色を白に変更するにはどうすればよいですか。

前もって感謝します

サティシュ

4

2 に答える 2

1

パレットを交換するだけで、問題はこれで解決されます...

         Dim plet As ColorPalette = Image.Palette
         plet.Entries(1) = c1
         plet.Entries(0) = c2
         Image.Palette = plet

しかし、問題のある画像を特定することにしました。つまり、問題のある画像にのみこれを適用する必要があるためです。それ以外の場合は、正しい画像も反転します。

于 2012-12-27T11:23:31.340 に答える
0

CMYK または透明度の問題、または 16 ビット カラー形式 (コンポーネントごと) で保存されている可能性があります。

しかし、分析のために 1 つの実際のファイルにアクセスしないと、これを判断するのは困難です。

アップデート:

問題 1: TIFF ファイルの場合 - Windows XP では、単一のビットプレーン (2 色) を使用する TIFF ファイルで Windows フォト ビューアーとその基盤となるテクノロジによって Photometric タグが無視されます。これはバグです。

解決策 1a: パレット エントリを手動で入力して (既存のものに切り替えて)、ビット 0 (オフ) 黒とビット 1 (オン) 白を強制します。

解決策 1b: ファイルを RGB ファイル /gray-scale として保存するのがより理想的ですが、GDI+ では 8 ビットのグレースケール ファイル (IMO) は適切にサポートされていません)。

問題 2: バイト順。Windows XP では、バイト オーダー (ビッグ エンディアン) が問題を引き起こす可能性があります。通常、TIFF はモトローラのビッグ エンディアン形式 (MSB) で保存されますが、Windows XP では、TIFF ファイルはリトル エンディアン形式であると見なされます。

解決策 2a: 新しいファイルのリトル エンディアン順 (Intel) で新しい TIFF ファイルを保存する

解決策 2b: 既存のファイルを再保存 (再スキャン) できない場合は、既存のファイルのコンテンツの順序を変更し、バイト順を LSF (Intel) から MSF (Motorola) に切り替えます。新しいバイト順を示すようにヘッダーを更新します (MM などの II を置き換えます)。

于 2012-12-18T00:26:13.240 に答える