PyQt6:如何在 QImageReader 中设置分配限制?

2023-12-07

我正在将应用程序从 PyQt5 更新到 PyQt6。该应用程序使用非常大的图像文件。我已经更新了代码以使用 PyQt6,但是,当我运行 Python 脚本时,我现在收到错误:

QImageIOHandler:拒绝图像,因为它超出了当前分配 限制为 128 兆字节

在这里查看 Qt6 文档:QImageReader::setAllocationLimit()

...和这里:QImageReader::allocationLimit()

文档建议 setAllocationLimit 可用于更改此 128 MB 限制。

我的问题是这些属性似乎没有出现在 Python 版本(PyQt6)中。这是 PyQt6 和 QImageReader 类的文档,并且 setAllocationLimit 和 AllocationLimit 不存在:QImageReader.

我有什么遗漏的吗?我觉得如果我可以在 PyQt6 中访问 setAllocationLimit 它会解决我的问题,但我在任何地方都找不到它。


如果您使用 PySide6,您可以像这样禁用该限制:

QtGui.QImageReader.setAllocationLimit(0)

不需要其他任何东西。

然而,对于 PyQt-6.3.1 及更早版本,此 API 目前尚未包装,这显然是一个错误。同时,解决方法是设置环境变量QT_IMAGEIO_MAXALLOC:

>>> path = 'path/to/large-image.jpg'
>>> os.path.getsize(path) // 1024 // 1024
9
>>> r = QtGui.QImageReader(path)
>>> os.environ['QT_IMAGEIO_MAXALLOC'] = "1"
>>> r.read()
qt.gui.imageio: QImageIOHandler: Rejecting image as it exceeds the current allocation limit of 1 megabytes
>>> os.environ['QT_IMAGEIO_MAXALLOC'] = "10"
>>> r.read()
<PyQt6.QtGui.QImage object at 0x7f1d51857d10>

如果您希望在下一个 PyQt6 版本中看到上述错误得到修复,请在邮件列表。维护者通常非常积极主动,因此应该很快修复它(假设它是一个相对简单的添加)。

UPDATE:

由于OP没有按照上述建议采取行动,我发布了一个请求添加 API。

PS: allocationLimit() and setAllocationLimit()在 PyQt-6.4.1 中添加。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyQt6:如何在 QImageReader 中设置分配限制? 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • 没有名为 crypto.cipher 的模块

    我现在正在尝试加密一段时间 我最近得到了这个基于 python 的密码器 名为PythonCrypter https github com jbertman PythonCrypter 我对 Python 相当陌生 当我尝试通过终端打开 C
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • 如何使用 Unity 的 xml 配置创建和填充 Dictionary

    如何使用 Unity 的 xml 配置创建和填充字典 我需要创建一个字典并使用统一的依赖项引用填充对象 我怎样才能做到这一点 这有效
  • 使用逻辑(布尔)表达式对 Pandas Dataframe 进行切片

    当我尝试使用逻辑表达式对 Pandas 数据框进行切片时 出现异常 我的数据具有以下形式 df GDP norm SP500 Index deflated norm Year 1980 2 121190 0 769400 1981 2 17
  • 访问 javascript 文件 .js 中的 C# 变量

    是否可以使用一些 C 变量创建一个 javascript 文件 像这样的东西 var foo 或者我是否必须在 usercontrol ascx 中创建它们 并将其包含在部分 您不能在 js 文件中包含此代码 因为它不是由 asp net
  • 每个线程或每个调用一个 ZeroMQ 套接字?

    众所周知 ZeroMQ套接字不得共享应用程序线程之间 context t但实例可以 我有一个多线程应用程序 我想让每个线程不时与一个线程交换消息REQ REP socket 对方 事件 异常等 取决于他们正在做什么 他们正在做非 ZeroM
  • 指针递增和赋值

    C 中以下两行 int a int calloc automata size sizeof int int b a 我发现a和b共享同一个地址 如果我们有的话 情况就不是这样了 int a int calloc automata size
  • Spring MVC 与休眠验证不起作用

    我在使用 Spring 进行休眠验证时遇到一些问题 我按照在线教程中的说明做了所有操作 但它不起作用 我只是转到下一页 没有验证错误 import javax validation constraints NotNull import ja
  • Lotus Notes 从文档中获取附件名称

    我正在为 Notes 8 5 2 开发一个 Lotus Notes 插件 用于将电子邮件中的附件保存到硬盘 但是 当我尝试从 Notes 文档中读取附件名称时 我总是得到包含第一个附件名称 一些垃圾数据的相同字符串 protected Ve
  • 如何从 MySQL 数据库中回显换行符?

    我创建了一个简单的墙贴功能 就像在 Facebook 上一样 用户撰写帖子 帖子被提交到数据库 然后回显到网站上 这一切都有效 唯一的问题是 当文本回显到网站上时 换行符却没有回显 所以 我输入 嘿 这是一个帖子 这是一个新段落 它显示为
  • iOS 中的 NSData 和通过 POST 上传图像

    我一直在梳理很多关于在 iOS 中通过 POST 上传图像的帖子 尽管有关此主题的信息很丰富 但我无法正确上传从 iPhone 模拟器照片库中获取的 JPEG 数据 数据一旦到达服务器 就只是一长串十六进制的数据 NSData 不应该只是一
  • 条件 (C) 中可能的分配

    我必须找到数字 a 是两位数的奇数 如果发生错误 include
  • React-Native: ''请从构建脚本中删除 `jcenter()` Maven 存储库的使用...''

    I m build my project after added react native image crop picker But i meet this error Could you please to show me the wa
  • 使用 ControlTemplate 时 ListView 忽略 DataTemplates

    我尝试实现一个多列ListView 一切都工作得很好 直到我尝试设置列表视图项的鼠标悬停和选择外观的样式 因此 我创建了一个 ControlTemplate 请参阅下面的 XAML 当我使用 ControlTemplate 时 列的 Dat
  • -Djava.library.path=... 相当于 System.setProperty("java.library.path", ...)

    我加载一个外部库 该库位于 lib 这两种设置 java library path 的解决方案是否等效 执行jar时在控制台设置路径 java Djava library path lib jar myApplication jar 在加载
  • 动态与对象相同

    在 CLR via C 一书中提到 FCL类型对应的dynamic关键字是System Object 请澄清这一点 It s not从 C 的角度来看 这完全是一样的 但是在编译的代码中 声明为类型的变量dynamic通常 可能总是 与 C
  • 没有互联网连接的同步适配器

    我有一个工作正常的同步适配器 它不需要互联网连接 因为它需要将地址簿与另一个本地存储 我的应用程序 同步 当 Wifi 关闭并且设备没有任何互联网连接时 Android 会在 帐户和同步 设置活动中禁用同步 即使连接关闭 有没有办法让同步适
  • 从列表中删除重复项和原始项

    给定一个字符串列表 我想删除重复项和原始单词 例如 lst a b c c c d e e 输出应该删除重复项 所以像这样 a b d 我不需要保留订单 Use a collections Counter object 然后仅保留那些计数为
  • 关闭交互式 python 会话时结束非守护线程

    请考虑下面的代码 usr bin env python3 import threading import time class MyThread threading Thread def init self super init self
  • 在 Swift 中将 UIView 转换为 .png

    如何将 UIView 转换为图像 我找到了这个将 uiview 转换为 png 图像但我对 Objective C 不太熟悉 我尝试将其翻译成 Swift 但进展不太顺利 有什么帮助吗 UIGraphicsBeginImageContext
  • 如何将自定义数据加载到 keras Cyclegan 示例的 tfds 中?

    按照中的示例https keras io examples generative cyclegan 已加载预先存在的数据集以供实施 我正在尝试添加我的数据集 import tensorflow datasets as tfds data t
  • PyQt6:如何在 QImageReader 中设置分配限制?

    我正在将应用程序从 PyQt5 更新到 PyQt6 该应用程序使用非常大的图像文件 我已经更新了代码以使用 PyQt6 但是 当我运行 Python 脚本时 我现在收到错误 QImageIOHandler 拒绝图像 因为它超出了当前分配 限