Discussion Board

Results 1 to 5 of 5
  1. #1
    Registered User HellStranger's Avatar
    Join Date
    Oct 2011
    Posts
    93
    Доброго времени суток всем!

    В моём проекте довольно много графических ресурсов большого разрешения, размеры картинок до 480X7000 пикселей. При загрузке таких картинок в QML Image устройство жутко подтормаживает и отображает картинки в очень плохом качестве. Кто-нибудь сталкивался с аналогичными проблемами? Каковы пути решения, кроме банального резания картинок на части и загрузки поочерёдно? Может, возможно, как-то оптимизировать загрузку и отрисовку средствами OpenGl?
    В общем буду признателен за любые дельные предложения.

  2. #2
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Избавиться от подтормаживаний может помочь асинхронная загрузка изображений в QML Image. Включить такой режим загрузки можно добавив компоненту параметр asynchronous: true.

    Так же можно уменьшить потребление памяти и ускорить загрузку больших изображений при помощи параметра sourceSize компонента. В том случае когда реальные размеры изображения будут превышать размеры, заданные в sourceSize, изображение будет масштабироваться до sourceSize.

  3. #3
    Registered User HellStranger's Avatar
    Join Date
    Oct 2011
    Posts
    93
    Спасибо за совет, но читать документацию я тоже умею
    http://doc.qt.nokia.com/4.7-snapshot...nchronous-prop
    http://doc.qt.nokia.com/4.7-snapshot...ourceSize-prop
    Естественно эти примитивные методы не работают, здесь реальная неспособность системы корректно отображать картинки, одно из разрешений в которых больше 2048 пикселей. Почему я и поинтересовался об OpenGL.
    К тому же, асинхронная загрузка совсем не вариант, даже, если бы она решала проблему с качеством. Пользователь пару секунд видит пустую страницу, а из таких страниц состоит всё приложение.

  4. #4
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Разрешение фотографий, снятых на камеру смартфона, как правило, больше 2048px по каждому из размеров. Система прекрасно справляется с обработкой таких изображений. И эти примитивные советы помогают существенно ускорить загрузку в QML Image.
    Если встроенных средств недостаточно для ваших целей, то можете реализовать собственный метод чтения файлов с изображениями на Qt/C++ и использовать его из QML через QDeclarativeImageProvider.

    А по поводу OpenGL вы уже тоже наверняка могли видеть в документации - Hardware Accelerated Rendering.

  5. #5
    Registered User HellStranger's Avatar
    Join Date
    Oct 2011
    Posts
    93
    По поводу фотографий- да, я сам прекрасно понимаю, что разрешение выше 2048 пикселей, но кто сказал, что система использует один QML Image element для отображения?.. Я совершенно в этом не уверен. Что же касается QML Image element, то можете сами проверить: начиная с 2049 пикселей изображение теряет качество, так к оно сперва скейлится до 2048, а потом результат растягиваются до заданных размеров. N950, PR 1.1.
    Разумеется, все советы из Hardware Accelerated Rendering я уже применял, всё безрезультатно. Скорее всего придётся пробовать QDeclarativeImageProvider.
    Last edited by HellStranger; 2012-07-08 at 21:06.

Similar Threads

  1. как сделать большие часы на экране 6500 slide?
    By vaxx in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 3
    Last Post: 2008-06-23, 17:58
  2. Вывод прозрачного изображения поверх других окон.
    By fly9296404 in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 4
    Last Post: 2008-04-19, 08:36

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved