![]() |
Серверный скриншот SWF-файла
Вопрос, вроде, в этом разделе ещё не поднимался...
Задача волнует многих в сети, но более-менее приемлемого решения пока не нашёл. А заключается она в том, что нужно на сервере получить высококачественный JPEG (quality 80) на стороне сервера, снятый с какого-либо обьекта во Flash'e на стороне клиента. Обьект, который нужно заснять, представляет собой контейнер с обьектами, которые может разбрасывать пользователь. Самое распространённое решение: [BitmapData -> JPEGEncoder -> ByteArray -> пересылка на сервер с помощью, к примеру, AMF] В принципе неплохо, но есть два больших недостатка - сильно загружается процессор и канал при сохранении картинок большого размера (близкого к 3000х3000). В принципе, можно передавать на сервер XML с положениями всех обьектов, которые разбросал по сцене пользователь, но тогда на серверной стороне нужно восстановить сцену, подождать, пока загрузятся всеобьекты и каким-то образом снять скриншот с неё. В сети существуют различные решения для этого, но почти все они по сути используют ActiveX-компонент, который, как я понимаю, доступен только под Windows. Известно ли какое-либо решение для Linux-платформ? Узнавал в сторону AIR, но он не поддерживаем Linux... |
а как, пардон, происходит "восстановление сцены" в общих чертах?:confused:
|
К примеру, на клиентской стороне пользователь кладёт на сцену обьекты, которые представляют собой загружаемые извне SWF-файлы. На сервер передаются данные о координатах этих обьектов на сцене. На серверной стороне существует другая флешка, которая принимает эти данные и размещает аналогичные обьекты в тех же координатах.
|
Я хочу заметить. что ни флэш, ни мониторы разрешения 3000*3000 не тянут. И вы как считаете - если на сервере из восстановленной сцены делать скриншот, то процессор загружаться небудет? Я сильно сомниваюсь.
|
2 †‡Paladin‡†:
> ни флэш, ни мониторы разрешения 3000*3000 не тянут Я передаю на сервер JPG-файл, снятый с DisplayObject'а размером около 2400х1700 пикселей. Разрешение монитора значения не имеет. Флеш данными такого обьёма оперировать может. > И вы как считаете - если на сервере из восстановленной сцены делать скриншот, то процессор загружаться небудет? Будет, но если это делать не средствами Флеша, то результат может выйти не таким плачевным, как вам кажется. |
а 3000 на 3000 уже неможет. в любом случае вам надо будет запускать swf на сервере и снимать скриншоты, при том, что можно легко это забодяжить на c++, загруженный swf будет занимать память и отнимать ресурсы сам по себе. Лично мне непонятно почему нельзя повесить этот геморрой на машину клиента. кроме нескольких секунд работы проца и исходящего трафика он ниче не теряет. Танцы с бубном излишни.
|
Цитата:
|
Цитата:
|
2 †‡Paladin‡†:
Время покажет. ^_^ На ваше чутьё я бы не полагался... У наших клиентов комьютеры не настолько слабые, а вот у клиентов наших клиентов - Бог знает. Я сегодня попробую устроить бенчмарк на разных компьютерах. Может потом выложу результаты... |
>>Узнавал в сторону AIR, но он не поддерживаем Linux...
т.е. для вас не принципиально в браузере флэш или в оболочке? |
| Часовой пояс GMT +4, время: 02:50. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.