![]() |
Отмена процесса кодирования JPEG
Всем доброго дня! В своем проекте мне необходимо преобразовывать отображаемые объекты в JPEG картинки. Для преобразования в JPEG я использую следующий класс для асинхронного JPEG кодирования:
http://tech.pro/tutorial/722/flex-tu...s-jpeg-encoder Но есть проблема, которую я не знаю как решить. Необходимо, чтобы пользователь смог отменить процесс кодирования нажатием на кнопку. Как процесс кодирования можно отменить? Может стоит использовать какую то другую библиотеку? Но нужно чтобы процесс кодирования был асинхронным, т.к. не хочется чтобы пользовательский интерфейс блокировался. Заранее благодарен за советы :) |
Кодирование же должно происходить почти мгновенно, для одной картинки?
|
У меня картинка очень большая. Порядка 3000x3000px
Потом эта картинка сохраняется в PDF. И вот процесс кодирования в JPEG идет порядка 30-35 секунд. |
Используйте воркеры для кодирования картинки без замораживания интерфейса:
http://help.adobe.com/ru_RU/FlashPla...em/Worker.html |
Так вопрос то не в этом. Проблему заморозки интерфейса я решил с помощь того класса..
Я хочу узнать, возможно ли отменить процесс кодирования? Или с помощью этих воркеров это можно сделать? Опять же, они доступны начиная с версии 11.4. Но это буду решать потом, т.к. пока не указывалась версия плеера для данного проекта. |
Что значит "отменить"? Если кодируете из bitmapdata, то запоминайте эту bitmapdata и восстанавливайте, когда необходимо.
|
Отменить это значит "убить" процесс кодирования, по аналогии, как, когда отменяем скачивание файла. Т.е. скачивание прерывается и все. Мне не надо запоминать состояние bitmapdata, мне нужно просто отменить процесс кодирования.
Не знаю, понятно ли я объясняю... Добавлено через 1 минуту Вот кусок кода, где я кодирую изображение: Код AS3:
|
А у JPEGAsyncEncoder`а нет метода для прерывания?
Опс, там же "private function" :( |
Цитата:
Если, интересно, то вот сами классы этой библиотеки: https://dl.dropboxusercontent.com/u/19322412/pfp.zip |
Попробуйте запустить своё кодирование через воркер, для прерывания просто убивайте его: terminate()
|
| Часовой пояс GMT +4, время: 07:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.