Хеши бывают разные...
При предоставлении картинки через интернет - хеш может измениться.
В идеале - взять картинку, добавить её в архив.
Рядом с картинкой положить текстовый файл, содержащий хеш, который Вы хотите получить.
Добавить этот архив сюда.
И тогда, уже имея входящие и исходящие данные - можно попытаться Вам помочь.
И что именно за хеш получится в результате?Нет, мне просто надо понять как сделать что то вроде этого: https://www.cyberforum.ru/csharp-beginners/thread1925562.html на Зенке
И что именно за хеш получится в результате?
На сколько я вижу, вроде не MD5.
Откуда мы/Вы узнаете/узнаем что хеш сгенерирован правильно (как перепроверить правильность результата)?
Вариант получения хеша, на который Вы ссылаетесь не оптимальный и медленный (из-за точечного считывания каждого пикселя, это будет хорошо заметно на больших изображениях).
Вот, в ТоталКомандер считаются хеши - вариантов много - из-за чего я и переспросил какой именно хеш хотите получить в результате.
Код, на который Вы ссылаетесь изменён для работы в Зенно:Я понимаю что на больших изображениях будут сложности, но у меня будут примерно 3 на 3 пикселя, мне нужно просто понять как с помощью C# превратить изображение в некий код (без разницы какой, главное чтобы результат был стабилен)
string imgPath = @"c:/printscreen.jpg";
string base64_hash = string.Empty;
using(Bitmap newImg = new System.Drawing.Bitmap(imgPath)){ // считали картинку по пути в оперативку
List<byte> bytes = new List<byte>();
for (int i = 0; i < newImg.Width; i++) {
for (int j = 0; j < newImg.Height; j++) {
System.Drawing.Color pixel = newImg.GetPixel(i, j); // получили цвет пикселя
bytes.Add((byte)((pixel.R + pixel.G + pixel.B) / 3)); // нашли среднее значение
}
}
var avarage = bytes.Average(b => b);
System.Collections.BitArray bits = new System.Collections.BitArray(bytes.Select(b => b > avarage).ToArray());
byte[] result = new byte[(int)Math.Round((double)bits.Count / 8)];
bits.CopyTo(result, 0);
base64_hash = Convert.ToBase64String(result); // массив переводим в base64 строку - переменные в Зенно - строковые
// return result; // возврат массива байт
}
return base64_hash;
string path = @"c:/printscreen.jpg";
string md5 = string.Empty;
using(Bitmap bm = new System.Drawing.Bitmap(path)){ // считали картинку по пути в оперативку
byte[] data;
using (var ms = new MemoryStream()) {
bm.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
data = ms.ToArray();
}
using (var sec = new System.Security.Cryptography.MD5CryptoServiceProvider()) {
md5 = BitConverter.ToString(sec.ComputeHash(data));
}
}
return md5;
Я не предоставляю платные услуги уже где-то год.Спасибо огромное!! (Пытался ваш кворк купить - но не не продаётся уже)
Я не предоставляю платные услуги уже где-то год.
Помогал решить проблему бесплатно (подпись в профиле осталась с тех времён когда на сигареты денег не хватало).