返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的QPixmap用法详解
  • 297
分享到

Python中的QPixmap用法详解

QPixmap使用pythonQPixmap用法 2023-03-21 14:03:17 297人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1.使用QPixmap显示图片2.使用QPixmap实现图片的缩放3.使用QPixmap实现图像的旋转4.使用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使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中的QPixmap用法详解

本文链接: https://lsjlt.com/news/200710.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中的QPixmap用法详解
    目录1.使用QPixmap显示图片2.使用QPixmap实现图片的缩放3.使用QPixmap实现图像的旋转4.使用QPixmap实现图像的扭曲QPixmap主要用于绘图,针对图像显示...
    99+
    2023-03-21
    QPixmap使用 python QPixmap用法
  • Python中的QPixmap怎么使用
    这篇文章主要讲解了“Python中的QPixmap怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中的QPixmap怎么使用”吧!QPixmap主要用于绘图,针对图像显示而...
    99+
    2023-07-05
  • Qt中QPixmap、QImage、QPicture、QBitmap四者区别详解
    目录前言QPixmap&QImageQBitmapQPicture参考:前言 Qt 提供了四个类来处理图像数据:QImage、QPixmap、QBitmap 和 QPictu...
    99+
    2024-04-02
  • Python中numpy.polyfit的用法详解
    numpy中polyfit的用法 参数 polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False): x:M个采样点的横坐标数组; y:...
    99+
    2023-09-12
    python numpy
  • python中yield的用法详解—
    此文转载,侵删,原文地址:https://blog.csdn.net/mieleiz... 首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是...
    99+
    2023-01-31
    详解 python yield
  • python中的@property的用法详解
    目录1.什么是property2.property属性定义的两种方式3.用property代替getter和setter方法1.什么是property 简单地说就是一个类里面的方法一...
    99+
    2024-04-02
  • Python中selenium库的用法详解
    selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。 模拟浏览器进行网页加载,当requests,urllib无法正常获取网页内容的时候 一、声明浏览器对象 注意点...
    99+
    2022-06-02
    Python中selenium库的用法 selenium用法 Python webdriver selenium获取网页代码 selenium执行JavaScript selenium等待 Cooki
  • Python中requests库的用法详解
    目录一、requests库安装请求响应二、发送get请求1、一个带参数的get请求:2、响应json3、添加头信息headers4、添加和获取cookie信息三、发送post请求1、...
    99+
    2024-04-02
  • 详解python中flask_caching库的用法
    目录安装flask_caching库:缓存类型配置参数初始化使用缓存为了尽量减少缓存穿透,并同时减少web的响应时间,可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的...
    99+
    2023-05-19
    python flask flask_caching库
  • Python中re.findall()用法详解
    在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。本文重点给大家介绍python中正则表达式 re.findall 用法 re.findall():函数返回...
    99+
    2024-04-02
  • Python 中 sys.argv 用法详解
    一、Python sys 模块         “sys” 是 “system”,是一个系统模块,该模块提供了一些接口,用户访问python解释器自身使用和维护的变量,同时模块中还提供了一些函数,而我们今天要讲解的 argv 就是其中一个函...
    99+
    2023-09-03
    python 开发语言
  • python中decimal用法详解
    decimal是python内置库。 decimal模块支持快速正确四舍五入的十进制浮点运算。 示例代码: import decimala = decimal.Decimal(123)print(a)b = decimal.Decimal(...
    99+
    2023-09-12
    python decimal
  • 详解Python中魔法方法的使用
    目录迭代器的大小元编程自省(introspection)魔法属性创建自己魔法方法python中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两...
    99+
    2022-12-19
    Python魔法方法使用 Python魔法方法
  • Python中index()和seek()的用法(详解)
    1、index() 一般用处是在序列中检索参数并返回第一次出现的索引,没找到就会报错,比如: >>> t=tuple('Allen') >>> t ('A', 'l'...
    99+
    2022-06-04
    详解 Python index
  • python中OrderedDict的使用方法详解
    很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类 OrderedDict,实现了对字典对象中元素...
    99+
    2022-06-04
    使用方法 详解 python
  • 详解Python中heapq模块的用法
    heapq 模块提供了堆算法。heapq是一种子节点和父节点排序的树形数据结构。这个模块提供heap[k] <= heap[2*k+1] and heap[k] <= heap[2*k+2]。为...
    99+
    2022-06-04
    详解 模块 Python
  • python中yield函数的用法详解
    首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就...
    99+
    2024-04-02
  • 详解Python中__new__方法的作用
    目录前言一、__new__方法简介1、初始化数据加载+解析类实例2、初始化数据加载重写new方法+解析类实例二、单例模式1、用new方法如何实现单例模式2、如何控制类仅执行一次初始化...
    99+
    2024-04-02
  • Python中的Super用法示例详解
    目录Python Super用法附:super的典型用法总结 Python Super用法 这篇文章我们来介绍一下 super,我相信大部分的人使用 super 都是使用这...
    99+
    2024-04-02
  • python中format的用法实例详解
    目录1、基本用法1. 按照{}的顺序依次匹配括号中的值2. 通过索引的方式去匹配参数3. 通过参数名来匹配参数4. 混搭使用2、进阶用法1. 通过对象的属性2. 支持对参数部分引用3...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作