PDA

Просмотр полной версии : Загрузка данных битмапом


wvxvw
08.10.2006, 17:48
Возможно просто не выспался... но все-тки =)
Вот пришла в голову такая мысль, а что если организовать общение с серверным скриптом так, чтобы в ответ получать "картинку", а потом ее попиксельно разбирать и "читать".
Собственно, задача: быстро передать большой объем информации.
Почему мне кажется, что такой способ мог бы быть быстрее? - Всеж таки ХМЛ или текстовый файл в юникодной кодировке много весит, кроме того нужно в нем самом определенный процент отвести под описание структуры передаваемой информации (иногда довольно много). Что же мы получаем вместе с картинкой? - по сути двумерный массив...
Предположим, все та же карта местности, пример "расшифровки" картинки в карту:
- предопределено, что на описание одного квадрата карты тратиться картинка 10х10 пикселов.
- выбираем нужные пикселы и просматриваем. Первые 10 описывают тип местности и наличие интересующих нас объектов, предположим, первый пиксел - тип местности (а есть их у нас аж 6, т.е. от 0x000088 до 0x0000ff - асфальт, от 0x008800 до 0x008888 газоны... ну и так далее)
...
Вобщем, можно бы попробовать что-нибудь такое сделать, но хотелось бы сначала услышать ваши соображения по этому поводу. А стоит ли вообще этим заниматься, возможно есть какие-нибудь сложности, которые я не предвидел...

Dendroid
08.10.2006, 18:09
Тогда уж лучше не останавливаться на картинке (там тоже накладные расходы есть), да и getPixel() медленно работает, а сразу придумывать свой бинарный формат, плотно упакованный данными, хотя, по моему опыту, даже плотный свой формат может проиграть обычному xml, если на сервере включена zip-архивация отдаваемыйх файлов...

wvxvw
08.10.2006, 19:29
Хм... если есть опыт... а можно тогда спросить, ну хоть примерно, для сравнения скорости загрузки ХМЛя и бинарного файла?
* Возможно мне показалось (еще не проверял), что скорость работы getPixel() связана с размером картинки, т.е. чем больше картинка, тем медленнее будет выполнятся та же операция...
* Именно картинка - потому что удобно хранить, да и есть "родные" способы ее обработки (которые предположительно будут работать быстрее тех, что я смогу написать)...
* Есть еще одна задумка использовать такую штуку для передачи не то что бы совсем секретной информации, но по крайней мере так, чтобы просмотрев пакеты обычным сниффером ничего нельзя было бы понять...
то же подтверждение пароля (когда от юзера требуется ввести с клавы набор цифер, которые он видит на картинке).

aksios
08.10.2006, 19:40
* Есть еще одна задумка использовать такую штуку для передачи не то что бы совсем секретной информации, но по крайней мере так, чтобы просмотрев пакеты обычным сниффером ничего нельзя было бы понять...
то же подтверждение пароля (когда от юзера требуется ввести с клавы набор цифер, которые он видит на картинке).
Вот именно для этого это и нужно: типа на серваке лежат картинки (точнее их там генерит специальный скрипт) - их можно даже посмотреть - в кеше браузера, но чтобы получить из них текст нужен код. В общем, ты не первый кому пришла такая идея.:cool:

Dendroid
08.10.2006, 19:45
Ну, скорость никто не мерял, но пожатый зипом на сервере xml - тот же бинарынй файл, можно эксперементировать локально - написать свой формат (хоть в картинку), потом эти же данные сунуть в простой xml и пожать зипом - если архивированные xml-данные будут занимать меньше - над форматом стоит ещё поработать :)
А насчёт "родных способов обработки" - не вижу никаких выгод, т.к. способы малоприменимы именно к числовым данным, нет же фильтра, котрый, например, отсортирует все пиксели по величине красной составляющей... ;) Это вам не программируемые шейдеры. ;)