读取和写入图像文件#
读取图像最常见的方式是通过使用 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 将自动加载插件并开始使用它。