![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2008
Сообщений: 82
|
Всем доброго дня! В своем проекте мне необходимо преобразовывать отображаемые объекты в JPEG картинки. Для преобразования в JPEG я использую следующий класс для асинхронного JPEG кодирования:
http://tech.pro/tutorial/722/flex-tu...s-jpeg-encoder Но есть проблема, которую я не знаю как решить. Необходимо, чтобы пользователь смог отменить процесс кодирования нажатием на кнопку. Как процесс кодирования можно отменить? Может стоит использовать какую то другую библиотеку? Но нужно чтобы процесс кодирования был асинхронным, т.к. не хочется чтобы пользовательский интерфейс блокировался. Заранее благодарен за советы ![]() |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 82
|
У меня картинка очень большая. Порядка 3000x3000px
Потом эта картинка сохраняется в PDF. И вот процесс кодирования в JPEG идет порядка 30-35 секунд. |
|
|||||
|
Используйте воркеры для кодирования картинки без замораживания интерфейса:
http://help.adobe.com/ru_RU/FlashPla...em/Worker.html
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 82
|
Так вопрос то не в этом. Проблему заморозки интерфейса я решил с помощь того класса..
Я хочу узнать, возможно ли отменить процесс кодирования? Или с помощью этих воркеров это можно сделать? Опять же, они доступны начиная с версии 11.4. Но это буду решать потом, т.к. пока не указывалась версия плеера для данного проекта. |
|
|||||
|
Регистрация: Sep 2003
Сообщений: 28
|
Что значит "отменить"? Если кодируете из bitmapdata, то запоминайте эту bitmapdata и восстанавливайте, когда необходимо.
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 82
|
Отменить это значит "убить" процесс кодирования, по аналогии, как, когда отменяем скачивание файла. Т.е. скачивание прерывается и все. Мне не надо запоминать состояние bitmapdata, мне нужно просто отменить процесс кодирования.
Не знаю, понятно ли я объясняю... Добавлено через 1 минуту Вот кусок кода, где я кодирую изображение: templateRectangle = new Rectangle( 0, 0, templateWidth, templateHeight); templatePDFBitmapData = new BitmapData(templateWidth, templateHeight, true); templateGraphMatrix.translate(( templateWidth / 2 ), 0); templatePDFBitmapData.draw(target, templateGraphMatrix, null, null, templateRectangle); var encoder:JPEGAsyncEncoder = new JPEGAsyncEncoder(80); encoder.PixelsPerIteration = 128; encoder.addEventListener(JPEGAsyncCompleteEvent.JPEGASYNC_COMPLETE, encodeDone); encoder.addEventListener(ProgressEvent.PROGRESS, encodeProg); encoder.encode(templatePDFBitmapData); |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 82
|
Вот к сожалению, я его там не обнаружил. Есть какой то метод FinishEncode, но вроде не он.
Если, интересно, то вот сами классы этой библиотеки: https://dl.dropboxusercontent.com/u/19322412/pfp.zip |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|