91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實現圖像的顯示

Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實現圖像的顯示

發布時間:2020-07-15 06:49:06 來源:網絡 閱讀:1451 作者:WZM3558862 欄目:開發技術

Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實現圖像的顯示,并且利用類中的方法可以實現圖像的基本操作(縮放、旋轉)。

1. Qt可顯示的圖像類型

參考Qt的幫助文檔,可支持的類型,即可以直接讀取并顯示的格式有BMP、GIF、JPG、JPEG、PNG、TIFF、PBM、PGM、PPM、XBM、XPM。

2. Qt用如何顯示圖像

通常用QLabel顯示圖像,QLabel類有setPixmap()函數,可以用來顯示圖像。也可以直接用QPainter畫出圖像。

如果圖像過大,直接用QLabel顯示,將會出現有部分圖像顯示不出來,這時可以用Scroll Area部件。方法:將QLabel部件放到Scroll Area部件里面,將兩個采用柵格布局,當圖像超出了QLabel部件大小時,就會產生滑動桿,這樣圖像就可以都看到了。

3. 顯示的方法

步驟:先打開一個圖像;將圖像文件加載進QImage對象中;再用QPixmap對象獲得圖像;最后用QLabel選擇一個QPixmap圖像對象顯示。

代碼如下:

Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實現圖像的顯示

    QString filename;
    filename=QFileDialog::getOpenFileName(,
                                          tr(),
                                          ,
                                          tr());
    (filename.isEmpty())
    {
         ;
    }
    
    {
        QImage* img= QImage;

        (! ( img->load(filename) ) )         {
            QMessageBox::information(,
                                     tr(),
                                     tr());
            delete img;
            ;
        }
        ui->label->setPixmap(QPixmap::fromImage(*img));
    }

Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實現圖像的顯示



注:也可以直接用QPixmap類的對象采用Load函數加載圖像。這里說下QImage和QPixmap類的用處:QImage為圖像的像素級訪問做了優化,QPixmap使用底層平臺的繪制系統進行繪制,無法提供像素級別的操作,而QImage則是使用獨立于硬件的繪制系統。

4. 圖像縮放

圖像縮放采用scaled函數。函數原型

QImage QImage::scaled ( const QSize & size,Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationModetransformMode = Qt::FastTransformation ) const

使用方法如下,還是利用上面的img:

QImage* imgScaled =  QImage;
*imgScaled=img->scaled(width,
                       height,
                       Qt::KeepAspectRatio);
ui->label->setPixmap(QPixmap::fromImage(*imgScaled));

scaled函數中width和height表示縮放后圖像的寬和高,即將原圖像縮放到(width,height)大小。

5. 圖像旋轉

圖像旋轉可以利用QImage類的transformed函數,向transformed函數傳入QMatrix對象,QMatrix對象指定了旋轉的角度。

代碼如下:

QImage* imgRatate =  QImage;
QMatrix matrix;
matrix.rotate();
*imgRotate = img->transformed(matrix);
ui->label->setPixmap(QPixmap::fromImage(*imgRotate));

注意:rotate函數中參數是旋轉的角度,旋轉是按順時針方向旋轉的,上面順時針旋轉270度,即逆時針旋轉90度。

6. 圖像連續縮放
有了圖像縮放的基礎,就可以實現圖像的連續縮放,可以放置一個橫向滑竿(中文解釋不標準,就是Horizontal Slider部件 ),滑動滑輪的位置以實現圖像連續縮放。

Horizontal Slider部件指向的值為整型value,即縮放后的圖像為

img->scaled(orignalWidth*value/100,
                         orignalHeight*value/100,
                         Qt::KeepAspectRatio);

orignalWidth和orignalHeight為原始圖像的寬和高。

注意:在對原始圖像進行縮放多少倍數時,在相應的槽函數內只需要調用Horizontal Slider部件對象的setValue函數即可,因為Horizontal Slider部件滑竿指向的值一旦變化就會觸發對應的槽函數來對圖像進行縮放。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平乐县| 栾城县| 莱州市| 河北省| 缙云县| 新蔡县| 海淀区| 尼玛县| 桐城市| 聊城市| 乌兰县| 泊头市| 晋州市| 鹤庆县| 依安县| 海南省| 友谊县| 泰和县| 舟曲县| 临朐县| 高密市| 宜君县| 北宁市| 绥宁县| 伊吾县| 城步| 罗城| 永修县| 樟树市| 芜湖市| 淅川县| 宜兴市| 盘锦市| 调兵山市| 镇宁| 胶州市| 湘潭市| 宜黄县| 宝丰县| 开远市| 瓮安县|