После импорта PNG с прозрачным фоном он отображается с белым фоном - PullRequest
1 голос
/ 29 декабря 2010

Поскольку в заголовке уже указано, у меня (большая) проблема с импортом PNG в приложении Flex 4.

Создан файл PNG в Photoshop с прозрачным фоном. Загружается в приложении Flex с использованием этого кода:

thumbnailRef.load(); 

thumbnailRef определяется тегом следующим образом:

    <net:FileReference id="thumbnailRef"
    select="onBrowseThumbnailRef_select(event);"                           
complete="onBrowseThumbnailRef_complete(event);" />

Таким образом, когда происходит полное событие, данные были загружены, и можно назначить данные, загруженные компоненту изображения с именем Thumbnail:

 private function onBrowseThumbnailRef_complete(evt:Event):void {
                    Thumbnail.source = thumbnailRef.data;
                 }  

Unitls, теперь все работает как положено! Но когда я пытаюсь отправить данные компонента Thumbnail в службу WCF, я получаю фотографию с белым фоном:

var thumbBitmapData :BitmapData = 
    ImageSnapshot.captureBitmapData(Thumbnail.content);
    //this is send to the WCF service               
    ThumbnailByteArray = new PNGEncoder().encode(thumbBitmapData ); 

Я что-то не так делаю?

Ответы [ 2 ]

0 голосов
/ 29 декабря 2010

@ Джейсон: Если честно, я поиграл с thumbnailRef.data. Чтобы контролировать происходящее, я преобразовал приложение Flex в приложение AIR (для настольных ПК) и добавил следующее:

Thumbnail.source = thumbnailRef.data;
//reset read pointer
thumbnailRef.data.position  = 0;
var fl:File = File.desktopDirectory.resolvePath("test.png");
var fs:FileStream=new FileStream();
fs.open(fl,FileMode.WRITE);
fs.writeBytes(thumbnailRef.data);
fs.close();

Открытие файла test.png на рабочем столе СНОВА показывает белый фон! Как я понимаю, я сделал следующее: взял загруженные исходные данные (которые находятся в thumbnailRef.data) и снова сохранил эти данные в файловой системе.

Если интерпретировать это правильно, это означает, что «ошибка» возникает при загрузке данных, но я понятия не имею, как перехватить загрузку или контролировать ее самостоятельно (или я должен загрузить данные сам ... если да как?).

Странные вещи ....

0 голосов
/ 29 декабря 2010

Когда вы используете captureBitmapData, он будет захватывать компонент, а не только растровое изображение.Я думаю, у вас есть белый фон для компонента миниатюр.Если вы хотите загрузить изображение, вы можете попробовать загрузить ссылку на файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...