@savage_me

Как получить цвет всех пикселей картинки без перебора пикселей в двух циклах?

Можно получить цвет пикселей по их координатам, перебрав все по горизонтали и вертикали, с помощью
imagecolorat($thumb, $x, $y)

Можно ли получить цвета всех пикселей без перебора в двух циклах?
  • Вопрос задан
  • 413 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Если картинка в несжатом формате, например, BMP, наверное, можно прямо с диска читать массив пикселей, разобравшись с форматом файла.

Для сжатых форматов понадобится сначала распаковать изображение. Например, для PNG и библиотеки GD функцией imagecreatefrompng()
GD не документирует прямой доступ к области памяти, где хранятся пиксельные данные полученного ресурса imageresource. Поэтому с ней единственный вариант перебирать в цикле.

Посмотрите, что умеет ImageMagick. Например getImageColors()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
В PHP нет аналога функций взять все пиксели из области изображения как 32битное целое.
Во первых это прожорливо по памяти. во вторых тяжелые вычисления принято делать в фоне.
Ну а в третьих для фоновых задач проще баш скриптами выстроить обработку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы