簡體   English   中英

從QImage到QPixmap是昂貴的

[英]QImage to QPixmap is expensive

對於我的應用程序,我想連續顯示圖像。 但是我發現將qimage轉換為qpixmap花了大約30ms。 這影響了我的幀速率,所以我想找到一種更有效的方法來用QtGui顯示圖像。 我可以使用哪種方法? 有人可以幫我嗎?

如果您正確閱讀了文檔,則說明了所有內容。

  • QImage是為IO處理以及直接像素訪問和操縱而設計的
  • QPixmap是為在屏幕上顯示圖像而設計和優化的

如果僅加載圖像並顯示它(不對圖像進行任何操作),則只需加載圖像並將其緩存為QPixmap。

但是,如果您進行操作,您將無能為力。 也許您可以嘗試將圖像直接繪制到小部件的QPainter。 我不知道它是否比將圖像轉換為pixmap並將其繪制為小部件更快。

您不必進行轉換。 確保圖像采用后備存儲格式,只需在小部件上使用drawImage即可。 盡可能快。

使用默認的柵格后端, QPixmap是圍繞QImage的非常薄的包裝器。 只要圖像具有正確的格式,則轉換是無操作的。

要獲得與QPixmap兼容的格式,可以使用以下代碼:

QImage::Format pixmapFormat() {
    static auto format = QPixmap{1,1}.toImage().format();
    return format;
}

之前我也遇到過類似的問題,發現的最佳解決方案是使用OpenGLQOpenGLWidget + glDrawPixels() )而不是將QImage轉換為QPixmap

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM