Bagaimana untuk menggunakan QPixmap dalam Python

WBOY
Lepaskan: 2023-04-19 16:58:13
ke hadapan
1671 orang telah melayarinya

QPixmap digunakan terutamanya untuk lukisan dan dioptimumkan untuk paparan imej QImage terutamanya direka untuk I/O imej, akses imej dan pengubahsuaian piksel. Walau bagaimanapun, jika anda menggunakan QPixmap untuk memuatkan gambar besar, ia akan mengambil banyak memori dan sesuai untuk memuatkan gambar kecil; gambar berpuluh-puluh K akan dibesarkan berkali-kali selepas dimuatkan.

Jika imej terlalu besar, anda boleh menggunakan QImage untuk memuatkannya, dan kemudian menukarnya kepada QPixmap untuk lukisan pengguna QPixmap adalah yang terbaik.

1. Gunakan QPixmap untuk memaparkan imej

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的矩形中显示图片
}
Salin selepas log masuk

2 Gunakan QPixmap untuk mencapai penskalaan imej

Anda boleh menggunakan fungsi berskala() dalam kelas QPixmap untuk membesarkan. atau besarkan imej Zum keluar. Fungsi ini mengembalikan saiz segi empat tepat berskala untuk mempunyai lebar dan ketinggian yang diberikan, berdasarkan mod yang ditentukan.

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);
}
Salin selepas log masuk

3. Gunakan QPixmap untuk memutarkan imej

Anda boleh menggunakan fungsi rotate() kelas QPainter untuk memutar imej secara lalai pusat.

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); 
}
Salin selepas log masuk

Anda mesti menukar pusat putaran dahulu, kemudian putar semula, dan kemudian pulihkan asal untuk mencapai kesan yang diingini.

4. Gunakan QPixmap untuk merealisasikan herotan imej

Gunakan fungsi ricih(qreal sh, qreal sv) kelas QPainter untuk merealisasikan herotan imej. Parameter 1 merealisasikan ubah bentuk mendatar, dan parameter 2 merealisasikan ubah bentuk membujur. Apabila nilainya ialah 0, ini bermakna tiada herotan.

Perubahan dalam bentuk imej dicapai dengan menggunakan perubahan dalam sistem koordinat.

void Dialog::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(“D:/1.jpg”);
    painter.drawPixmap(0,0,50,50,pix); 
    painter.shear(0.5,0) ;//横向扭曲
    painter.drawPixmap(50,0,50,50,pix); 
    painter.shear(0,0.5);//纵向扭曲
    painter.drawPixmap(0,50,50,50,pix); 
    painter.shear(0.5,0.5);//同时横纵扭曲
    painter.drawPixmap(50,50,50,50,pix); 
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menggunakan QPixmap dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!