Python中的QPixmap用法详解

 更新时间:2023年03月21日 14:26:52   作者:蚂蚁取经  
QPixmap主要用于绘图,针对图像显示而最佳化设计,这篇文章主要介绍了Python中的QPixmap用法,对QPixmap使相关知识感兴趣的朋友一起看看吧

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); 
}

到此这篇关于Python中的QPixmap使用的文章就介绍到这了,更多相关QPixmap使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • xpath无法定位tbody标签解决方法示例

    xpath无法定位tbody标签解决方法示例

    这篇文章主要介绍了xpath无法定位tbody标签解决方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • python实现本地图片转存并重命名的示例代码

    python实现本地图片转存并重命名的示例代码

    今天小编就为大家分享一篇python实现本地图片转存并重命名的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • pycharm社区版安装node.js插件运行js代码方法

    pycharm社区版安装node.js插件运行js代码方法

    PyCharm可以说是当今最流行的一款Python IDE了,下面这篇文章主要给大家介绍了关于pycharm社区版安装node.js插件运行js代码的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • python制作可视化GUI界面自动分类管理文件

    python制作可视化GUI界面自动分类管理文件

    这篇文章主要为大家介绍了python制作可视化GUI界面实现自动分类管理文件,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python统计单词出现的次数

    Python统计单词出现的次数

    最近经理交给我一项任务,统计一个文件中每个单词出现的次数,列出出现频率最多的5个单词。本文给大家带来了python 统计单词次数的思路解析,需要的朋友参考下吧
    2018-04-04
  • 详解python opencv、scikit-image和PIL图像处理库比较

    详解python opencv、scikit-image和PIL图像处理库比较

    这篇文章主要介绍了详解python opencv、scikit-image和PIL图像处理库比较,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • python中的sys模块详解

    python中的sys模块详解

    sys模块是与python解释器交互的一个接口,sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分,这篇文章主要介绍了python之sys模块详解,需要的朋友可以参考下
    2022-11-11
  • python读取xml文件方法解析

    python读取xml文件方法解析

    这篇文章主要介绍了python读取xml文件方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 用python实现的线程池实例代码

    用python实现的线程池实例代码

    这篇文章主要介绍了用python实现的线程池实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python plotly画柱状图代码实例

    python plotly画柱状图代码实例

    这篇文章主要介绍了python plotly画柱状图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论