Exiv2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Static Public Member Functions | Friends
Exiv2::ImageFactory Class Reference

Returns an Image instance of the specified type. More...

#include <image.hpp>

List of all members.

Static Public Member Functions

static Image::AutoPtr open (const std::string &path)
 Create an Image subclass of the appropriate type by reading the specified file. Image type is derived from the file contents.
static Image::AutoPtr open (const byte *data, long size)
 Create an Image subclass of the appropriate type by reading the provided memory. Image type is derived from the memory contents.
static Image::AutoPtr open (BasicIo::AutoPtr io)
 Create an Image subclass of the appropriate type by reading the provided BasicIo instance. Image type is derived from the data provided by io. The passed in io instance is (re)opened by this method.
static Image::AutoPtr create (int type, const std::string &path)
 Create an Image subclass of the requested type by creating a new image file. If the file already exists, it will be overwritten.
static Image::AutoPtr create (int type)
 Create an Image subclass of the requested type by creating a new image in memory.
static Image::AutoPtr create (int type, BasicIo::AutoPtr io)
 Create an Image subclass of the requested type by writing a new image to a BasicIo instance. If the BasicIo instance already contains data, it will be overwritten.
static int getType (const std::string &path)
 Returns the image type of the provided file.
static int getType (const byte *data, long size)
 Returns the image type of the provided data buffer.
static int getType (BasicIo &io)
 Returns the image type of data provided by a BasicIo instance. The passed in io instance is (re)opened by this method.
static AccessMode checkMode (int type, MetadataId metadataId)
 Returns the access mode or supported metadata functions for an image type and a metadata type.
static bool checkType (int type, BasicIo &io, bool advance)
 Determine if the content of io is an image of type.

Friends

bool Image::good () const

Detailed Description

Returns an Image instance of the specified type.

The factory is implemented as a static class.


Member Function Documentation

AccessMode Exiv2::ImageFactory::checkMode ( int  type,
MetadataId  metadataId 
)
static

Returns the access mode or supported metadata functions for an image type and a metadata type.

Parameters:
typeThe image type.
metadataIdThe metadata identifier.
Returns:
Access mode for the requested image type and metadata identifier.
Exceptions:
Error(13)if the image type is not supported.

References Exiv2::find().

bool Exiv2::ImageFactory::checkType ( int  type,
BasicIo io,
bool  advance 
)
static

Determine if the content of io is an image of type.

The advance flag determines if the read position in the stream is moved (see below). This applies only if the type matches and the function returns true. If the type does not match, the stream position is not changed. However, if reading from the stream fails, the stream position is undefined. Consult the stream state to obtain more information in this case.

Parameters:
typeType of the image.
ioBasicIo instance to read from.
advanceFlag indicating whether the position of the io should be advanced by the number of characters read to analyse the data (true) or left at its original position (false). This applies only if the type matches.
Returns:
true if the data matches the type of this class;
false if the data does not match

References Exiv2::find().

Referenced by Exiv2::Image::good().

Image::AutoPtr Exiv2::ImageFactory::create ( int  type,
const std::string &  path 
)
static

Create an Image subclass of the requested type by creating a new image file. If the file already exists, it will be overwritten.

Parameters:
typeType of the image to be created.
pathImage file to create. File extension is ignored.
Returns:
An auto-pointer that owns an Image instance of the requested type.
Exceptions:
ErrorIf the image type is not supported.

References Exiv2::FileIo::close(), Exiv2::FileIo::open(), and Exiv2::strError().

Referenced by create().

Image::AutoPtr Exiv2::ImageFactory::create ( int  type)
static

Create an Image subclass of the requested type by creating a new image in memory.

Parameters:
typeType of the image to be created.
Returns:
An auto-pointer that owns an Image instance of the requested type.
Exceptions:
ErrorIf the image type is not supported

References create().

Image::AutoPtr Exiv2::ImageFactory::create ( int  type,
BasicIo::AutoPtr  io 
)
static

Create an Image subclass of the requested type by writing a new image to a BasicIo instance. If the BasicIo instance already contains data, it will be overwritten.

Parameters:
typeType of the image to be created.
ioAn auto-pointer that owns a BasicIo instance that will be written to when creating a new image.
Note:
This method takes ownership of the passed in BasicIo instance through the auto-pointer. Callers should not continue to use the BasicIo instance after it is passed to this method. Use the Image::io() method to get a temporary reference.
Returns:
An auto-pointer that owns an Image instance of the requested type. If the image type is not supported, the pointer is 0.

References Exiv2::find().

int Exiv2::ImageFactory::getType ( const std::string &  path)
static

Returns the image type of the provided file.

Parameters:
pathImage file. The contents of the file are tested to determine the image type. File extension is ignored.
Returns:
Image type or Image::none if the type is not recognized.

Referenced by getType().

int Exiv2::ImageFactory::getType ( const byte data,
long  size 
)
static

Returns the image type of the provided data buffer.

Parameters:
dataPointer to a data buffer containing an image. The contents of the memory are tested to determine the image type.
sizeNumber of bytes pointed to by data.
Returns:
Image type or Image::none if the type is not recognized.

References getType().

int Exiv2::ImageFactory::getType ( BasicIo io)
static

Returns the image type of data provided by a BasicIo instance. The passed in io instance is (re)opened by this method.

Parameters:
ioA BasicIo instance that provides image data. The contents of the image data are tested to determine the type.
Returns:
Image type or Image::none if the type is not recognized.

References Exiv2::ImageType::none, and Exiv2::BasicIo::open().

Image::AutoPtr Exiv2::ImageFactory::open ( const std::string &  path)
static

Create an Image subclass of the appropriate type by reading the specified file. Image type is derived from the file contents.

Parameters:
pathImage file. The contents of the file are tested to determine the image type. File extension is ignored.
Returns:
An auto-pointer that owns an Image instance whose type matches that of the file.
Exceptions:
ErrorIf opening the file fails or it contains data of an unknown image type.
Examples:
addmoddel.cpp, exifcomment.cpp, exifprint.cpp, iptceasy.cpp, and iptcprint.cpp.

Referenced by Action::Insert::insertThumbnail(), Action::Insert::insertXmpPacket(), open(), Action::Print::printComment(), Action::Print::printList(), Action::Print::printPreviewList(), Action::Print::printSummary(), Exiv2::Rw2Image::readMetadata(), Exiv2::PgfImage::readMetadata(), Action::Rename::run(), Action::Adjust::run(), Action::Erase::run(), Action::Modify::run(), Action::FixIso::run(), Action::FixCom::run(), Action::Extract::writePreviews(), and Action::Extract::writeThumbnail().

Image::AutoPtr Exiv2::ImageFactory::open ( const byte data,
long  size 
)
static

Create an Image subclass of the appropriate type by reading the provided memory. Image type is derived from the memory contents.

Parameters:
dataPointer to a data buffer containing an image. The contents of the memory are tested to determine the image type.
sizeNumber of bytes pointed to by data.
Returns:
An auto-pointer that owns an Image instance whose type matches that of the data buffer.
Exceptions:
ErrorIf the memory contains data of an unknown image type.

References open().

Image::AutoPtr Exiv2::ImageFactory::open ( BasicIo::AutoPtr  io)
static

Create an Image subclass of the appropriate type by reading the provided BasicIo instance. Image type is derived from the data provided by io. The passed in io instance is (re)opened by this method.

Parameters:
ioAn auto-pointer that owns a BasicIo instance that provides image data. The contents of the image data are tested to determine the type.
Note:
This method takes ownership of the passed in BasicIo instance through the auto-pointer. Callers should not continue to use the BasicIo instance after it is passed to this method. Use the Image::io() method to get a temporary reference.
Returns:
An auto-pointer that owns an Image instance whose type matches that of the io data. If no image type could be determined, the pointer is 0.
Exceptions:
ErrorIf opening the BasicIo fails

References Exiv2::ImageType::none, and Exiv2::strError().


The documentation for this class was generated from the following files: