Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QImageDecoder Class Reference

The QImageDecoder class is an incremental image decoder for all supported image formats. More...

`#include <qasyncimageio.h>`

List of all member functions.

## Public Members

- QImageDecoder ( QImageConsumer * c )
- ~QImageDecoder ()
- const QImage & image ()
- int decode ( const uchar * buffer, int length )

## Static Public Members

- const char * formatName ( const uchar * buffer, int length )
- QImageFormatType * format ( const char * name )
- QStrList inputFormats ()
- void registerDecoderFactory ( QImageFormatType * f )
- void unregisterDecoderFactory ( QImageFormatType * f )

## Detailed Description

The QImageDecoder class is an incremental image decoder for all supported image formats.

New formats are installed by creating objects of class QImageFormatType; the QMovie class can be used for all installed incremental image formats. QImageDecoder is useful only for creating new ways of feeding data to an QImageConsumer.

A QImageDecoder is a machine that decodes images. It takes encoded image data via its decode() method and expresses its decoding by supplying information to a QImageConsumer. It implements its decoding by using a QImageFormat created by one of the currently-existing QImageFormatType factory-objects.

QImageFormatType and QImageFormat are the classes that you might need to implement support for additional image formats.

Qt supports GIF reading if it is configured that way during installation (see qgif.h). If it is, we are required to state that "The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated. GIF(sm) is a Service Mark property of CompuServe Incorporated."

See also Graphics Classes, Image Processing Classes and Multimedia Classes.

## Member Function Documentation

### QImageDecoder::QImageDecoder ( QImageConsumer * c )

Constructs a QImageDecoder that will send change information to the QImageConsumer c.

### QImageDecoder::~QImageDecoder ()

Destroys a QImageDecoder. The image it built is destroyed. The decoder built by the factory for the file format is destroyed. The consumer for which it decoded the image is not destroyed.

### int QImageDecoder::decode ( const uchar * buffer, int length )

Call this function to decode some data into image changes. The data in buffer will be decoded, sending change information to the QImageConsumer of this QImageDecoder until one of the change functions of the consumer returns FALSE. The length of the data is given in length.

Returns the number of bytes consumed: 0 if consumption is complete, and -1 if decoding fails due to invalid data.

### QImageFormatType * QImageDecoder::format ( const char * name )`[static]`

Returns a QImageFormatType by name. This might be used when the user needs to force data to be interpreted as being in a certain format. name is one of the formats listed by QImageDecoder::inputFormats(). Note that you will still need to supply decodable data to result->decoderFor() before you can begin decoding the data.

### const char * QImageDecoder::formatName ( const uchar * buffer, int length )`[static]`

Call this function to find the name of the format of the given header. The returned string is statically allocated. The function will look at the first length characters in the buffer.

Returns 0 if the format is not recognized.

### const QImage & QImageDecoder::image ()

Returns the image currently being decoded.

### QStrList QImageDecoder::inputFormats ()`[static]`

Returns a sorted list of formats for which asynchronous loading is supported.

### void QImageDecoder::registerDecoderFactory ( QImageFormatType * f )`[static]`

Registers the new QImageFormatType f. This is not needed in application code because factories call this themselves.

### void QImageDecoder::unregisterDecoderFactory ( QImageFormatType * f )`[static]`

Unregisters the QImageFormatType f. This is not needed in application code because factories call this themselves.

This file is part of the Qt toolkit, copyright © 1995-2001 Trolltech, all rights reserved.