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

Python中的QPixmap怎麼使用

WBOY
發布: 2023-04-19 16:58:13
轉載
1688 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板