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.
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的矩形中显示图片 }
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); }
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); }
Vous devez d'abord changer le centre de rotation, puis faire pivoter à nouveau, puis restaurer l'origine pour obtenir l'effet souhaité.
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); }
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!