[英]QImage to QPixmap is expensive
對於我的應用程序,我想連續顯示圖像。 但是我發現將qimage轉換為qpixmap花了大約30ms。 這影響了我的幀速率,所以我想找到一種更有效的方法來用QtGui顯示圖像。 我可以使用哪種方法? 有人可以幫我嗎?
如果您正確閱讀了文檔,則說明了所有內容。
如果僅加載圖像並顯示它(不對圖像進行任何操作),則只需加載圖像並將其緩存為QPixmap。
但是,如果您進行操作,您將無能為力。 也許您可以嘗試將圖像直接繪制到小部件的QPainter。 我不知道它是否比將圖像轉換為pixmap並將其繪制為小部件更快。
您不必進行轉換。 確保圖像采用后備存儲格式,只需在小部件上使用drawImage
即可。 盡可能快。
使用默認的柵格后端, QPixmap
是圍繞QImage
的非常薄的包裝器。 只要圖像具有正確的格式,則轉換是無操作的。
要獲得與QPixmap
兼容的格式,可以使用以下代碼:
QImage::Format pixmapFormat() {
static auto format = QPixmap{1,1}.toImage().format();
return format;
}
之前我也遇到過類似的問題,發現的最佳解決方案是使用OpenGL ( QOpenGLWidget
+ glDrawPixels()
)而不是將QImage
轉換為QPixmap
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.