Version: 3.2.5
wxImageHandler Class Referenceabstract

#include <wx/image.h>

+ Inheritance diagram for wxImageHandler:

Detailed Description

This is the base class for implementing image file loading/saving, and image creation from data.

It is used within wxImage and is not normally seen by the application.

If you wish to extend the capabilities of wxImage, derive a class from wxImageHandler and add the handler using wxImage::AddHandler in your application initialization.

Note that all wxImageHandlers provided by wxWidgets are part of the wxCore library. For details about the default handlers, please see the section Available image handlers in the wxImage class documentation.

Note (Legal Issue)

This software is based in part on the work of the Independent JPEG Group. (Applies when wxWidgets is linked with JPEG support. wxJPEGHandler uses libjpeg created by IJG.)

Predefined objects/pointers: wxNullImage

Library:  wxCore
Category:  Graphics Device Interface (GDI)
See also
wxImage, wxInitAllImageHandlers()

Public Member Functions

 wxImageHandler ()
 Default constructor. More...
 
virtual ~wxImageHandler ()
 Destroys the wxImageHandler object. More...
 
bool CanRead (wxInputStream &stream)
 Returns true if this handler supports the image format contained in the given stream. More...
 
bool CanRead (const wxString &filename)
 Returns true if this handler supports the image format contained in the file with the given name. More...
 
const wxStringGetExtension () const
 Gets the preferred file extension associated with this handler. More...
 
const wxArrayStringGetAltExtensions () const
 Returns the other file extensions associated with this handler. More...
 
int GetImageCount (wxInputStream &stream)
 If the image file contains more than one image and the image handler is capable of retrieving these individually, this function will return the number of available images. More...
 
const wxStringGetMimeType () const
 Gets the MIME type associated with this handler. More...
 
const wxStringGetName () const
 Gets the name of this handler. More...
 
wxBitmapType GetType () const
 Gets the image type associated with this handler. More...
 
virtual bool LoadFile (wxImage *image, wxInputStream &stream, bool verbose=true, int index=-1)
 Loads an image from a stream, putting the resulting data into image. More...
 
virtual bool SaveFile (wxImage *image, wxOutputStream &stream, bool verbose=true)
 Saves an image in the output stream. More...
 
void SetExtension (const wxString &extension)
 Sets the preferred file extension associated with this handler. More...
 
void SetAltExtensions (const wxArrayString &extensions)
 Sets the alternative file extensions associated with this handler. More...
 
void SetMimeType (const wxString &mimetype)
 Sets the handler MIME type. More...
 
void SetName (const wxString &name)
 Sets the handler name. More...
 
void SetType (wxBitmapType type)
 Sets the bitmap type for the handler. More...
 
- Public Member Functions inherited from wxObject
 wxObject ()
 Default ctor; initializes to NULL the internal reference data. More...
 
 wxObject (const wxObject &other)
 Copy ctor. More...
 
virtual ~wxObject ()
 Destructor. More...
 
virtual wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More...
 
wxObjectRefDataGetRefData () const
 Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More...
 
bool IsKindOf (const wxClassInfo *info) const
 Determines whether this class is a subclass of (or the same class as) the given class. More...
 
bool IsSameAs (const wxObject &obj) const
 Returns true if this object has the same data pointer as obj. More...
 
void Ref (const wxObject &clone)
 Makes this object refer to the data in clone. More...
 
void SetRefData (wxObjectRefData *data)
 Sets the wxObject::m_refData pointer. More...
 
void UnRef ()
 Decrements the reference count in the associated data, and if it is zero, deletes the data. More...
 
void UnShare ()
 This is the same of AllocExclusive() but this method is public. More...
 
void operator delete (void *buf)
 The delete operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 
void * operator new (size_t size, const wxString &filename=NULL, int lineNum=0)
 The new operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 

Static Public Member Functions

static wxVersionInfo GetLibraryVersionInfo ()
 Retrieve the version information about the image library used by this handler. More...
 

Protected Member Functions

virtual int DoGetImageCount (wxInputStream &stream)
 Called to get the number of images available in a multi-image file type, if supported. More...
 
virtual bool DoCanRead (wxInputStream &stream)=0
 Called to test if this handler can read an image from the given stream. More...
 
- Protected Member Functions inherited from wxObject
void AllocExclusive ()
 Ensure that this object's data is not shared with any other object. More...
 
virtual wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
 
virtual wxObjectRefDataCloneRefData (const wxObjectRefData *data) const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More...
 

Additional Inherited Members

- Protected Attributes inherited from wxObject
wxObjectRefDatam_refData
 Pointer to an object which is the object's reference-counted data. More...
 

Constructor & Destructor Documentation

◆ wxImageHandler()

wxImageHandler::wxImageHandler ( )

Default constructor.

In your own default constructor, initialise the members m_name, m_extension and m_type.

◆ ~wxImageHandler()

virtual wxImageHandler::~wxImageHandler ( )
virtual

Destroys the wxImageHandler object.

Member Function Documentation

◆ CanRead() [1/2]

bool wxImageHandler::CanRead ( const wxString filename)

Returns true if this handler supports the image format contained in the file with the given name.

This function doesn't modify the current stream position (because it restores the original position before returning; this however requires the stream to be seekable; see wxStreamBase::IsSeekable).

◆ CanRead() [2/2]

bool wxImageHandler::CanRead ( wxInputStream stream)

Returns true if this handler supports the image format contained in the given stream.

This function doesn't modify the current stream position (because it restores the original position before returning; this however requires the stream to be seekable; see wxStreamBase::IsSeekable).

◆ DoCanRead()

virtual bool wxImageHandler::DoCanRead ( wxInputStream stream)
protectedpure virtual

Called to test if this handler can read an image from the given stream.

NOTE: this function is allowed to change the current stream position since CallDoCanRead() will take care of restoring it later

Implemented in wxXPMHandler, wxTIFFHandler, wxTGAHandler, wxPNMHandler, wxPNGHandler, wxPCXHandler, wxJPEGHandler, wxIFFHandler, and wxGIFHandler.

◆ DoGetImageCount()

virtual int wxImageHandler::DoGetImageCount ( wxInputStream stream)
protectedvirtual

Called to get the number of images available in a multi-image file type, if supported.

NOTE: this function is allowed to change the current stream position since GetImageCount() will take care of restoring it later

Reimplemented in wxTIFFHandler, and wxGIFHandler.

◆ GetAltExtensions()

const wxArrayString& wxImageHandler::GetAltExtensions ( ) const

Returns the other file extensions associated with this handler.

The preferred extension for this handler is returned by GetExtension().

Since
2.9.0

◆ GetExtension()

const wxString& wxImageHandler::GetExtension ( ) const

Gets the preferred file extension associated with this handler.

See also
GetAltExtensions()

◆ GetImageCount()

int wxImageHandler::GetImageCount ( wxInputStream stream)

If the image file contains more than one image and the image handler is capable of retrieving these individually, this function will return the number of available images.

Parameters
streamOpened input stream for reading image data. This function doesn't modify the current stream position (because it restores the original position before returning; this however requires the stream to be seekable; see wxStreamBase::IsSeekable).
Returns
Number of available images. For most image handlers, this is 1 (exceptions are TIFF and ICO formats as well as animated GIFs for which this function returns the number of frames in the animation).

◆ GetLibraryVersionInfo()

static wxVersionInfo wxImageHandler::GetLibraryVersionInfo ( )
static

Retrieve the version information about the image library used by this handler.

This method is not present in wxImageHandler class itself but is present in a few of the classes deriving from it, currently wxJPEGHandler, wxPNGHandler and wxTIFFHandler. It returns the information about the version of the image library being used for the corresponding handler implementation.

Since
2.9.2

◆ GetMimeType()

const wxString& wxImageHandler::GetMimeType ( ) const

Gets the MIME type associated with this handler.

◆ GetName()

const wxString& wxImageHandler::GetName ( ) const

Gets the name of this handler.

◆ GetType()

wxBitmapType wxImageHandler::GetType ( ) const

Gets the image type associated with this handler.

◆ LoadFile()

virtual bool wxImageHandler::LoadFile ( wxImage image,
wxInputStream stream,
bool  verbose = true,
int  index = -1 
)
virtual

Loads an image from a stream, putting the resulting data into image.

If the image file contains more than one image and the image handler is capable of retrieving these individually, index indicates which image to read from the stream.

Parameters
imageThe image object which is to be affected by this operation.
streamOpened input stream for reading image data.
verboseIf set to true, errors reported by the image handler will produce wxLogMessages.
indexThe index of the image in the file (starting from zero).
Returns
true if the operation succeeded, false otherwise.
See also
wxImage::LoadFile, wxImage::SaveFile, SaveFile()

Reimplemented in wxXPMHandler, wxTIFFHandler, wxTGAHandler, wxPNMHandler, wxPNGHandler, wxPCXHandler, wxJPEGHandler, wxIFFHandler, and wxGIFHandler.

◆ SaveFile()

virtual bool wxImageHandler::SaveFile ( wxImage image,
wxOutputStream stream,
bool  verbose = true 
)
virtual

Saves an image in the output stream.

Parameters
imageThe image object which is to be affected by this operation.
streamOpened output stream for writing the data.
verboseIf set to true, errors reported by the image handler will produce wxLogMessages.
Returns
true if the operation succeeded, false otherwise.
See also
wxImage::LoadFile, wxImage::SaveFile, LoadFile()

Reimplemented in wxXPMHandler, wxTIFFHandler, wxTGAHandler, wxPNMHandler, wxPNGHandler, wxPCXHandler, wxJPEGHandler, wxIFFHandler, and wxGIFHandler.

◆ SetAltExtensions()

void wxImageHandler::SetAltExtensions ( const wxArrayString extensions)

Sets the alternative file extensions associated with this handler.

Parameters
extensionsArray of file extensions.
See also
SetExtension()
Since
2.9.0

◆ SetExtension()

void wxImageHandler::SetExtension ( const wxString extension)

Sets the preferred file extension associated with this handler.

Parameters
extensionFile extension without leading dot.
See also
SetAltExtensions()

◆ SetMimeType()

void wxImageHandler::SetMimeType ( const wxString mimetype)

Sets the handler MIME type.

Parameters
mimetypeHandler MIME type.

◆ SetName()

void wxImageHandler::SetName ( const wxString name)

Sets the handler name.

Parameters
nameHandler name.

◆ SetType()

void wxImageHandler::SetType ( wxBitmapType  type)

Sets the bitmap type for the handler.

Parameters
typeThe bitmap type.