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 (bundled, unmaintained)
MNG 多图像网络图形 读取 Yes (bundled, unmaintained)
TGA Truevision 图形适配器 读取 No
TIFF TIFF (标签化图像文件格式) 读/写 Yes (捆绑)
WBMP 无线位图 读/写 No
WEBP WebP 读/写 Yes (捆绑)

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

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

部署

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

许可和归属

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

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

JasPer JasPer License
MNG reference library zlib 许可
TIFF Software Distribution (libtiff) libtiff 许可
WebP (libwebp) BSD 3 条款新 (或修订) 许可

安全注意事项

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