Qt 图像格式
默认情况下,Qt 图形库支持读取和写入最常见的文件格式:PNG、JPEG、BMP、GIF 等几种文件,参考读取和写入图像文件。Qt 图像格式附加模块提供了对其他图像文件格式可选的支持。
文件格式支持通过 Qt 图像 I/O 系统插件透明提供。因此,此模块不提供自己的 API。相反,该功能可以通过与 Qt 中其他图像 I/O 相同的方式访问:通过 QImage::load() 和 QImage::save()。或者,通过 QImageReader 和 QImageWriter 获取更详细的控制。
图像 I/O 插件
实际编码和解码文件格式的操作由编解码器库完成。编解码器可以是 Qt 或第三方代码。对于第三方编解码器,构建过程将在系统库中查找它。如果未找到,可能需要回退到使用捆绑的副本(在 src/3rdparty
中)。
格式 | 描述 | 支持 | 第三方编解码器 |
---|---|---|---|
HEIC | 高效视频编码 | 否 | |
- 在 Apple 操作系统中 | 读写 | 是,操作系统内置 | |
ICNS | Apple 图标图像 | 读写 | 否 |
JP2 | 联合图像专家小组 2000 | 读写 | 是(未捆绑) |
- 在 Apple 操作系统中 | 读写 | 是,操作系统内置 | |
MNG | 多图像网络图形 | 读 | 是(未捆绑) |
TGA | Truevision 图形适配器 | 读 | 否 |
TIFF | 标签图像文件格式 | 读写 | 是(已捆绑) |
WBMP | 无线位图 | 读写 | 否 |
WEBP | WebP | 读写 | 是(已捆绑) |
注意: 一些捆绑的第三方编解码器不再维护。它们仅提供给手动构建使用,并在系统库不可用时不作为回退使用。
注意: 出于安全原因,从 Qt 5.8 开始,默认不构建 Direct Draw Surface (DDS) 处理器。仍需要此处理器的用户可以从中期项目构建它。
部署
构建时,Qt 图像格式插件位于运行时插件目录中的动态库中(通常为 plugins/imageformats
),与默认图像格式插件一起。它们可以像其他插件一样部署到目标系统,请参阅部署插件文档。
许可证和归属
Qt 图像格式可以由 Qt 公司 提供商业许可。此外,它还可在 GNU 通用公共许可证第3版 或 GNU 通用公共许可证第2版 下使用。有关更多信息,请参阅 Qt 许可协议。
此外,Qt 图像格式可能包含以下宽松许可的第三方模块:
libtiff 许可协议 | |
BSD 3-clause "新"或"修订"许可 |
安全考虑
由于这些文件格式使用较少,编解码器可能不会被彻底调试以针对潜在的安全漏洞。始终应谨慎创建可能用于解码不受控制的数据文件的应用程序。
© 2024 Qt 公司有限公司。本手册中包含的贡献文档的版权属于其各自的所有者。本手册中提供的内容是根据自由软件基金会发布的 GNU 自由文档许可证第1.3版 的条款许可的。Qt 以及相应的标志是芬兰和/或其他国家/地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。