Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Серверный скриншот SWF-файла (http://www.flasher.ru/forum/showthread.php?t=107801)

Хемуль 09.02.2008 15:35

Серверный скриншот SWF-файла
 
Вопрос, вроде, в этом разделе ещё не поднимался...
Задача волнует многих в сети, но более-менее приемлемого решения пока не нашёл. А заключается она в том, что нужно на сервере получить высококачественный JPEG (quality 80) на стороне сервера, снятый с какого-либо обьекта во Flash'e на стороне клиента. Обьект, который нужно заснять, представляет собой контейнер с обьектами, которые может разбрасывать пользователь. Самое распространённое решение:
[BitmapData -> JPEGEncoder -> ByteArray -> пересылка на сервер с помощью, к примеру, AMF]
В принципе неплохо, но есть два больших недостатка - сильно загружается процессор и канал при сохранении картинок большого размера (близкого к 3000х3000). В принципе, можно передавать на сервер XML с положениями всех обьектов, которые разбросал по сцене пользователь, но тогда на серверной стороне нужно восстановить сцену, подождать, пока загрузятся всеобьекты и каким-то образом снять скриншот с неё. В сети существуют различные решения для этого, но почти все они по сути используют ActiveX-компонент, который, как я понимаю, доступен только под Windows. Известно ли какое-либо решение для Linux-платформ? Узнавал в сторону AIR, но он не поддерживаем Linux...

fljot 09.02.2008 16:03

а как, пардон, происходит "восстановление сцены" в общих чертах?:confused:

Хемуль 09.02.2008 19:33

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

†‡Paladin‡† 09.02.2008 19:38

Я хочу заметить. что ни флэш, ни мониторы разрешения 3000*3000 не тянут. И вы как считаете - если на сервере из восстановленной сцены делать скриншот, то процессор загружаться небудет? Я сильно сомниваюсь.

Хемуль 09.02.2008 20:00

2 †‡Paladin‡†:

> ни флэш, ни мониторы разрешения 3000*3000 не тянут

Я передаю на сервер JPG-файл, снятый с DisplayObject'а размером около 2400х1700 пикселей. Разрешение монитора значения не имеет. Флеш данными такого обьёма оперировать может.

> И вы как считаете - если на сервере из восстановленной сцены делать скриншот, то процессор загружаться небудет?

Будет, но если это делать не средствами Флеша, то результат может выйти не таким плачевным, как вам кажется.

†‡Paladin‡† 09.02.2008 20:25

а 3000 на 3000 уже неможет. в любом случае вам надо будет запускать swf на сервере и снимать скриншоты, при том, что можно легко это забодяжить на c++, загруженный swf будет занимать память и отнимать ресурсы сам по себе. Лично мне непонятно почему нельзя повесить этот геморрой на машину клиента. кроме нескольких секунд работы проца и исходящего трафика он ниче не теряет. Танцы с бубном излишни.

Хемуль 10.02.2008 03:53

Цитата:

Сообщение от †‡Paladin‡†
кроме нескольких секунд работы проца и исходящего трафика он ниче не теряет

Правда? А несколько десятков секунд не хотите? А если таких картинки 3? Решение на стороне клиента для таких обьёмов данных не подходит.

†‡Paladin‡† 10.02.2008 04:21

Цитата:

Сообщение от Хемуль
Правда? А несколько десятков секунд не хотите? А если таких картинки 3? Решение на стороне клиента для таких обьёмов данных не подходит.

Ну если у ваших клиентов таз марки целерон 533, то конечно будет долго. А если картинки 3, так вообще можно веревку с мылом при входе выдавать. На самом деле это все попахивает задротством и я чую тут изначально неправильный подход к решению задачи. А так можно и клиентам машины положить и себе на сервере ддос устроить. Выбор не велик.

Хемуль 11.02.2008 02:54

2 †‡Paladin‡†:
Время покажет. ^_^
На ваше чутьё я бы не полагался... У наших клиентов комьютеры не настолько слабые, а вот у клиентов наших клиентов - Бог знает. Я сегодня попробую устроить бенчмарк на разных компьютерах. Может потом выложу результаты...

alexcon314 11.02.2008 09:11

>>Узнавал в сторону AIR, но он не поддерживаем Linux...
т.е. для вас не принципиально в браузере флэш или в оболочке?


Часовой пояс GMT +4, время: 00:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.