Performance tip Images/bg: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
m (Wieland moved page Performance tip Images Bulgarian to Performance tip Images/bg: Proper localization)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[toc align_right="yes" depth="3"]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
 


'''Български''' [[Performance_tip_Images|English]]
'''Български''' [[Performance_tip_Images|English]]
Line 15: Line 16:




Ако зареждате изображенията синхронно, интерфейса се блокира, докато операцията не завърши. В повечето случаи, не е нужно изображенията да се показват незабавно, така че те могат да се заредят отделно. Това може да се направи като сложите свойството на QML ''Image'' ''asynchronous'' на ''true''. По този начин интерфейса може да приема команди от потребителя. '''Внимание!''' Това свойство е валидно само за изображения, които са на локалната файлова система. Изображения, които се зареждат през мрежата (пр. HTTP), винаги се зареждат асинхронно.<br />* За повече информация: http://doc.qt.nokia.com/latest/qml-image.html#asynchronous-prop
Ако зареждате изображенията синхронно, интерфейса се блокира, докато операцията не завърши. В повечето случаи, не е нужно изображенията да се показват незабавно, така че те могат да се заредят отделно. Това може да се направи като сложите свойството на QML ''Image'' ''asynchronous'' на ''true''. По този начин интерфейса може да приема команди от потребителя. '''Внимание!''' Това свойство е валидно само за изображения, които са на локалната файлова система. Изображения, които се зареждат през мрежата (пр. HTTP), винаги се зареждат асинхронно.
* За повече информация: http://doc.qt.nokia.com/latest/qml-image.html#asynchronous-prop


== Избягайте преоразмеряване/скалиране ==
== Избягайте преоразмеряване/скалиране ==
Line 27: Line 29:




Изображенията често са най-големият консуматор на памет в QML интерфейса. За големи изображения използвайте sourceSize. С него оказвате колко голямо да бъде изображението, когато бъде заредено в паметта. Ако имате '''голямо''' изображение 3264 x 2448, но сложите ''sourceSize'' 204x153, тогава то ще бъде скалирано и съхранено с размери 204x153 в паметта. По този начин много големи изображения не използват повече от нужното памет. Това е особено важно за изображения, които се зареждат от външен източник или се предоставят от потребителя. '''Внимание!''' Промяната на това свойство по време на изпълнение ще доведе до презареждането на изображението, което може да е доста бавно, ако то е на отдалечен компютър и не е кеширано на хард диска.<br />* Повече информация за свойството Image::sourceSize : http://doc.qt.nokia.com/latest/qml-image.html#sourceSize-prop<br />* Изображенията се кешират, така че ако няколко ''Image'' елемента имат един и същ файл, само 1 копие ще бъде заредено . За повече информация: http://doc.qt.nokia.com/latest/qml-image.html#source-prop
Изображенията често са най-големият консуматор на памет в QML интерфейса. За големи изображения използвайте sourceSize. С него оказвате колко голямо да бъде изображението, когато бъде заредено в паметта. Ако имате '''голямо''' изображение 3264 x 2448, но сложите ''sourceSize'' 204x153, тогава то ще бъде скалирано и съхранено с размери 204x153 в паметта. По този начин много големи изображения не използват повече от нужното памет. Това е особено важно за изображения, които се зареждат от външен източник или се предоставят от потребителя. '''Внимание!''' Промяната на това свойство по време на изпълнение ще доведе до презареждането на изображението, което може да е доста бавно, ако то е на отдалечен компютър и не е кеширано на хард диска.
* Повече информация за свойството Image::sourceSize : http://doc.qt.nokia.com/latest/qml-image.html#sourceSize-prop
* Изображенията се кешират, така че ако няколко ''Image'' елемента имат един и същ файл, само 1 копие ще бъде заредено . За повече информация: http://doc.qt.nokia.com/latest/qml-image.html#source-prop


== Включвайте ''Image.smooth'' само когато е необходимо ==
== Включвайте ''Image.smooth'' само когато е необходимо ==
Line 33: Line 37:




Включването на Image.smooth се отразява зле на производителността. Използвайте изображения с тяхната естествена големина или спирайте заглаждането по време на анимации. Свойството Image.smooth позволява изображението да изглежда по-добре, когато е преоразмерено или трансформирано. Това дава по-добро качестово, но е по-бавно.<br />* За повече информация: http://doc.qt.nokia.com/latest/qml-image.html#smooth-prop
Включването на Image.smooth се отразява зле на производителността. Използвайте изображения с тяхната естествена големина или спирайте заглаждането по време на анимации. Свойството Image.smooth позволява изображението да изглежда по-добре, когато е преоразмерено или трансформирано. Това дава по-добро качестово, но е по-бавно.
* За повече информация: http://doc.qt.nokia.com/latest/qml-image.html#smooth-prop


== Избягвайте да създавате композиции от изображения ==
== Избягвайте да създавате композиции от изображения ==

Latest revision as of 21:19, 28 June 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.


Български English

Растерна срещу векторна графика

В Qt могат да се използват изображения във всички стандартни формати. Като например PNG и JPEG и векторна графика във формат SVG.

И все пак рендирането на SVG е доста бавно, сравнено с битмап изображение. Ето още някои съвети, как да направите интерфейса на вашето приложение по-приятен.

Зареждайте големите изображения асинхронно

Ако зареждате изображенията синхронно, интерфейса се блокира, докато операцията не завърши. В повечето случаи, не е нужно изображенията да се показват незабавно, така че те могат да се заредят отделно. Това може да се направи като сложите свойството на QML Image asynchronous на true. По този начин интерфейса може да приема команди от потребителя. Внимание! Това свойство е валидно само за изображения, които са на локалната файлова система. Изображения, които се зареждат през мрежата (пр. HTTP), винаги се зареждат асинхронно.

Избягайте преоразмеряване/скалиране

Преоразмеряването и скалирането са много тежки операции в QML. Използвайте изображения, които са в техните реални размери, вместо да ги преоразмерявате/скалирате големи до желаният размер.

Използвайте sourceSize с големи изображения

Изображенията често са най-големият консуматор на памет в QML интерфейса. За големи изображения използвайте sourceSize. С него оказвате колко голямо да бъде изображението, когато бъде заредено в паметта. Ако имате голямо изображение 3264 x 2448, но сложите sourceSize 204x153, тогава то ще бъде скалирано и съхранено с размери 204x153 в паметта. По този начин много големи изображения не използват повече от нужното памет. Това е особено важно за изображения, които се зареждат от външен източник или се предоставят от потребителя. Внимание! Промяната на това свойство по време на изпълнение ще доведе до презареждането на изображението, което може да е доста бавно, ако то е на отдалечен компютър и не е кеширано на хард диска.

Включвайте Image.smooth само когато е необходимо

Включването на Image.smooth се отразява зле на производителността. Използвайте изображения с тяхната естествена големина или спирайте заглаждането по време на анимации. Свойството Image.smooth позволява изображението да изглежда по-добре, когато е преоразмерено или трансформирано. Това дава по-добро качестово, но е по-бавно.

Избягвайте да създавате композиции от изображения

По-ефективно е да създадете една картинка от много и да я заредите в QML, отколкото да ги обедините динамично в кода. Например, сянка на картинка може да се създаде като се постави Rectangle под изображението, но по ефективно е да направите картинката с рамка в някоя програма за изображения и нея да подадете на QML кода.