读取和写入图像文件

读取图像的最常见方式是通过QImageQPixmap的构造函数,或者通过调用QImage::load()和load()函数。此外,Qt提供了QImageReader类,该类提供了对过程的更多控制。根据图像格式的底层支持,该类提供的函数可以节省内存并加快图像的加载速度。

同样地,Qt提供了QImageWriter类,它支持在存储图像之前设置特定格式的选项,如伽马级别、压缩级别和质量。如果你不需要这些选项,你可以使用QImage::save()或save()来代替。

QMovie

QMovie 是一个用于显示动画的便利类,内部使用 QImageReader 类。一旦创建,QMovie 类提供了各种函数来运行和控制给定的动画。

../_images/paintsystem-movie.png

QImageReaderQImageWriter 类依赖于 QImageIOHandler 类,这是 Qt 中所有图像格式的通用图像 I/O 接口。QImageIOHandler 对象在内部被 QImageReaderQImageWriter 使用,以向 Qt 添加对不同图像格式的支持。

支持的文件格式列表可以通过supportedImageFormats()supportedImageFormats()函数获取。Qt默认支持多种文件格式,此外还可以通过插件添加新格式。当前支持的格式列在QImageReaderQImageWriter类的文档中。

Qt的插件机制也可以用于编写自定义的图像格式处理器。这是通过从QImageIOHandler类派生,并创建一个QImageIOPlugin对象来实现的,该对象是用于创建QImageIOHandler对象的工厂。当插件安装后,QImageReaderQImageWriter将自动加载插件并开始使用它。