![]() |
Совместить две BitmapData
Я загружаю картинку с помощью bytearray, добавляю на сцену ее bitmapdata.
Подскажите, пожалуйста, как мне совместить (объединить) следующую загружаемую картинку с уже имеющейся (т.е. чтобы отображались обе)? Т.к. сейчас происходит наложение одной на другую. Наиболее приближенный вариант получился с помощью merge Код AS3:
|
bytearray не умеет загружать картинки [x]
|
Приведу код для ясности:
Код AS3:
|
Лучше загрузить картинку через метод load(), а
для совмещения картинок намного лучше подойдет метод copyPixels класса BtimapData с последним параметром mergeAlpha = true Ну или заюзать JPGDecoder, сконвертить байт массив в BitmapData и уже потом исползовать copyPixels() |
Попробовала copyPixels
Код:
var myBitmap : Bitmap = Bitmap( loader.content ); |
Зачем вообще конвертировать картинку в байт массив, чтобы потом опять конвертировать в картинку?
Цитата:
|
Я рисую на сцене линию, потом перевожу ее в bytearray. Отправляю полученный массив на сервер, с которого другие флешки получают информацию (посредством сокетов) и должны отобразить на своих экранах нарисованную мной линию. Следующая линия, которую я рисую, должна отображаться у других юзеров вместе с первой. Постоянно полностью отправлять получающийся рисунок считаю нецелесообразно с точки зрения нагрузки на сервер.
|
С точки зрения нагрузки на сервер тем более не рационально отправлять линию целиком. Можно отправлять:
- id кисти - размер кисти - id цвета - прозрачность цвета - начальную точку - конечную точку Если точек много, то чтобы не грузить сервер пакетами на каждый MouseMove можно отправлять сразу небольшой массив, если он весь нарисован одной кистью и одним цветом. Далее, на клиенте проще всего это все рисовать в векторе. а затем через каждые N пакетов отрисовывать это все в BitmapData |
Линия может быть совершенно произвольной формы ( формируется по DOWN/UP мыши ), а также с заливкой и т.п.
Поэтому как-то больше склонилась к передаче данных через массив. |
Ну заливка - это отдельное действие, так? - ну так его и надо передавать. Вообще, я бы сделал примерно такую систему сообщений на сервер:
- выбрана кисть - выбран цвет - начал рисовать в точке (x1, y1) - ... несколько точек по пути - закончил рисовать в точке (x2, y2) - выбрал заливку - нажал "залить" в таком-то месте При таком раскладе гораздо проще всем, ибо передается не само состояние, а только его изменение |
| Часовой пояс GMT +4, время: 05:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.