Qt Image Formats

核心 Qt GUI 库默认支持读取和写入的最常见文件格式图像文件: PNG , JPEG , BMP , GIF 及更多,参考。 读写图像文件 。Qt Image Formats 附件模块提供对其它图像文件格式的可选支持。

通过 Qt 图像 I/O 系统插件,透明地提供文件格式支持。因此,此模块不提供自己的 API。相反,访问功能的办法如同 Qt 中的其它图像 I/O:透过 QImage::load () 和 QImage::save ()。或者,对于更细致控制,透过 QImageReader and QImageWriter .

图像 I/O 插件

文件格式的实际编码和解码,是由编解码器库完成的。编解码器可以是 Qt 或第 3 方代码。若是第 3 方编解码器,构建过程中将在系统库中查找它。若没有找到,可能回退到使用捆绑副本 (在 src/3rdparty ).

格式 描述 支持 第 3 方编解码器
ICNS Apple 图标图像 读/写 No
JP2 联合摄影专家组 2000 读/写 Yes (未捆绑)
MNG 多图像网络图形 读取 Yes (未捆绑)
TGA Truevision 图形适配器 读取 No
TIFF 标签化图像文件格式 读/写 Yes (捆绑)
WBMP 无线位图 读/写 No
WEBP WebP 读/写 Yes (捆绑)

注意: 某些捆绑第 3 方编解码器已不再维护。提供它们只为手工构建,在系统库不可用的情况下不会用作回退。

注意: 出于安全原因,从 Qt 5.8 起,默认情况下不构建 DDS (直接绘制表面) 处理程序。仍想要此处理程序的用户,可以从源代码工程构建它。

部署

当构建时,Qt Image Formats 插件作为动态库位于运行时插件目录下 (通常 plugins/imageformats ),同默认图片格式插件一起。可以按如其它插件的相同办法将它们部署到目标系统,见 部署插件 文档编制。

模块演变

Qt Image Formats 的变化 列出了 Qt 的 Qt 6 系列在模块 API 和功能方面所做出的重要改变。

许可和归属

Qt Image Formats 在商业许可下是可用的来自 Qt 公司 。此外,它是可用的在 GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。

此外,Qt Image Formats 潜在包含的第 3 方模块遵循以下准许许可:

安全注意事项

由于这些文件格式很少使用,因此编解码器可能没有对潜在的安全性漏洞进行彻底调试。和往常一样,当创建可能用于解码不受控制的数据文件的应用程序时,应格外小心。