Большая посещаемость, уникальность картинок

12
humbert
На сайте с 16.03.2006
Offline
540
1045

Например, доска объявлений, куда грузят картинки. Объявления повторяются, фото тоже.

Можно создать БД хешей картинок и одинаковые картинки в объявлении не загружать.

Экономим место на диске.

Вопрос - как средствами php быстро проверить уникальность картинки?

Парсинг прайс-листов, наполнение интернет-магазина товаром. (https://humbert.ru) Любая CMS (Битрикс, OpenCart, Prestashop и даже Woo Commerce )
jslby
На сайте с 21.03.2014
Offline
49
#1

Можно попробовать случайную выборку пикселей на изображении и записывать цвет в базу.

Mad_Man
На сайте с 10.11.2008
Offline
162
#2
humbert:
Вопрос - как средствами php быстро проверить уникальность картинки?

Всё тем же хешем и сравнением md5_file()/sha1_file() от файла с хэшем изображения в базе.

humbert
На сайте с 16.03.2006
Offline
540
#3

md5, пусть с малой, но вероятностью, может совпадать у разных картинок. Или не так?

Mad_Man
На сайте с 10.11.2008
Offline
162
#4
humbert:
md5, пусть с малой, но вероятностью, может совпадать у разных картинок. Или не так?

Коллизии бывают, но редко. Можете брать два хэша (md5 и sha1) и сравнивать сразу по двум.

SM
На сайте с 28.11.2014
Offline
0
#5

Каким образом у Вас совпадут md5()?

Если совпал с картинкой, то эта таже картинка и не стоит её дублировать, и отправляем её в temp на всякий пожарный, на сутки например, мало ли.

Вот и все.

Mad_Man
На сайте с 10.11.2008
Offline
162
#6
StM7:
Каким образом у Вас совпадут md5()?

Аффтар, погугли про коллизии. Прошарься, штоле.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#7

StM7, Вы хоть раз видели МД5 хеш в глаза? Или думаете что из 32 байт можно сделать бесконечное число комбинаций?

Подпись))
bbon
На сайте с 01.04.2006
Offline
168
#8
Милованов Ю.С:
StM7, Вы хоть раз видели МД5 хеш в глаза? Или думаете что из 32 байт можно сделать бесконечное число комбинаций?

Я! Я видел хеш MD5!!

Коллизии, теоретически бывают, но практически, даже если ТС будет их загружать на сайт ежесекундным потоком всю свою жизнь, он на них не нарвётся, и дети его не нарвутся, и внуки.

Кстати, как-то слушал доклад яндексоида - одного из авторов Я.диска: они на всяких случай подстраховались и для каждого файла хранят два хеша md5 (с солью и без). Ну так за все время существования диска с его многими петабайтами информации, ни одной коллизии на единичном хеше не наблюдали 🙄

astraliens
На сайте с 25.09.2009
Offline
54
#9

если льют много идентичных бинарно картинок - то md5 или sha решит вашу задачу, если вам нужен поиск сходства по визуальным критериям, то обратите внимание на phash... все зависит от специфики того, что заливают и насколько критичны погрешности (залили фотку с вотермарками или ресайзили её)

пару лет у нас на одном из проектов работает проверка на уникальность по md5 , специфика там позволяет именно таким способом решать задачу - работает и работает, никто не жалуется и все довольны.. в другом проекте сейчас начинаем работу по поиску визуальных сходств, там все намного интереснее и веселее...

ASTRALiENS - разработка сайтов (http://astraliens.net)
TF-Studio
На сайте с 17.08.2010
Offline
334
#10

Яндекс на своем диске не обнаружил коллизии.

На яке рассказывали.

так что это погрешность, на которую можно забить.

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий