PDA

Просмотр полной версии : Скрин (битмапдата) послать на сервер наиболее оптимальным образом


JaLav
15.03.2009, 16:01
Здравствуйте
Нужно принтскрин всей флешки послать на сервер
Флешка на весь экран
Делаю битмапдатой снимок, получаю массив цветов пикселей.
Но так много слать получается.
Как послать скрин на сервер наиболее оптимальным образом?
Можно сделать с него png?
Другим способом уменьшить размер отсылаемых данных?

Stargazer
15.03.2009, 16:42
Если речь идёт именно об as2 - то нужно использовать сжатие данных, написанное вручную. Лучше, правда, "написанное вручную" не вами лично, а кем-то ещё. Ссылки на неплохие варианты я видел где-то здесь на сайте. Используйте поиск.

А вообще-то, в этой ситуации я бы предложил переходить на as3. Но тут я вам точно не посоветую, потому что as3 только "читаю". Сложных вещей на нём не делал. Если не ошибаюсь - в as3 есть возможность отправлять данные в двоичной форме, а также использовать сжатие или даже конвертировать изображения в сжатый формат.

qazwsx
16.03.2009, 07:35
http://www.quasimondo.com/archives/000645.php

JaLav
17.03.2009, 17:54
Спасибо.
http://www.quasimondo.com/archives/000645.php
похдодит для случая, если надо слать немного данных (на сервер шлется массив пикселей, закодированный в бейс64, преобразование в пнг делается на сервере)
В моем случае скрин д.б. большой
По этому пришлось использовать as3 (преобразование в пнг делается во флеше)
http://ink.envisionext.com/swf2png/index.php

qazwsx
17.03.2009, 21:34
На AS3 никаких проблем естественно нет...

morgenshtern
12.04.2009, 01:50
В продолжение темы...
Кто-нибудь пробовал использовать LZW?

Итак, тестю с картинкой 200х150, частично белая, белые пиксели не шлем.
Серв - локальный на апаче, декомпрессор на пхп.
Копрессия на флеше происходит довольно быстро. Видимо, не дольше, чем сбор всех пикселей из битмапдаты)
Но пхп... Мой коре2дуо 6750 на полминуты задумывается при 50% загрузке проца. Но картинку таки выдает... Такие нагрузки явно не для серверных решений )
А самое интересное, что разница в размерах отсылаемых флешей пост-запросов примерно 15-20% (примерно 200к символов без lzw).
Т.е., пока серв тормозит над распаковкой - уже бы 5 раз передали картинку туда сюда без нагрузки серва.
Сжатие LZW себя не оправдало абсолютно...
Вывод - пока ковырялся с ас2 и распоковщиком lzw, уже переписал бы флешку на ас3 ))
Кто-нибудь получал другие результаты со сжатием?

ambuddy
23.05.2009, 15:52
По этому пришлось использовать as3 (преобразование в пнг делается во флеше)
http://ink.envisionext.com/swf2png/index.php
Помогите пожалуйста. Я в AS3 не силен. Там в исходнике есть такая строчка:
var png_image_data:ByteArray = PNGEncoder.encode(data_bmp); Но при этом я так и не нашел, где импортируется класс "PNGEncoder". Я может ошибаюсь, но вроде чтобы использовать класс, нужно его импортировать предварительно, разве нет??? Или может он где-то не в коде импортируется, а в среде разработки? Или если он в той же папке, что и флэшка, то импортировать его вообще не нужно, чтобы использовать по имени. Пробовал переименовать файл с классом в, например "PNGEncoder1.as", естественно вылезла ошибка RefferenceError.

etc
23.05.2009, 15:54
ambuddy, вы внимательно читали статью по ссылке или нет?

iNils
23.05.2009, 15:55
ambuddy, это раздел по AS 1/2, а не по AS3

ambuddy
23.05.2009, 18:21
ambuddy, это раздел по AS 1/2, а не по AS3
Да понятно, что AS3. Просто если уж ссылка на исходник затронута в этой теме, решил новую тему в разделе AS3 не создавать(вы вроде бы не любите, когда темы плодят).

etc, статью читал. Иначе, как бы я там нашел эту строчку...

Короче как всегда одни нравоучения и ни одного ответа по собственно вопросу. Ну что за форум такой! :(

etc
23.05.2009, 18:23
ambuddy, если читали, то прям там ссылка на класс, его исходный код. Разместить его в папке с проектом особой сложности представлять не должно.

iNils
23.05.2009, 18:38
Просто если уж ссылка на исходник затронута в этой теме, решил новую тему в разделе AS3 не создавать(вы вроде бы не любите, когда темы плодят).1. Языки разные.
2. Плодить темы, это создание двух одинаковым тем одним автором.
Закрыто.