using System; using System.Drawing; using DesertPaintCodex.Services; namespace DesertPaintCodex.Util { public class PixelColor { private const int ColorTolerance = 3; public static bool IsMatch(Color colorA, Color colorB) { return ((Math.Abs(colorA.R - colorB.R) <= ColorTolerance) && (Math.Abs(colorA.G - colorB.G) <= ColorTolerance) && (Math.Abs(colorA.B - colorB.B) <= ColorTolerance)); } public static bool IsDark(Color color) { return (color.R < 0x47) && (color.G < 0x47) && (color.B < 0x47); } public static bool IsPapyrus(Color color) { // red between 208 and 244 // 240 and 255 // green between 192 and 237 // 223 and 250 // blue between 145 and 205 // 178 and 232 //return ((r > 0xD0) && (g >= 0xC0) && (b >= 0x91)) && // ((r < 0xF4) && (g <= 0xED) && (b <= 0xCD)); return ((color.R >= 0xD0) && (color.R <= 0xFF) && (color.G >= 0xC0) && (color.G <= 0xFA) && (color.B >= 0x91) && (color.B <= 0xE8)); } public static bool IsRed(Color color) { return (color.R > 0x9F) && (color.G < 0x70) && (color.B < 0x70); } public static bool IsGreen(Color color) { return (color.R < 0x70) && (color.G > 0x9F) && (color.B < 0x70); } public static bool IsBlue(Color color) { return (color.R < 0x70) && (color.G < 0x70) && (color.B > 0x9F); } } }