2012年4月5日

QT顯示圖片-使用QImage與QLabel

簡介:
在使用QT開發程式時,會有機會想要做一些圖片的顯示,那麼要怎麼顯示圖片呢?還有,要怎麼保存圖片的內容呢?



實作方法:
首先,讓我們看一下QT Document對於圖片處理的介紹,如下圖:



QT提供了四個類別(QImage、QBitmap、QPixmap、QPicture)來做image的資料處理,而在其中處理最直接且最佳化的是QImage是使用QImage類別。



而要開啟一張圖片的方式則是使用Load成員函式,其介紹如下:


最主要,只要設定圖檔的來源即可(其實也可以使用其中一個多載建構子)。




再來,要「顯示圖片在螢幕上」與「對圖片做資料保存和處理」是兩回事,因此我們仍需要別的類別或元件來協助我們,在此我們選用QLabel




那麼,QLabel要怎麼拿到QImage的影像內容呢?


讓我們在來看一下QLabel文件中有沒有什麼介紹:


發現了可以透過QPixmap取得圖像。




再來,再看一次有關image處理的四個類別介紹:






其中也看到了一句關鍵的句子。
沒錯,QPixmap具有可以把圖片顯示到螢幕上的地方,並且,QLabel裡面也提供了setPixmap的方法。


再來,如何把QImage轉成QPixmap呢?再次看一下QT Document:




所以,萬事具備了,讓我們來看一下程式碼的實作。


程式碼:



void loadToShow(){ //載入圖片,showImg是QImage類別 showImg.load("../girl.png"); //顯示到QLabel,howImglabel是QLabel元件 ui->showImglabel->setPixmap(QPixmap::fromImage(this->showImg)); }


結果:





沒有留言:

ShareThis