Страница 1 из 1
Преобразование GIF/BMP в массив
Добавлено: 04 окт 2005, 10:06
compdocs
Есть gif или bmp картинка, 2-х цветная, как мне ее можно преобразовать в двумерный массив, например, чтоб белый пиксель был '0', а черный - '1'?
Добавлено: 04 окт 2005, 12:18
berkut
imagecolorat()
getimagesize(), for ()
Добавлено: 04 окт 2005, 12:19
Absurd
Нерационально это. Надо их хранить в упакованном формате.
Делишь координату x на 8, целая часть - номер байта, остаток - номер бита. Единицу сдвигаешь влево на номер бит, берешь байт и делаешь and полученного числа и байта.
Если получишь неноль, тогда бит установлен, иначе сброшен. Но это делается на C а не на PHP.
Добавлено: 04 окт 2005, 12:27
compdocs
berkut, хм, неплохая функция, спасибо, думаю, проблема решена
Absurd, спасибо, какой-либо высокой производительности вообще не требуется...
Добавлено: 04 окт 2005, 13:35
berkut
Absurd, полный оффтоп

Сказано-же:
Есть gif или bmp картинка...
>>> Но это делается на C
А зачем тогда это писать в форуме по пхп??? Кстати говоря, этот алгоритм можно реализовать на пхп, с той-же лёгкостью, что и на цэ
Добавлено: 04 окт 2005, 13:42
Absurd
Вопрос был вообще как BW-картинку преобразовать в массив. Я написал, что этого делать не стоит. Особенно на ПХП. Про имейджлибы речь не шла
Добавлено: 04 окт 2005, 17:52
drmist
compdocs
Я вижу 2 пути: либо работать напрямую с файлом - тогда читай про bmp(gif)-формат.
Либо использовать GD.
И то и другое сожрет кучу ресурсов.
Ты уверен, что это конечная цель?
Добавлено: 05 окт 2005, 09:53
UUU
Хм. ВМП уже в массиве. а черно-белый - тем более. Правда каждая точка - это бит в байте.