PDA

Просмотр полной версии : Преобразование GIF/BMP в массив



compdocs
04.10.2005, 10:06
Есть gif или bmp картинка, 2-х цветная, как мне ее можно преобразовать в двумерный массив, например, чтоб белый пиксель был '0', а черный - '1'?

berkut
04.10.2005, 12:18
imagecolorat()
getimagesize(), for ()

Absurd
04.10.2005, 12:19
Нерационально это. Надо их хранить в упакованном формате.
Делишь координату x на 8, целая часть - номер байта, остаток - номер бита. Единицу сдвигаешь влево на номер бит, берешь байт и делаешь and полученного числа и байта.
Если получишь неноль, тогда бит установлен, иначе сброшен. Но это делается на C а не на PHP.

compdocs
04.10.2005, 12:27
berkut, хм, неплохая функция, спасибо, думаю, проблема решена

Absurd, спасибо, какой-либо высокой производительности вообще не требуется...

berkut
04.10.2005, 13:35
Absurd, полный оффтоп :)
Сказано-же: Есть gif или bmp картинка...
>>> Но это делается на C
А зачем тогда это писать в форуме по пхп??? Кстати говоря, этот алгоритм можно реализовать на пхп, с той-же лёгкостью, что и на цэ

Absurd
04.10.2005, 13:42
Вопрос был вообще как BW-картинку преобразовать в массив. Я написал, что этого делать не стоит. Особенно на ПХП. Про имейджлибы речь не шла

drmist
04.10.2005, 17:52
compdocs
Я вижу 2 пути: либо работать напрямую с файлом - тогда читай про bmp(gif)-формат.
Либо использовать GD.
И то и другое сожрет кучу ресурсов.
Ты уверен, что это конечная цель?

UUU
05.10.2005, 09:53
Хм. ВМП уже в массиве. а черно-белый - тем более. Правда каждая точка - это бит в байте.