首頁 >後端開發 >Python教學 >Python中的QPixmap怎麼使用

Python中的QPixmap怎麼使用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB轉載
2023-04-19 16:58:131737瀏覽

QPixmap主要用於繪圖,針對影像顯示而優化設計;QImage主要是為影像I/O、影像存取及像素修改而設計。但若用QPixmap載入大圖片的時候,會佔用很大內存,適合載入小圖片;一個幾十K的圖片,載入進來後會放大很多倍。

若圖片過大,可用QImage進行加載,然後轉成QPixmap用戶繪製,QPixmap繪製效果最好。

1.使用QPixmap顯示圖片

r​​rreee

2.使用QPixmap實作圖片的縮放

      可使用QPixmap類別中的scaled()函數將影像放大或縮小。該函數可以根據指定的模式,返回按比例縮放為具有給定寬度和高度的矩形的大小。

void Dialog::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(“D:/1.jpg”);
    painter.drawPixmap(0,0,50,50,pix); //在(0,0)点起始的宽高均为50的句型中显示图片
 
    painter.translate(50,50); //将起始点改为(50,50)
    painter.drawPixmap(0,0,50,50,pix); //在(50,50)起始的宽高为50的矩形中显示图片
}

3.使用QPixmap實現影像的旋轉

       可使用QPainter類別的rotate()函數實現影像旋轉,其預設是以原點為中心旋轉。

void Dialog::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(“D:/1.jpg”);
    painter.drawPixmap(0,0,50,50,pix); //在(0,0)点起始的宽高均为50的句型中显示图片
    
    qreal wid = pix.width(); //获取图像的宽高
    qreal hei = pix.height();
    pix = pix.scaled(wid*2,hei*2,Qt::KeepAspectRatio);//将图片宽高扩大两倍,且在矩形内保持宽高比值
    painter.drawPixmap(50,50,pix);
}

  必須先改變旋轉中心,然後再旋轉,然後再將原點復原,才能達到想要的效果。

4.使用QPixmap實現影像的扭曲

          使用的QPainter類別的shear(qreal sh,qreal sv)函數,可實現圖片的扭曲。參數1實現橫行變形,參數2實現縱向變形。當它們的值為0時,表示不扭曲。

          影像形狀的變化是利用座標系統的變化來實現的。

void Dialog::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(“D:/1.jpg”);
    painter.translate(50,50); //将旋转中心改为(50,50)
    painter.rotate(90); //顺时针旋转90度
    painter.translate(-50,-50); 
    painter.drawPixmap(0,0,50,50,pix); 
}

以上是Python中的QPixmap怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除