QTQImageQPixmap·QBitmap三者區(qū)別-創(chuàng)新互聯(lián)

QImage與Qpixmap的區(qū)別

站在用戶的角度思考問題,與客戶深入溝通,找到察隅網(wǎng)站設(shè)計與察隅網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋察隅地區(qū)。

1、QPixmap主要是用于繪圖,針對屏幕顯示而最佳化設(shè)計,QImage主要是為圖像I/O、圖片訪問和像素修改而設(shè)計的

2、QPixmap依賴于所在的平臺的繪圖引擎,故例如反鋸齒等一些效果在不同的平臺上可能會有不同的顯示效果,QImage使用Qt自身的繪圖引擎,可在不同平臺上具有相同的顯示效果

3、目前的Qt會把QPixmap都存儲在graphics memory中,QImage是存儲在客戶端的,是獨(dú)立于硬件的。在 X11, Mac 以及 Symbian平臺上,QPixmap 是存儲在服務(wù)器端,而QImage則是存儲在客戶端,在Windows平臺上,QPixmap和QImage都是存儲在客戶端,并不使用任何的GDI資源。

4、由于QImage是獨(dú)立于硬件的,也是一種QPaintDevice,因此我們可以在另一個線程中對其進(jìn)行繪制,而不需要在GUI線程中處理,使用這一方式可以很大幅度提高UI響應(yīng)速度。

5、QImage可通過setPixpel()和pixel()等方法直接存取指定的像素,Qt的文檔中有如下例程:

QImage p_w_picpath(3, 3, QImage::Format_RGB32);

QRgb value;

value = qRgb(189, 149, 39);

p_w_picpath.setPixel(1, 1, value);

value = qRgb(122, 163, 39);

p_w_picpath.setPixel(0, 1, value);

p_w_picpath.setPixel(1, 0, value);

value = qRgb(237, 187, 51);

p_w_picpath.setPixel(2, 1, value);

QT Q Image  QPixmap  ·QBitmap 三者區(qū)別

·QImage的顯示

·QPainter中繪制QImage的接口原型:

void QPainter::drawImage ( int x, int y,

const QImage & p_w_picpath,

int sx = 0, int sy = 0,

int sw = -1, int sh = -1,

Qt::ImageConversionFlags flags = Qt::AutoColor )

其中x和y為繪制位置,sx和sy是指圖像左上角的坐標(biāo),sw和sh是指定了圖像的大小,如果都為0或負(fù)數(shù),就顯示完整個圖像。

QImage p_w_picpath;

p_w_picpath.load( ":/pics/earth.png" );

QPainter painter(this);

painter.drawImage(0,0, p_w_picpath);

·當(dāng)圖片較大時,我們可以先通過QImage將圖片加載進(jìn)來,然后把圖片縮放成需要的尺寸,最后轉(zhuǎn)換成QPixmap 進(jìn)行顯示。

QImage p_w_picpath;

p_w_picpath.load( ":/pics/earth.png" );

QPainter painter(this);

QPixmap pixmapToShow = QPixmap::fromImage( p_w_picpath.scaled(size(), Qt::KeepAspectRatio) );

painter.drawPixmap(0,0, pixmapToShow);

·QBitmap與QPixmap

·QBitmap是QPixmap的一個子類,主要用于顯示單色位圖。用于制作游標(biāo)QCursor或筆刷QBrush等,圖像顯示對比如下

QPixmap pixImg("caterpillar.jpg");

QBitmap bitImg("caterpillar.jpg");

QPainter painter(this);

painter.drawPixmap(0, 0, pixImg);

painter.drawPixmap(200, 0, bitImg);

QT Q Image  QPixmap  ·QBitmap 三者區(qū)別

·QPicture

·QPicture則是一個繪圖裝置,用于記錄和重播Qpainter的繪圖指令。

·使用begin()方法在QPicture上進(jìn)行繪圖,使用end()結(jié)束繪圖,使用save()保存至檔案

QPicture picture;

QPainter painter;

painter.begin(&picture);

painter.drawRect(10, 20, 100, 50);

painter.end();

picture.save("draw_record.pic");

需重播繪圖指令的話,新建一個QPicture對象,使用load()重新載入保存的檔案,然后再在指定的繪圖設(shè)備QDevice上繪制QPicture:

QPicture picture;

picture.load("draw_record.pic");

QPainter painter;

painter.begin(this);

painter.drawPicture(0, 0, picture);

painter.end();

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁題目:QTQImageQPixmap·QBitmap三者區(qū)別-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://bm7419.com/article28/gggjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站改版、建站公司、Google、企業(yè)網(wǎng)站制作網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)