读取和写入图像文件#
读取图像最常见的方式是通过使用 QImage
和 QPixmap
的构造函数,或调用 QImage::load() 和 load()
函数。此外,Qt 还提供了 QImageReader
类,该类提供了更多的过程控制。根据底层对图像格式的支持,该类提供的函数可以节省内存并加快图像加载速度。
同样,Qt 还提供了 QImageWriter
类,它支持在存储图像之前设置特定于格式的选项,例如伽玛级别、压缩级别和质量。如果您不需要这些选项,则可以使用 QImage::save() 或 save()
代替。
QMovie
QMovie
是一个用于显示动画的便捷类,它在内部使用QImageReader
类。一旦创建,QMovie
类提供各种功能来运行和控制指定的动画。
QImageReader
和 QImageWriter
类依赖于 QImageIOHandler
类,它是 Qt 中所有图像格式的通用图像 I/O 接口。QImageIOHandler
对象由 QImageReader
和 QImageWriter
内部使用,以便向 Qt 添加对不同图像格式的支持。
支持的文件格式清单可通过 supportedImageFormats()
和 supportedImageFormats()
函数获取。Qt 默认支持多种文件格式,并且可以通过插件添加新的格式。目前支持的格式列在 QImageReader
和 QImageWriter
类的文档中。
Qt 的插件机制也可以用来编写自定义图像格式处理器。这通过继承 QImageIOHandler
类来实现,并创建一个 QImageIOPlugin
对象,它是用于创建 QImageIOHandler
对象的工厂。当插件安装后,QImageReader
和 QImageWriter
将自动加载插件并开始使用它。