我正在尝试通过 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(使用前将#替换为@)