2017-11-10 6 views
0

SetLowlightColorが機能しません!MagickImageで-highlight-colorを使用するには?

using (IMagickImage img1 = new MagickImage(Path.Combine(fullpath, IMAGE1))) 
     { 
      using (IMagickImage img2 = new MagickImage(Path.Combine(fullpath, IMAGE2))) 
      { 
       using (IMagickImage imgDiff = new MagickImage()) 
       { 
        img1.ColorFuzz = new Percentage(fuzz);      
        imgDiff.SetLowlightColor(new MagickColor(Color.Blue)); 
        double diff = img1.Compare(img2, ErrorMetric.Absolute, imgDiff); 


        imgDiff.Write(result); 
       } 
      } 
     } 

https://www.imagemagick.org/Usage/compare/

+0

これはあなたがバグを見つけたようです。そして、私はSetLowLightColorメソッドをリファクタリングする必要があると思います。ここで問題を開いてもいいですか:https://github.com/dlemstra/Magick.NET? – dlemstra

答えて

0

あなたがMagick.NETライブラリのバグを発見したことが表示されます。問題を解決するために、ライブラリのバージョン7.1.0.0を公開しました。しかし、MagickImageクラスのSetLowlightColorを移動し、CompareSettingsという新しいクラスを導入して、Lowlightcolorを設定することもできます。このプロパティは、compareメソッドでのみ使用されるため移動されます。あなたのコードは次のように変更してください:

using (IMagickImage img1 = new MagickImage(Path.Combine(fullpath, IMAGE1))) 
{ 
    using (IMagickImage img2 = new MagickImage(Path.Combine(fullpath, IMAGE2))) 
    { 
     using (IMagickImage imgDiff = new MagickImage()) 
     { 
      img1.ColorFuzz = new Percentage(fuzz); 
      CompareSettings settings = new CompareSettings() 
      { 
       Metric = ErrorMetric.Absolute, 
       LowlightColor = MagickColors.Blue 
      }; 
      double diff = img1.Compare(img2, settings, imgDiff); 

      imgDiff.Write(result); 
     } 
    } 
} 
+0

ありがとう、それは完全に働いた。 –

関連する問題