Итак, я работаю над своим проектом в Windows Forms и имею небольшую проблему. В этом проекте мне нужно сравнить несколько изображений, которые находятся в одной папке с скриншотом.Я получаю исключение при сравнении изображений
Если снимок экрана содержит изображение, метод должен возвращать true, иначе он должен возвращать значение false. Все изображения в папке находятся в формате «PNG», и я меняю формат на «Format24bppRgb» после получения их из файла в коде и в любом третьем сравнении он дает мне «IndexOutOfRange».
Я использую следующий код для сравнения один от одного изображения с экрана:
string[] addressArray = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "Kartebi2"), "*.png");
string[] imageAddress = new string[addressArray.Length];
Bitmap[] bitmap1 = new Bitmap[36];
Bitmap[] bitmapImage = new Bitmap[36];
for (int i = 0; i < bitmap1.Length; i++)
{
bitmap1[i] = (Bitmap)System.Drawing.Image.FromFile(addressArray[i]);
bitmapImage[i] = Form1.ConvertToFormat(bitmap1[i], System.Drawing.Imaging.PixelFormat.Format24bppRgb);
}
for (int i = 0; i < bitmapImage.Length; i++)
{
if (CompareMethod.CompareImageMethod(bitmap, bitmapImage[i]))
imageAddress[i] = addressArray[i];
else
imageAddress[i] = null;
}
и я использую следующий метод: Compare
public static bool CompareImageMethod(Bitmap screenshot, Bitmap template)
{
bool result;
ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0.921f);
TemplateMatch[] matching = tm.ProcessImage(screenshot, template);
if (matching[0].Similarity > 0.95f)
result = true;
else result = false;
return result;
}
Так теперь о моей проблеме, в любом 3- rd Сравнивание это дает мне следующее Исключение: enter image description here
если кто знает, как решить эту проблему, пожалуйста, скажите мне. Я опубликовал аналогичный вопрос, но там я просил метод сравнения (я не знал, как сравнивать изображения). В этой статье я спрашиваю об исключении из функции Compare, которую я нашел в Интернете.
Самый простой способ просто прочитать его по пикселям из bitmap1 и bitmap2. Сравните цвет. https://msdn.microsoft.com/en-us/library/system.drawing.bitmap.getpixel(v=vs.110).aspx –