Преобразование GIF/BMP в массив

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
compdocs
Сообщения: 6
Зарегистрирован: 03 фев 2005, 00:26
Контактная информация:

04 окт 2005, 10:06

Есть gif или bmp картинка, 2-х цветная, как мне ее можно преобразовать в двумерный массив, например, чтоб белый пиксель был '0', а черный - '1'?
berkut
Сообщения: 81
Зарегистрирован: 26 авг 2004, 19:07

04 окт 2005, 12:18

imagecolorat()
getimagesize(), for ()
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

04 окт 2005, 12:19

Нерационально это. Надо их хранить в упакованном формате.
Делишь координату x на 8, целая часть - номер байта, остаток - номер бита. Единицу сдвигаешь влево на номер бит, берешь байт и делаешь and полученного числа и байта.
Если получишь неноль, тогда бит установлен, иначе сброшен. Но это делается на C а не на PHP.
2B OR NOT(2B) = FF
compdocs
Сообщения: 6
Зарегистрирован: 03 фев 2005, 00:26
Контактная информация:

04 окт 2005, 12:27

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

Absurd, спасибо, какой-либо высокой производительности вообще не требуется...
berkut
Сообщения: 81
Зарегистрирован: 26 авг 2004, 19:07

04 окт 2005, 13:35

Absurd, полный оффтоп :)
Сказано-же: Есть gif или bmp картинка...
>>> Но это делается на C
А зачем тогда это писать в форуме по пхп??? Кстати говоря, этот алгоритм можно реализовать на пхп, с той-же лёгкостью, что и на цэ
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

04 окт 2005, 13:42

Вопрос был вообще как BW-картинку преобразовать в массив. Я написал, что этого делать не стоит. Особенно на ПХП. Про имейджлибы речь не шла
2B OR NOT(2B) = FF
drmist
Сообщения: 32
Зарегистрирован: 03 авг 2004, 22:34

04 окт 2005, 17:52

compdocs
Я вижу 2 пути: либо работать напрямую с файлом - тогда читай про bmp(gif)-формат.
Либо использовать GD.
И то и другое сожрет кучу ресурсов.
Ты уверен, что это конечная цель?
UUU
Сообщения: 309
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

05 окт 2005, 09:53

Хм. ВМП уже в массиве. а черно-белый - тем более. Правда каждая точка - это бит в байте.
Ответить