返回顶部
首页 > 资讯 > 精选 >使用PyQt5怎么显示超清高分辨率图片
  • 462
分享到

使用PyQt5怎么显示超清高分辨率图片

2023-06-14 11:06:55 462人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关使用PyQt5怎么显示超清高分辨率图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。常规加载先来看一下,如何借助 QLabel 和 QFileDialog 加载低分辨率的

这期内容当中小编将会给大家带来有关使用PyQt5怎么显示超清高分辨率图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

常规加载

先来看一下,如何借助 QLabel 和 QFileDialog 加载低分辨率的图片,这时候时能正常显示的。

import sysfrom PyQt5.QtWidgets import (QMainWindow, QWidget, QHBoxLayout, QApplication,                              QPushButton, QLabel, QFileDialog, QVBoxLayout,                              QLineEdit)from PyQt5.QtGui import QPixmapclass mainwindow(QMainWindow):    def __init__(self):        super(mainwindow, self).__init__()        layout = QVBoxLayout()        w = QWidget()        w.setLayout(layout)        self.setCentralWidget(w)        self.image_label = QLabel()        self.image_label.setFixedSize(800, 500)        layout.addWidget(self.image_label)        tmp_layout = QHBoxLayout()        btn = QPushButton("选择图片路径")        tmp_layout.addWidget(btn)        btn.clicked.connect(self.load_image)        self.result = QLineEdit()        self.result.setPlaceholderText("车牌展示")        self.result.setReadOnly(True)        tmp_layout.addWidget(self.result)        layout.addLayout(tmp_layout)    def load_image(self):        fname, _ = QFileDialog.getOpenFileName(self, 'Open File',                     'C://', "Image files (*.jpg *.png)")        if fname is not None:            pixmap = QPixmap(fname)            self.image_label.setPixmap(pixmap)if __name__ == '__main__':    app = QApplication([])    m = mainwindow()    m.show()    sys.exit(app.exec())

上述代码中,点击『选择图片路径』按钮就会调用文件对话框,选择图片后就会打开。步骤为:

  1. 第一步,QFileDialog 选择文件路径

  2. 第二步,将文件路径传入 QPixmap 类,通过重载构造一个对象,文档原话:Constructs a pixmap from the file with the given fileName. If the file does not exist or is of an unknown fORMat, the pixmap becomes a null pixmap.

  3. 第三步,将 QPixmap 对象传给标签的 setPixmap 方法,就完成了图片的显示。

对于低分辨率图片,加载是没问题的:

使用PyQt5怎么显示超清高分辨率图片

但高分辨率的图片,只能显示一个角落,也就是蓝色框那一部分:

使用PyQt5怎么显示超清高分辨率图片

如何解决呢?既然国内外都没有现成的解决方案,只能掏出万能的官方文档了。

QImageReader 类

需要注意的是官方文档的语言是 c++,还好我会C++。打开文档,映入眼帘的就四句话:

  • QImageReader reader("large.jpeg"); 读取图片

  • reader.size(); 图片尺寸

  • reader.setClipRect(myRect); 图片裁剪

  • reader.setScaledSize(mySize); 设置图片尺寸,文档原话:Another common function is to show a smaller version of the image. Loading a very large image and then scaling it down to the approriate size can be a very memory consuming operation. By calling the QImageReader::setScaledSize function, you can set the size that you want your resulting image to be.

剩下的任务就很简单了,读图片,设置尺寸,显示。

import sys, timefrom PyQt5.QtWidgets import (QMainWindow, QWidget, QHBoxLayout, QApplication,                              QPushButton, QLabel, QFileDialog, QVBoxLayout,                              QLineEdit)from PyQt5.QtGui import QPixmap, QFontfrom PyQt5.Qt import QSize, QImageReaderimport qdarkstyleclass mainwindow(QMainWindow):    def __init__(self):        super(mainwindow, self).__init__()        layout = QVBoxLayout()        w = QWidget()        w.setLayout(layout)        self.setCentralWidget(w)        self.image_label = QLabel()        self.image_label.setFixedSize(800, 500)        layout.addWidget(self.image_label)        tmp_layout = QHBoxLayout()        btn = QPushButton("选择图片路径")        tmp_layout.addWidget(btn)        btn.clicked.connect(self.load_image)        self.result = QLineEdit()        self.result.setPlaceholderText("车牌展示")        self.result.setReadOnly(True)        tmp_layout.addWidget(self.result)        layout.addLayout(tmp_layout)        self.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())    def load_image(self):        fname, _ = QFileDialog.getOpenFileName(self, 'Open File',                    'C://', "Image files (*.jpg *.png)")        if fname is not None:            # 还需要对图片进行重新调整大小            img = QImageReader(fname)            scale = 800 / img.size().width()            height = int(img.size().height() * scale)            img.setScaledSize(QSize(800, height))            img = img.read()            # 打开设置好的图片            pixmap = QPixmap(img)            self.image_label.setPixmap(pixmap)            self.result.setText("车牌号放到这里")if __name__ == '__main__':    app = QApplication([])    font = QFont()    font.setFamily("SimHei")    font.setPointSize(14)    app.setFont(font)    m = mainwindow()    m.show()    sys.exit(app.exec())

考虑到可能会加载超清图像,为了方便对图片进行控制,不要采用 QImage 或 QPixmap,而是使用 QImageReader

代码解析:

  1. 创建 QImageReader 对象,方便对图片进行更多的操作

  2. 自适应伸缩,将宽度限定为 800,自适应计算高度应该是多少,而后设置要缩放的大小

  3. 将设置好的图像读入为 QImage 类型,而后程序里将其转为 QPixmap 类型

  4. 正常方法设置即可,超清图像完美被加载

上述就是小编为大家分享的使用PyQt5怎么显示超清高分辨率图片了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 使用PyQt5怎么显示超清高分辨率图片

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

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

猜你喜欢
  • 使用PyQt5怎么显示超清高分辨率图片
    这期内容当中小编将会给大家带来有关使用PyQt5怎么显示超清高分辨率图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。常规加载先来看一下,如何借助 QLabel 和 QFileDialog 加载低分辨率的...
    99+
    2023-06-14
  • PyQt5 显示超清高分辨率图片的方法
    目录常规加载QImageReader 类昨天写程序遇到一个问题,pyqt5 加载常规的图片完全可以显示。可当加载超清的高分辨率图片时,只能显示一个小角落。可我就想把一张 3840&#...
    99+
    2024-04-02
  • python怎么提高图片的分辨率
    要提高图片的分辨率,可以使用Python的图像处理库,如PIL(Pillow)或OpenCV。下面是使用PIL库来提高图片分辨率的示...
    99+
    2023-09-20
    python
  • Win8.1设置图片文件以分辨率排序显示分辨率信息
      Win8.1中图片文件以详细信息显示时,还可以在文件上方的详细信息项目标题栏空白处右键,添加分辨率显示,使图片文件除了显示大小、日期、类型外,还显示出分辨率信息。   那么有的朋友可能会说,我想让Wi...
    99+
    2022-06-04
    分辨率 文件 图片
  • windows怎么调节图片分辨率
    这篇文章主要介绍“windows怎么调节图片分辨率”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“windows怎么调节图片分辨率”文章能帮助大家解决问题。调节图片分辨率的方法首先点击文件,然后打开,...
    99+
    2023-07-01
  • Pytorch怎么搭建SRGAN平台提升图片超分辨率
    本篇内容介绍了“Pytorch怎么搭建SRGAN平台提升图片超分辨率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!网络构建一、什么是SRGA...
    99+
    2023-06-30
  • 电脑怎么查看图片分辨率
    这篇文章主要介绍电脑怎么查看图片分辨率,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法/步骤:双击打开“此电脑”图标,随后选择图片右上角的“查看”按键。在出现的界面中点击“详细信息窗格”;如图所示:此时在文件夹(文...
    99+
    2023-06-27
  • ubuntu xrandr怎么修改显示器分辨率
    本篇内容主要讲解“ubuntu xrandr怎么修改显示器分辨率”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ubuntu xrandr怎么修改显示器分辨率”吧!ubuntu xrandr修改分...
    99+
    2023-06-13
  • Python怎么实现修改图片分辨率
    小编给大家分享一下Python怎么实现修改图片分辨率,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!环境依赖ffmpeg环境安装,可以参考:windows ffmpeg安装部署ffmpy安装:pip install...
    99+
    2023-06-22
  • vbs中怎么利用Shell.Application获取图片分辨率
    今天就跟大家聊聊有关vbs中怎么利用Shell.Application获取图片分辨率,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 代码如下:Path =&nbs...
    99+
    2023-06-08
  • java怎么压缩图片大小不改变图片分辨率
    在Java中可以使用javax.imageio包中的类来压缩图片大小而不改变图片分辨率。下面是一个压缩图片大小的示例代码:```ja...
    99+
    2023-09-14
    java
  • 显示器分辨率没有1440x900怎么办
    如果您的显示器不支持1440x900分辨率,有几种解决方案可以尝试:1. 更改显示器设置:打开计算机的控制面板或系统设置,...
    99+
    2023-09-05
    显示器
  • PyQt5中QtGui.QImage图片显示问题怎么处理
    这篇文章主要介绍PyQt5中QtGui.QImage图片显示问题怎么处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言PyQt是Python语言环境的GUI编程解决方案之一,另外还有PyGTK、wxPython等...
    99+
    2023-06-29
  • Win10文件夹中显示图片更多详细信息比如分辨率等
      不少用户从Win7升级到Win8或Win10后,对这两个系统在一个细节上都有一丝抱怨,抱怨Win8或Win10在文件夹中不能像Win7那样显示图片更多的详细信息,比如分辨率等。其实是可以的,我们来看看在Win10中如...
    99+
    2023-06-09
    Win10 文件夹 详细信息 分辨率 图片
  • 如何实现大图片根据分辨率自适应宽度仍居中显示
    这篇文章主要介绍“如何实现大图片根据分辨率自适应宽度仍居中显示”,在日常操作中,相信很多人在如何实现大图片根据分辨率自适应宽度仍居中显示问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • 使用python怎么读取图片并显示
    今天就跟大家聊聊有关使用python怎么读取图片并显示,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。OpenCVOpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学...
    99+
    2023-06-14
  • c#怎么用窗口显示图片
    在 c# 应用程序中,使用 picturebox 控件可实现图像显示功能,步骤如下:创建新项目和 picturebox 控件。设置图像文件路径。在窗体加载事件中加载图像。调整图像大小(可...
    99+
    2024-05-11
    c#
  • css中怎么判断不同分辨率显示不同宽度布局
    本篇文章给大家分享的是有关css中怎么判断不同分辨率显示不同宽度布局,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用CSS单词与语法代码如下...
    99+
    2024-04-02
  • VirtualBox怎么使用VBoxManage命令调整分辨率
    VirtualBox是一款用于虚拟化的软件,可以在主机上运行多个虚拟操作系统。 VBoxManage命令是VirtualBox的命令...
    99+
    2023-10-24
    VirtualBox
  • 怎么用CSS background 控制显示图片的一部分
    本篇内容介绍了“怎么用CSS background 控制显示图片的一部分”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作