Как сравнить две картинки на разных сайтах? Интересует именно само сравнение. Вся процедура по вытаскиванию картинок и обращение к сайтам не нужно.
using System.Drawing;
Если речь про по пиксельное сравнение, Bm1 Bm2 это ваши картинки.
Bitmap filter1 = new Bitmap(Bm1);
Bitmap filter2 = new Bitmap(Bm2);
if (filter1.Width != filter2.Width || filter2.Height != filter2.Height)
return false;
for (int x = 0; x < filter1.Width; x++)
for (int y = 0; y < filter1.Height; y++)
if(filter1.GetPixel(x, y) != filter2.GetPixel(x, y))
return false;
return true;
Вопрос слишком широкий. Но допустим, ваша задача - проверять, скачивали вы уже эту картинку или нет.
В этом случае самый правильный подход - считать контрольную сумму файла и проверять, совпало или нет.
Видели наверное сайт virus total? Там такой же подход: каждый файл имеет уникальный "слепок" и можно быстро определить, про какой файл речь: тот же или другой.
Алгоритм используйте SHA-256
, а не MD5
: md5 хотя и быстрее, но больше шанс столкнуться с коллизией.
public static string GetHash(byte[] data)
{
var stringBuilderb = new StringBuilder();
using (var hash = SHA256.Create())
{
var result = hash.ComputeHash(data);
foreach (var b in result)
stringBuilderb.Append(b.ToString("x2"));
}
return stringBuilderb.ToString();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как создать кнопку Button, при нажатии на которую форма будет создавать новые экземпляры?
В своей программе, для упрощения кода, создал класс, куда запихнул все однотипные функцииТак вот, в этом классе есть свои объекты, у которых...