在使用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));
}
結果:
沒有留言:
張貼留言