Как проверить что картинка полностью черная?

Ragger

Постоялец
Регистрация
14 Июн 2008
Сообщения
166
Реакции
186
Желательно с помощью GD2.
 
можно каждый пиксель сравнить с черным цветом :) на GD2 это можно сделать :)
 
Это слишком долго. Миллион пикселей проверять для 1000x1000 картинки не вариант.
 
например для jpg картинок размер (сколько занимает места на диске) картинок любого цвета не различаются и не зависят от сжатия, тогда можно создать чёрную картинку заданной ширины и высоты, и сверить размер обоих картинок, если одинаковый значит цвет один, дальше проверит один пиксель и узнать какой цвет.
 
Можно создать картинку полностью черную того же размера. Сделать md5_flle() для созданной и сверяемой картинки. Если хеши сойдутся, то черная картика. Только предварительно нужно всякие информационные данные из картинки удалить.
 
Ragger по пиксельная проверка это будет самый точный вариант, иначе не как. И на врятли это будет на столько долго как ты думаешь.

Есть другой способ, но он менее точный. Делай ресайз кртинки пусть будет 10x10 (да хоть 1x1), качество ресайза 100% и уже потом прогоняй картинку попиксельно будет быстрее но менее точно. Также советую заранее предопределить порог разрешонного черного цвета, потому что при ресайзе разное может произойти. По идеи при ресайзе в 1 пиксель чисто черного изображения без ужимания качества ты должен получить чисто черный пиксель, но это не факт, может получиться что на какойто картинке черный цвет преобладал и в итоге при ресайзе у тебя будет 1 черный пиксел.
 
  • Заблокирован
  • #7
Не совсем то что надо, но думаю немного в ту сторону. По-крайней мере должно помочу гуру сделать необходимое. Топикастер, удали плз если я чушь всболтнул.
Для просмотра ссылки Войди или Зарегистрируйся
 
Данное решение будет работать медленнее чем попиксельное сравнение, поскольку там происходит всё тоже попиксельное сравнение плюс еще кучка дополнительных математических операций.
 
Я вырезал лишнее, теперь перебор c шагом в 25 пикселей очень быстро проходит.
К тому же можно фильтровать не только черные картинки, а например из двух-трех цветов.
 
Назад
Сверху