Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Изображение в ByteArray и обратно (http://www.flasher.ru/forum/showthread.php?t=175984)

Srednas 28.02.2012 15:32

Изображение в ByteArray и обратно
 
Здравствуйте:

Пытаюсь загнать изображение в ByteArray и, прочитать его из ByteArray.

Код AS3:

        private function bitmapToByteArray(bitmap:Bitmap):void{
                        var ba:ByteArray = new ByteArray();
                        ba.writeObject(bitmap);
                        byteArrayToBitmap(ba);
        }
        public function byteArrayToBitmap(byteArray:ByteArray):void{
                        byteArray.position = 0;
                        var b:Bitmap = byteArray.readObject() as Bitmap;
                        trace(b); // null
        }

Почему null?

in4core 28.02.2012 17:18

не readObject , а readUTFBytes помоему

Волгоградец 28.02.2012 17:18

Не умеет AMF сериализовать дисплей обжекты.

in4core 28.02.2012 17:22

Код AS3:

Не умеет AMF сериализовать дисплей обжекты.

Ты имеешь ввиду картинку в битмапу заганать нельзя или обратно? Обратно точно можно, давно как то делал, грузи байт код картинки и чики пики

Волгоградец 28.02.2012 17:24

Bitmap - это DisplayObject. AMF не может сериализовать/десериализовать DisplayObject. Соответственно не получится записать и прочитать Bitmap из ByteArray.

Srednas 28.02.2012 17:35

Цитата:

Сообщение от Волгоградец (Сообщение 1066041)
Bitmap - это DisplayObject. AMF не может сериализовать/десериализовать DisplayObject. Соответственно не получится записать и прочитать Bitmap из ByteArray.

При использовании BitmapData то же самое. Но она не является DisplayObject'ом.

Добавлено через 33 секунды
Цитата:

Сообщение от in4core (Сообщение 1066040)
Код AS3:

Не умеет AMF сериализовать дисплей обжекты.

Ты имеешь ввиду картинку в битмапу заганать нельзя или обратно? Обратно точно можно, давно как то делал, грузи байт код картинки и чики пики

Как вы делали «обратно»?

Волгоградец 28.02.2012 17:48

У BitmapData есть специальный метод для этого - getPixels/setPixels. Вобщем некоторые нативные типы нельзя записать в ByteArray. С этим нужно смириться.

GBee 28.02.2012 18:17

Bitmap - bitmapdata - encoder - bytearray
bytearray - loadr.loadFromBytes - Bitmap

gloomyBrain 28.02.2012 19:31

Говоря об AMF - он не умеет сериализовать то, что имплементит интерфейс IBitmapDrawable

etc 28.02.2012 21:58

Цитата:

Сообщение от gloomyBrain (Сообщение 1066069)
Говоря об AMF - он не умеет сериализовать то, что имплементит интерфейс IBitmapDrawable

Подозреваю всё же IExternalizable.


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

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