Comment utiliser QPixmap en Python

WBOY
Libérer: 2023-04-19 16:58:13
avant
1671 Les gens l'ont consulté

QPixmap est principalement utilisé pour le dessin et est optimisé pour l'affichage d'images ; QImage est principalement conçu pour les E/S d'images, l'accès aux images et la modification des pixels. Cependant, si vous utilisez QPixmap pour charger de grandes images, cela prendra beaucoup de mémoire et convient au chargement de petites images ; une image de plusieurs dizaines de K sera agrandie plusieurs fois après avoir été chargée.

Si l'image est trop grande, vous pouvez utiliser QImage pour la charger, puis la convertir en QPixmap pour que l'effet de dessin QPixmap soit le meilleur.

1. Utilisez QPixmap pour afficher des images

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的矩形中显示图片
}
Copier après la connexion

2. Utilisez QPixmap pour réaliser la mise à l'échelle de l'image

Vous pouvez utiliser la fonction scaled() dans la classe QPixmap pour agrandir ou réduire l'image. Cette fonction renvoie la taille d'un rectangle mis à l'échelle pour avoir la largeur et la hauteur données, en fonction du mode spécifié.

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);
}
Copier après la connexion

3. Utilisez QPixmap pour faire pivoter l'image

Vous pouvez utiliser la fonction rotate() de la classe QPainter pour faire pivoter l'image. La valeur par défaut est de faire pivoter l'origine comme centre.

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); 
}
Copier après la connexion

Vous devez d'abord changer le centre de rotation, puis faire pivoter à nouveau, puis restaurer l'origine pour obtenir l'effet souhaité.

4. Utilisez QPixmap pour réaliser une distorsion d'image

Utilisez la fonction shear(qreal sh, qreal sv) de la classe QPainter pour réaliser une distorsion d'image. Le paramètre 1 réalise une déformation horizontale et le paramètre 2 réalise une déformation longitudinale. Lorsque leur valeur est 0, cela signifie qu'il n'y a pas de distorsion.化 Le changement de forme de l'image est obtenu par des changements dans le système de coordonnées.

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); 
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!