亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Qt使用QImage類(lèi)實(shí)現(xiàn)圖像基本操作

 更新時(shí)間:2022年06月16日 09:20:28   作者:wendy_ya  
這篇文章主要介紹了Qt如何利用QImage類(lèi)實(shí)現(xiàn)對(duì)圖像的基本操作,包括圖像顯示、圖像縮放、圖像旋轉(zhuǎn)等,感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下

一、項(xiàng)目介紹

利用QImage類(lèi)實(shí)現(xiàn)對(duì)圖像的基本操作,包括圖像顯示、圖像縮放、圖像旋轉(zhuǎn)等。

二、項(xiàng)目基本配置

新建一個(gè)Qt案例,項(xiàng)目名稱(chēng)為“ImageTest”,基類(lèi)選擇“QWidget”,點(diǎn)擊選中創(chuàng)建UI界面復(fù)選框,完成項(xiàng)目創(chuàng)建。

三、UI界面設(shè)計(jì)

UI界面布局如下:

界面中創(chuàng)建了5個(gè)控件,其名稱(chēng)和類(lèi)型如下:

序號(hào)名稱(chēng)類(lèi)型屬性
ChooseQPushButtontext:選擇圖像
RotateQPushButtontext:圖像旋轉(zhuǎn)
ZoomQPushButtontext:圖像縮放
imagelabelQLabel\
horizontalSliderQSliderminimum:0
maximum:359

四、主程序?qū)崿F(xiàn)

4.1 widget.h頭文件

頭文件中聲明原始圖像img:

public:
    QImage img;//原始圖像

聲明三個(gè)按鈕點(diǎn)擊槽函數(shù)和一個(gè)滑動(dòng)條滑動(dòng)槽函數(shù):

private slots:
    void on_Choose_clicked();

    void on_Rotate_clicked();

    void on_Zoom_clicked();

    void on_horizontalSlider_valueChanged(int value);

4.2 widget.cpp源文件

定義選擇圖像槽函數(shù):

//選擇圖像
void Widget::on_Choose_clicked()
{
    QString path=QFileDialog::getOpenFileName(this,tr("選擇圖像"),"E:\\image\\",tr("Images (*.png *.bmp *.jpg *.tif *.GIF )"));
    if(path.isEmpty())
    {
         return;
    }
    else
    {
        if(! ( img.load(path) ) ) //加載圖像
        {
            QMessageBox::information(this,tr("打開(kāi)圖像失敗"),tr("打開(kāi)圖像失敗!"));
            //delete img;
            return;
        }
        //img.load(path);
        ui->imagelabel->setPixmap(QPixmap::fromImage(img));
    }

}

定義圖像縮放槽函數(shù):

//圖像縮放
void Widget::on_Zoom_clicked()
{
    QImage* imgScaled = new QImage;
    int width=ui->imagelabel->width()/2;
    int height=ui->imagelabel->height()/2;
    *imgScaled=img.scaled(width,height,Qt::KeepAspectRatio);//對(duì)半縮放
    ui->imagelabel->setPixmap(QPixmap::fromImage(*imgScaled));
}

定義圖像旋轉(zhuǎn)槽函數(shù):

//圖像旋轉(zhuǎn)
void Widget::on_Rotate_clicked()
{
    ui->horizontalSlider->setVisible(true);//顯示滑動(dòng)條
}

定義滑動(dòng)條值變化槽函數(shù):

//進(jìn)度條值變化
void Widget::on_horizontalSlider_valueChanged(int value)
{
    qDebug()<<value;//輸出旋轉(zhuǎn)角度
    QImage* imgRatate = new QImage;
    QMatrix matrix;
    matrix.rotate(value);
    *imgRatate = img.transformed(matrix);
    ui->imagelabel->setPixmap(QPixmap::fromImage(*imgRatate));
}

五、效果演示

完整效果如下:

到此這篇關(guān)于詳解Qt使用QImage類(lèi)實(shí)現(xiàn)圖像基本操作的文章就介紹到這了,更多相關(guān)Qt圖像基本操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中友元函數(shù)(friend)解析

    C++中友元函數(shù)(friend)解析

    這篇文章主要分享了C++友元函數(shù)講解,C++提供了一種形式的訪問(wèn)權(quán)限,叫做友元,友元有三種,分別是友元函數(shù)、友元類(lèi)和友元成員函數(shù),下面將詳細(xì)介紹該內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • 淺析ORB、SURF、SIFT特征點(diǎn)提取方法以及ICP匹配方法

    淺析ORB、SURF、SIFT特征點(diǎn)提取方法以及ICP匹配方法

    這篇文章主要為大家介紹了常用的特征點(diǎn)提取方法(ORB、SURF、SIFT)和ICP匹配方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • c++ 子類(lèi)構(gòu)造函數(shù)初始化及父類(lèi)構(gòu)造初始化的使用

    c++ 子類(lèi)構(gòu)造函數(shù)初始化及父類(lèi)構(gòu)造初始化的使用

    這篇文章主要介紹了c++ 子類(lèi)構(gòu)造函數(shù)初始化及父類(lèi)構(gòu)造初始化的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解C語(yǔ)言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對(duì)內(nèi)存的使用

    詳解C語(yǔ)言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對(duì)內(nèi)存的使用

    這篇文章主要介紹了C語(yǔ)言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對(duì)內(nèi)存的使用,包括結(jié)構(gòu)體中內(nèi)存泄漏情況的注意點(diǎn)提醒,需要的朋友可以參考下
    2016-03-03
  • Qt實(shí)現(xiàn)小功能之復(fù)雜抽屜效果詳解

    Qt實(shí)現(xiàn)小功能之復(fù)雜抽屜效果詳解

    在Qt自帶的控件中,也存在抽屜控件:QToolBar。但是,該控件有個(gè)缺點(diǎn):一次只能展開(kāi)一個(gè)抽屜信息,無(wú)法實(shí)現(xiàn)多個(gè)展開(kāi)。所以本文將自定義實(shí)現(xiàn)復(fù)雜抽屜效果,需要的可以參考一下
    2022-10-10
  • C語(yǔ)言程序環(huán)境編譯+鏈接理論

    C語(yǔ)言程序環(huán)境編譯+鏈接理論

    這篇文章主要介紹了C語(yǔ)言程序環(huán)境編譯+鏈接理論,下面文章基于C語(yǔ)言的相關(guān)資料展開(kāi)對(duì)編譯和鏈接的詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-04-04
  • 在vs2017上配置AppGameKit庫(kù)的圖文教程

    在vs2017上配置AppGameKit庫(kù)的圖文教程

    這篇文章主要介紹了在vs2017上配置AppGameKit庫(kù)的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C/C++內(nèi)存管理詳情

    C/C++內(nèi)存管理詳情

    這篇文章主要通過(guò)描述了C/C++內(nèi)存分布、C/C++的一些函數(shù)理方面來(lái)展開(kāi)C/C++內(nèi)存管理的內(nèi)容,需要的朋友請(qǐng)參考下文
    2021-08-08
  • C++?OpenCV實(shí)戰(zhàn)之車(chē)道檢測(cè)

    C++?OpenCV實(shí)戰(zhàn)之車(chē)道檢測(cè)

    這篇文章主要介紹了基于C++?OpenCV實(shí)現(xiàn)的車(chē)道檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++類(lèi)中的常數(shù)據(jù)成員與靜態(tài)數(shù)據(jù)成員之間的區(qū)別

    C++類(lèi)中的常數(shù)據(jù)成員與靜態(tài)數(shù)據(jù)成員之間的區(qū)別

    常數(shù)據(jù)成員是指在類(lèi)中定義的不能修改其值的一些數(shù)據(jù)成員,類(lèi)似于我們以前學(xué)過(guò)的常變量,雖然是變量,也有自己的地址,但是一經(jīng)賦初值,便不能再被修改
    2013-10-10

最新評(píng)論