QPixmap是專門為繪圖而生,當(dāng)需要繪制圖片時你需要使用QPixmap。QImage則是為I/O,為圖片像素訪問以及修改而設(shè)計的。如果你 想訪問圖片的像素或是修改圖片像素,則需要使用QImage,或者借助于QPainter來操作像素。另外跟QImage不同是,QPixmap跟硬件是 相關(guān)的,如X11, Mac 以及 Symbian平臺上,QPixmap 是存儲在服務(wù)器端,而QImage則是存儲在客戶端,在Windows平臺上,QPixmap和QImage都是存儲在客戶端,并不使用任何的GDI資 源。
相信大家更關(guān)心的是誰比較快,哈哈,現(xiàn)在來總結(jié)一下:
在X11, Mac 以及 Symbian平臺上,QImage: 因為它是存儲在客戶端,往QImage上繪圖比較快,但顯示它則比較慢。QPixmap: 因為它是存儲在服務(wù)器端,往QPixmap上繪圖比較慢,但顯示它則比較快。但在Windows平臺上則是是一樣的,因為它們都存儲在客戶端。
Qt上圖片處理使用QPixmap和QImage時最多了,不過既然談到圖片了,我們把其他幾個圖片處理類也說一下:
QBitmap只是一個繼承于QPixmap的簡單類,它可以確保圖片深度為1。
QBitmap是QPixmap的子類,提供單色圖像,可以用來制作游標(biāo)(QCursor)或者筆刷(QBrush)。
QPicture是一個繪畫設(shè)備類,它記錄了并可以重演QPainter的命令。你可以使用QPainter的begin()方法,指定在 QPicture上繪圖,使用end()方法結(jié)束繪圖,使用QPicture的save()方法將QPainter所使用過的繪圖指令存至檔案。要重播繪 圖指令的話,建立一個QPicture,使用load()方法載入繪圖指令的檔案,然后在指定的繪圖裝置上繪制QPicture: