QImageWriter Class Reference
该类为写图片到文件或者其他设备,提供一个格式化独立接口。
#include <QImageWriter>
公共类型:
enum |
ImageWriterError { DeviceError, UnsupportedFormatError, UnknownError } |
公共函数:
QImageWriter () |
|
QImageWriter ( QIODevice * device, const QByteArray & format ) |
|
QImageWriter ( const QString & fileName, const QByteArray & format = QByteArray() ) |
|
~QImageWriter () |
|
bool |
canWrite () const |
int |
compression () const |
QIODevice * |
device () const |
ImageWriterError |
error () const |
QString |
errorString () const |
QString |
fileName () const |
QByteArray |
format () const |
float |
gamma () const |
int |
quality () const |
void |
setCompression ( int compression ) |
void |
setDevice ( QIODevice * device ) |
void |
setFileName ( const QString & fileName ) |
void |
setFormat ( const QByteArray & format ) |
void |
setGamma ( float gamma ) |
void |
setQuality ( int quality ) |
void |
setText ( const QString & key, const QString & text ) |
bool |
supportsOption ( QImageIOHandler::ImageOptionoption ) const |
bool |
write ( const QImage & image ) |
静态公共函数:
QList<QByteArray> |
supportedImageFormats () |
详细描述:
该类支持在存储图片之前,设置格式化特别选项,例如发差系数水平,压缩水平,质量。如果你不需要这些选项,你能使用QImage::save()或者 QPixmap::save()代替。
为了存储一个图片,你开始 通过构造一个QImageWriter对象。 传递一个文件名或者一个设备指针,和图片格式给QImageWriter的构造器。你能然后设置一些选项,就像反差系数(通过setGamma())和质量(通过setQuality()). canWirte()函数返回真,如果QImageWriter能写图片(也就是,图片格式是被支持,并且设备是打开能写入)。调用write()函数来写图片到设备中。
如果任何错误发生,当写图片时。Write()将返回错。你能然后调用error()函数来找到发生的错误类型,或者errorString()函数来获得一个可读的错误描述。
调用supportedImageFormats()函数为一个QImageWriter能读的格式清单。QImageWriter支持所有内建的图片格式,还有那些支持写入的图片格式插件。
成员类型文件:
枚举描述错误,那些当使用QImageWriter写入图片时,发生的错误。
Constant |
Value |
Description |
QImageWriter::DeviceError |
1 |
QImageWriter encountered a device error when writing the image data. Consult your device for more details on what went wrong. |
QImageWriter::UnsupportedFormatError |
2 |
Qt does not support the requested image format. |
QImageWriter::UnknownError |
0 |
An unknown error occurred. If you get this value after callingwrite(), it is most likely caused by a bug in QImageWriter. |
成员函数文件:
构建一个QImageWriter对象。 在写入之前,你必须调用setFormat()函数来设置一个图片格式,然后setDevice()或者setFileName().
返回图片的压缩方法。
compression根据不同的图片格式,此值不同。例如当格式是tiff,你可以设置0和1
QImageWriter writer;
writer.setFormat("png"); // same as writer.setFormat("PNG");
gamma根据不同的图片格式,此值不同。例如当格式是png,你可以设置0.0和0.1
quality根据不同的图片格式,此值不同。例如当格式是jpeg,你可以设置0和100
这是有用的来存储版权信息或者其他的信息。
QImage image("some/image.jpeg");
QImageWriter writer("images/outimage.png", "png");
writer.setText("Author", "John Smith");
writer.write(image);
Format |
Description |
BMP |
Windows Bitmap |
JPG |
Joint Photographic Experts Group |
JPEG |
Joint Photographic Experts Group |
PNG |
Portable Network Graphics |
PPM |
Portable Pixmap |
TIFF |
Tagged Image File Format |
XBM |
X11 Bitmap |
XPM |
X11 Pixmap |