# FreeImagePlus

# fipMemoryIO Class Reference

`#include <FreeImagePlus.h>`

Inheritance diagram for fipMemoryIO:

List of all members.

## Detailed Description

Memory handle.

fipMemoryIO is a class that allows you to load / save images from / to a memory stream.

Version:
  FreeImage 3

Author:
  Hervé Drolon

## Public Member Functions

| fipMemoryIO (BYTE *data=NULL, DWORD size_in_bytes=0)
| Constructor.
virtual | ~fipMemoryIO ()
| Destructor.
void | close ()
| Destructor.
BOOL | isValid () const
| Returns TRUE if the internal memory buffer is a valid buffer, returns FALSE otherwise.
FREE_IMAGE_FORMAT | getFileType () const
| Returns the buffer image format.
| operator FIMEMORY * ()
| Returns a pointer to the FIMEMORY data.
Memory IO routines
FIBITMAP * | load (FREE_IMAGE_FORMAT fif, int flags=0) const
| Loads a dib from a memory stream.
FIMULTIBITMAP * | loadMultiPage (FREE_IMAGE_FORMAT fif, int flags=0) const
| Loads a multi-page bitmap from a memory stream.
BOOL | save (FREE_IMAGE_FORMAT fif, FIBITMAP *dib, int flags=0)
| Saves a dib to a memory stream.
BOOL | saveMultiPage (FREE_IMAGE_FORMAT fif, FIMULTIBITMAP *bitmap, int flags=0)
| Saves a multi-page bitmap to a memory stream.
unsigned | read (void *buffer, unsigned size, unsigned count) const
| Reads data from a memory stream.
unsigned | write (const void *buffer, unsigned size, unsigned count)
| Writes data to a memory stream.
long | tell () const
| Gets the current position of a memory pointer.
BOOL | seek (long offset, int origin)
| Moves the memory pointer to a specified location.
BOOL | acquire (BYTE **data, DWORD *size_in_bytes)
| Provides a direct buffer access to a memory stream.

## Protected Attributes

FIMEMORY * | _hmem
| Pointer to a memory stream.

## Constructor & Destructor Documentation

fipMemoryIO::fipMemoryIO | ( | BYTE * | data = `NULL`,
|  | DWORD | size_in_bytes = `0` |
| ) |  |  |

Constructor.

Wrap a memory buffer containing image data.
The memory buffer is read only and has to be freed by the user when no longer in use.
When default arguments are used, open a memory file as read/write.

Parameters:

  | data | Pointer to the memory buffer
  | size_in_bytes | Buffer size in bytes

See also:
  FreeImage_OpenMemory

virtual fipMemoryIO::~fipMemoryIO | ( |  | ) | `[virtual]`

Destructor.

Free any allocated memory

See also:
  FreeImage_CloseMemory

## Member Function Documentation

void fipMemoryIO::close | ( |  | ) |

Destructor.

Free any allocated memory and invalidate the stream

See also:
  FreeImage_CloseMemory

BOOL fipMemoryIO::isValid | ( |  | ) | const`[virtual]`

Returns TRUE if the internal memory buffer is a valid buffer, returns FALSE otherwise.

Implements fipObject.

FREE_IMAGE_FORMAT fipMemoryIO::getFileType | ( |  | ) | const

Returns the buffer image format.

See also:
  FreeImage_GetFileTypeFromMemory

fipMemoryIO::operator FIMEMORY * | ( |  | ) | `[inline]`

Returns a pointer to the FIMEMORY data.

Used for direct access from FREEIMAGE functions or from your own low level C functions.

FIBITMAP* fipMemoryIO::load | ( | FREE_IMAGE_FORMAT | fif,
|  | int | flags = `0` |
| ) |  |  | const

Loads a dib from a memory stream.

Parameters:

  | fif | Format identifier (FreeImage format)
  | flags | The signification of this flag depends on the image to be loaded.

Returns:
  Returns the loaded dib if successful, returns NULL otherwise

See also:
  FreeImage_LoadFromMemory

FIMULTIBITMAP* fipMemoryIO::loadMultiPage | ( | FREE_IMAGE_FORMAT | fif,
|  | int | flags = `0` |
| ) |  |  | const

Loads a multi-page bitmap from a memory stream.

Parameters:

  | fif | Format identifier (FreeImage format)
  | flags | The signification of this flag depends on the multi-page to be loaded.

Returns:
  Returns the loaded multi-page if successful, returns NULL otherwise

See also:
  FreeImage_LoadMultiBitmapFromMemory

BOOL fipMemoryIO::save | ( | FREE_IMAGE_FORMAT | fif,
|  | FIBITMAP * | dib,
|  | int | flags = `0` |
| ) |  |  |

Saves a dib to a memory stream.

Parameters:

  | fif | Format identifier (FreeImage format)
  | dib | Image to be saved
  | flags | The signification of this flag depends on the image to be saved.

Returns:
  Returns TRUE if successful, returns FALSE otherwise

See also:
  FreeImage_SaveToMemory

BOOL fipMemoryIO::saveMultiPage | ( | FREE_IMAGE_FORMAT | fif,
|  | FIMULTIBITMAP * | bitmap,
|  | int | flags = `0` |
| ) |  |  |

Saves a multi-page bitmap to a memory stream.

Parameters:

  | fif | Format identifier (FreeImage format)
  | bitmap | Multi-page image to be saved
  | flags | The signification of this flag depends on the image to be saved.

Returns:
  Returns TRUE if successful, returns FALSE otherwise

See also:
  FreeImage_SaveMultiBitmapToMemory

unsigned fipMemoryIO::read | ( | void * | buffer,
|  | unsigned | size,
|  | unsigned | count |
| ) |  |  | const

Reads data from a memory stream.

Parameters:

  | buffer | Storage location for data
  | size | Item size in bytes
  | count | Maximum number of items to be read

Returns:
  Returns the number of full items actually read, which may be less than count if an error occurs

See also:
  FreeImage_ReadMemory

unsigned fipMemoryIO::write | ( | const void * | buffer,
|  | unsigned | size,
|  | unsigned | count |
| ) |  |  |

Writes data to a memory stream.

Parameters:

  | buffer | Pointer to data to be written
  | size | Item size in bytes
  | count | Maximum number of items to be written

Returns:
  Returns the number of full items actually written, which may be less than count if an error occurs

See also:
  FreeImage_WriteMemory

long fipMemoryIO::tell | ( |  | ) | const

Gets the current position of a memory pointer.

See also:
  FreeImage_TellMemory

BOOL fipMemoryIO::seek | ( | long | offset,
|  | int | origin |
| ) |  |  |

Moves the memory pointer to a specified location.

See also:
  FreeImage_SeekMemory

BOOL fipMemoryIO::acquire | ( | BYTE ** | data,
|  | DWORD * | size_in_bytes |
| ) |  |  |

Provides a direct buffer access to a memory stream.

Parameters:

  | data | Pointer to the memory buffer (returned value)
  | size_in_bytes | Buffer size in bytes (returned value)

See also:
  FreeImage_AcquireMemory

## Member Data Documentation

FIMEMORY* fipMemoryIO::_hmem `[protected]`

Pointer to a memory stream.

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

- FreeImagePlus.h