1

Web アプリの一部として実行時に画像を操作するツールがあります。

これは通常は問題なく動作しますが、Firefox 3.5 のリリースでは、いくつかの色の問題が見られます。これは、Firefox 3.5 が、他のブラウザーではサポートしていない埋め込み ICC カラー プロファイルをサポートするようになったためだと思います。

表示の一貫性を保つために、.NET コード内の ICC カラー プロファイルをプログラムで削除したいと考えています。

誰かが私を正しい方向に向けることができますか?

ありがとう - クリス

4

2 に答える 2

1

さらに調査したところ、IE は一部のガンマ補正情報を認識しており、FireFox 3.5 は埋め込まれた ICC カラー プロファイルを認識していたようです。

この情報はすべて、デフォルトで .NET フレームワークの PNG 実装によって追加されたようです。

.NET でこの情報を削除することは可能です - 私はそれについてここでブログを書いています。

于 2009-10-11T14:40:38.017 に答える
0

この方法うまくいくかもしれませんが(私はそれをテストしていません)、やり過ぎかもしれません:

public void StripBitmap(string path)
{
    Bitmap originalBitmap = (Bitmap)Bitmap.FromFile(path);
    Bitmap strippedBitmap = 
        new Bitmap(originalBitmap.Width, originalBitmap.Height);
    using (Graphics g = Graphics.FromImage(strippedBitmap))
    {
        g.DrawImage(originalBitmap, 0, 0);
    }
    System.Drawing.Imaging.ImageFormat fmt = originalBitmap.RawFormat;
    originalBitmap.Dispose();
    System.IO.File.Delete(path);
    strippedBitmap.Save(path, fmt);
    strippedBitmap.Dispose();
}

GDI +のビットマップクラスはカラープロファイルをサポートしていないようですが、サポートしている場合は、上記のサンプルのDrawImage操作によって引き継がれるとは思いません。

于 2009-09-25T12:50:58.513 に答える