完全に白い色(R = 255、G = 255、B = 255、または好きな場合は#ffffff)を置き換える必要がある場合、コードは機能します。
白色に似ているが(正確には同じではない)色を置き換える場合は、ColorFuzz
を使用して公差を導入することができます。あなたは次のようになり、あなたの方法に新しいfuzz
パラメータを追加することができ、この達成するために
:
private static MagickImage ChangeWhiteColor(MagickImage Image, Color TargetColor, int fuzz)
{
Image.ColorFuzz = new Percentage(fuzz);
Image.Opaque(MagickColor.FromRgb((byte)255, (byte)255, (byte)255),
MagickColor.FromRgb(TargetColor.R,
TargetColor.G,
TargetColor.B));
return Image;
}
は、例えば3つの白い四角形が含まれている次の画像を考えてみましょう。各図形の下で、私はRGB値を報告しました。

あなたの元のコードのみが置き換えられます:第二及び第三の白色と非常に類似している非常に軽い灰色が充填されている間に左の最初の矩形は、純粋な白色が充填されています左側の最初の白い四角(ファズのデフォルト値であるため0%):

fuzz=2
で修飾されたコードの実行は、第一及び第二の白い四角形が、第三のない置き換えられます:
と変更されたコードを実行する

すべての3つの白い長方形置き換えます:あなたは交換する必要が色を一致させるためにfuzz
値(パーセンテージ)を調整することができます

を。
ファズhereの詳細情報
あなたの質問をもっと詳細にすることができますか?あなたが試したことと結果を含める。 –
Magick.Netは分かりませんが、色が正確ではないので、特にファジーなJPEGがあるため、 'fuzz'パラメータを見つけて置き換える必要があります。あなたが求める結果を得るでしょう。 –
赤(R = 255、G = 0、B = 0)の四角形を含むイメージでコードを試してみました。あなたは、ツアー画像で置き換えたい色が赤色の「完璧な」255,0,0であることを確かめますか? – Andrea