在 py2exe 编译的 Python 脚本中启用 QImage 的 JPEG 支持?

2024-04-27

我正在尝试通过 PyQt4 在 Python 脚本的 QImage 对象中使用 JPEG 图像。

脚本本身工作完美,图像加载并且可以操作和渲染等等。但是,当我尝试使用 py2exe“编译”此脚本时,除了 JPEG 图像之外,一切正常。用等效的 PNG 替换它是可行的,但由于我的程序从网络下载图像,它们并不总是 PNG 格式,而且我无法用另一个库将它们全部转换。

我发现 QImage 的 JPEG 图像支持以及其他图像格式是由 \qt\plugins\imageformats 目录中的一些 DLL 提供的(它们称为 qjpeg4.dll 和 qjpeg4d.dll)。我想我需要在我的可执行文件中以某种方式使用它们,但我不知道如何。我尝试过将它们复制到我的 exe 目录中,但没有成功。我试过了,如此处指出 http://mail.python.org/pipermail/python-list/2006-June/557926.html,将这些文件作为 data_files 包含在 setup.py 脚本中,但运气不佳(看起来它所做的只是将这些文件复制到 exe 的目录,因此无论如何手动复制它们都不会改变任何内容)。

我确信有一些应用程序使用 PyQt 处理 JPEG 图像,他们是如何做到的?这似乎是一项微不足道的任务,但我现在坚持下去。

另外,我希望我的应用程序是跨平台的(否则为什么我要用 Python 编码?),我希望在为 OS X 或 Linux 打包时不会遇到这样的打包问题(这不是唯一的问题)。我会吗?


经过几个小时的解决同样的问题后,我想分享一下在 Windows Vista 上对我有用的解决方案: 使用python2.6

将以下目录复制到 py2exe 生成的 dist 目录中:

C:\Python26\Lib\site-packages\PyQt4\plugins\imageformats

我只是将 imageformats 目录直接放到我的 dist 目录中,没有对 qt.conf 或类似的内容进行任何进一步的修改。我还没有尝试过,但这可能也适用于声子。

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

在 py2exe 编译的 Python 脚本中启用 QImage 的 JPEG 支持? 的相关文章

  • 仅在发布模式下使用 glGenBuffer 时出现未处理的异常 - QT

    我在 Windows 7 上使用 Qt 4 8 发布模式编译项目时遇到了一些问题 调试时一切正常 但在发布时我收到未处理的异常 0xC0000005 访问冲突 我将范围缩小到发生这种情况的行 即生成像素缓冲区的时间 我的第一个猜测是 DLL
  • Qt qDebug() 在 Windows shell 中不起作用

    我正在使用一个qDebug Qt 框架的printf屏幕上有东西 当我从 Qt Creator 运行应用程序时它工作得很好 但是当我尝试从 Windows 执行它时cmd它什么也没显示 为什么会发生这种情况 你必须添加 CONFIG con
  • 在 Qt 服务器上验证用户身份

    我正在尝试使用 C QtTcpSocket 为个人项目 多人国际象棋游戏 实现身份验证系统 我的朋友建议了一种验证用户的方法 但我想问是否有更简单或更好的方法 来自 Python 背景 做这个项目主要是为了加深对 C 的理解 我将发布我朋友
  • QComboBox 下拉项边距

    我想设计我的风格QComboBox为下拉项目留出边距 现在是这样的 我想要这样的东西 我尝试过 QComboBox QAbstractItemView item margin 3px 但它不起作用 你能帮我解决这个问题吗 您想在项目之间设置
  • new 运算符(以及 malloc)无法分配约 450 MB 的内存 [重复]

    这个问题在这里已经有答案了 我正在开发一个程序 该程序在内存中存储大约 2 2 亿个短值的数组 该数据块的分配方式如下 short arrayName new short SIZE OF ARRAY 然后将文件的内容读入内存 在团队中的另一
  • 在没有加载器的情况下实例化内联组件

    有没有办法实例化内联Component 即在同一文件中定义 而不使用Loader 我不太关心使用的性能影响Loader因为我要用很多东西污染我的文件Loader包装纸 我发现从 JavaScript 创建动态 QML 对象 http doc
  • 获取 QListView 中所有可见项目的简单方法

    我正在尝试使用 Qt Framework 开发一个图像库应用程序 应用程序从所选文件夹加载所有图像 并使用 QListView 控件显示这些图像 但现在我想通过仅加载用户可见的图像来减少内存消耗 由于没有直接函数来获取视图中的所有可见项目
  • Qt 为什么使用 QString::number() 而不是 QLocale().toString()?

    我正在开发的应用程序将在许多国家推出 并且需要支持他们的语言 我一直在回顾我的代码并替换以下每个实例 QString number and QString toDouble with QLocale toString and QLocale
  • 如何在Qt 5中的paintEvent上使用mouseMoveEvent?

    我是 Qt 和 c 的新手 所以我遇到了一些困难 我正在尝试创建一个小部件 它可以获取 mouseMoveEvent 位置并在鼠标位置的像素图上绘制椭圆 下面你可以看到代码 include myimage h include
  • 使用自定义 HeaderView 时列排序不起作用

    我正在尝试创建一个TableView具有排序功能 如果我设置TableViewobj 我的自定义HeaderView 单击标题不会排序 即使我的自定义HeaderView不重新实现任何内容 如果我用TableView的标头 hh tv ho
  • QML 中可重用的字体属性[重复]

    这个问题在这里已经有答案了 在 QML 中 我希望能够定义一组字体属性以进行简单的语义重用 例如 代替 Text text This is a header font family Encode Sans weight Font Black
  • 如何在针对 Windows XP 的情况下使用 VS2012 构建 Qt 4/5?

    我正在尝试使用 Visual Studio 2012 构建 Qt 4 8 5 Qt 5 2 1 针对 Windows XP SDK v7 1a 使用 VS2102 编译时 源代码与 SDK v7 1a 存在各种不兼容性 因此无法开箱即用 这
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • PyQt/PySide 中有默认图标吗?

    我正在阅读 PySide 上的教程 我在想 我是否需要为每件事找到自己的图标 或者是否有某种方法可以使用一些内置图标 这样 如果我希望我的小 GUI 在另一个桌面环境上运行 我就不需要找到一套全新的图标 您需要的是 Pyside QIcon
  • 如何在Android中使用QML - QWebView

    我想在 Android 中部署一个 YouTube 应用程序 但它只能在我的电脑上运行 在安卓上不起作用 它不加载任何视频 问题仅出在 QWebView 上 我使用了与此类似的代码 http doc qt io archives qt 5
  • 将 Pyqt GUI 主应用程序作为单独的非阻塞进程运行

    我正在寻找从 python 或 ipython 控制台运行 pyqt GUI 的可能性 基本上 主要思想是使用 Pyqt GUI 就像使用 matplotlib 绘图或图像一样 您可以将参数从控制台传递给 GUI 以查看数据 继续在控制台中
  • Qt QML 数据模型似乎不适用于 C++

    我一直在使用中的示例http doc qt digia com 4 7 qdeclarativemodels html http doc qt digia com 4 7 qdeclarativemodels html这是 QML 声明性数
  • .png 和 .jpg 文件解密

    我正在尝试修改我正在使用的软件的图形资产 出于审美目的 我想很难对图形资产做一些有害的事情 但开发人员对它们进行了加密 我不确定他为什么决定这样做 因为我使用和修改了一堆类似的软件 而这些软件的开发人员并没有打扰 因为我看不出为什么需要加密
  • Q风格所有权

    在 Qt 应用程序中使用样式时 我遇到了一个有趣的问题QStyle所有权 QStyle继承自QObject 通常接受QObject parent作为构造函数参数来管理其子级的生命周期 但QStyle的构造函数没有此构造函数参数 第一个问题
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某

随机推荐