Python中的QPixmap怎么使用
QPixmap主要用于绘图,针对图像显示而最佳化设计;QImage主要是为图像I/O、图像访问及像素修改而设计。但若用QPixmap加载大图片的时候,会占用很大内存,适合加载小图片;一个几十K的图片,加载进来后会放大很多倍。若图片过大,可用QImage进行加载,然后转成QPixmap用户绘制,QPixmap绘制效果最好。1.使用QPixmap显示图片voidDialog::paintEvent(QPaintEvent*){QPainterpainter(this);QPixmappix;pix.load(
QPixmap主要用于绘图,针对图像显示而最佳化设计;QImage主要是为图像I/O、图像访问及像素修改而设计。但若用QPixmap加载大图片的时候,会占用很大内存,适合加载小图片;一个几十K的图片,加载进来后会放大很多倍。
若图片过大,可用QImage进行加载,然后转成QPixmap用户绘制,QPixmap绘制效果最好。
1.使用QPixmap显示图片
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的矩形中显示图片
}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的句型中显示图片
qreal wid = pix.width(); //获取图像的宽高
qreal hei = pix.height();
pix = pix.scaled(wid*2,hei*2,Qt::KeepAspectRatio);//将图片宽高扩大两倍,且在矩形内保持宽高比值
painter.drawPixmap(50,50,pix);
}3.使用QPixmap实现图像的旋转
可使用QPainter类的rotate()函数实现图像旋转,其默认是以原点为中心进行旋转。
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);
}必须先改变旋转中心,然后再旋转,然后再将原点复原,才能达到想要的效果。
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.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);
}
火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。
















