Как отобразить закодированное изображение Base64 в приложении Adobe AIR с использованием Javascript / HTML - PullRequest
1 голос
/ 28 августа 2009

У меня возникли проблемы при отображении закодированного изображения Base64 в приложении AIR. Я извлекаю изображение, которое представляет собой строку в кодировке Base64, в XML через веб-сервис. На стороне приложения я могу декодировать его, но не смог отобразить изображение на лету. Небольшой поиск в Google дал мне различные результаты, но не относящиеся к моей проблеме, потому что большинство из них связано с Flex. Мои запросы: 1) После декодирования строки 'Base64' нужно ли преобразовывать ее в изображение PNG с помощью какого-либо кодера PNG? если так, то как я могу использовать PNGEncoder в своем приложении Adobe AIR HTML / Javascript. есть ли API или так? 2) Поскольку изображение, которое я получаю с веб-сервера, является значком, я устанавливаю его в качестве значения 'src' для элемента, который создаю динамически, следующим образом:

            var category_header_img = new Element('img', 
        {
            'id': 'category_header_img' + this.SelectedCategoryID,
            'class': 'category_header_img',
            'src': 'data:image/png;base64,'+categoryIconBytes,
            'cat_id': this.SelectedCategoryID

        });

Я нашел это решение, 'src': 'data:image/png;base64,'+categoryIconBytes где-то, который пытался использовать, но это не сработало. (где categoryIconBytes - это закодированная строка 'Base64')

Пожалуйста, помогите решить эту проблему. Я буду очень благодарен за любые ваши предложения. Спасибо.

1 Ответ

3 голосов
/ 29 августа 2009

Схема URL данных не поддерживается в AIR. Каким было изображение до того, как оно было закодировано в base64? Если это уже PNG, то все, что вам нужно сделать, - это изменить кодировку base 64 и сохранить ее локально во временный файл. После этого вы сможете загрузить его с тегом изображения.

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