- Main Page
- Classes
- Files

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# fipMultiPage Class Reference

`#include <FreeImagePlus.h>`

Inheritance diagram for fipMultiPage:

List of all members.

## Detailed Description

Multi-page file stream.

fipMultiPage encapsulates the multi-page API. It supports reading/writing multi-page TIFF, ICO and GIF files.

## Public Member Functions
| fipMultiPage (BOOL keep_cache_in_memory=FALSE)
| Constructor.
virtual | ~fipMultiPage ()
| Destructor Close the file stream if not already done.
BOOL | isValid () const
| Returns TRUE if the multi-page stream is opened.
BOOL | open (const char *lpszPathName, BOOL create_new, BOOL read_only, int flags=0)
| Open a file stream.
BOOL | open (fipMemoryIO &memIO, int flags=0)
| Open a multi-page memory stream as read only.
BOOL | close (int flags=0)
| Close a file stream.
int | getPageCount () const
| Returns the number of pages currently available in the multi-paged bitmap.
void | appendPage (fipImage &image)
| Appends a new page to the end of the bitmap.
void | insertPage (int page, fipImage &image)
| Inserts a new page before the given position in the bitmap.
void | deletePage (int page)
| Deletes the page on the given position.
BOOL | movePage (int target, int source)
| Moves the source page to the position of the target page.
FIBITMAP * | lockPage (int page)
| Locks a page in memory for editing.
void | unlockPage (fipImage &image, BOOL changed)
| Unlocks a previously locked page and gives it back to the multi-page engine.
BOOL | getLockedPageNumbers (int *pages, int *count) const
| Returns an array of page-numbers that are currently locked in memory.
## Protected Attributes
FIMULTIBITMAP * | _mpage
| Pointer to a multi-page file stream.
BOOL | _bMemoryCache
| TRUE when using a memory cache, FALSE otherwise.

## Constructor & Destructor Documentation

fipMultiPage::fipMultiPage | ( | BOOL | keep_cache_in_memory = `FALSE` | ) |

Constructor.

Parameters:

  | keep_cache_in_memory | When it is TRUE, all gathered bitmap data in the page manipulation process is kept in memory, otherwise it is lazily flushed to a temporary file on the hard disk in 64 Kb blocks.

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

Destructor Close the file stream if not already done.

## Member Function Documentation

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

Returns TRUE if the multi-page stream is opened.

Implements fipObject.

BOOL fipMultiPage::open | ( | const char * | lpszPathName,
|  | BOOL | create_new,
|  | BOOL | read_only,
|  | int | flags = `0` |
| ) |  |  |

Open a file stream.

Parameters:

  | lpszPathName | Name of the multi-page bitmap file
  | create_new | When TRUE, it means that a new bitmap will be created rather than an existing one being opened
  | read_only | When TRUE the bitmap is opened read-only
  | flags | Load flags. The signification of this flag depends on the image to be loaded.

Returns:
  Returns TRUE if successful, returns FALSE otherwise

See also:
  FreeImage_OpenMultiBitmap

BOOL fipMultiPage::open | ( | fipMemoryIO & | memIO,
|  | int | flags = `0` |
| ) |  |  |

Open a multi-page memory stream as read only.

Parameters:

  | memIO | Memory stream. The memory stream MUST BE a wrapped user buffer.
  | flags | Load flags. The signification of this flag depends on the image to be loaded.

Returns:
  Returns TRUE if successful, returns FALSE otherwise

See also:
  FreeImage_LoadMultiBitmapFromMemory

BOOL fipMultiPage::close | ( | int | flags = `0` | ) |

Close a file stream.

Parameters:

  | flags | Save flags. The signification of this flag depends on the image to be saved.

Returns:
  Returns TRUE if successful, returns FALSE otherwise

See also:
  FreeImage_CloseMultiBitmap

int fipMultiPage::getPageCount | ( |  | ) | const

Returns the number of pages currently available in the multi-paged bitmap.

See also:
  FreeImage_GetPageCount

void fipMultiPage::appendPage | ( | fipImage & | image | ) |

Appends a new page to the end of the bitmap.

Parameters:

  | image | Image to append

See also:
  FreeImage_AppendPage

void fipMultiPage::insertPage | ( | int | page,
|  | fipImage & | image |
| ) |  |  |

Inserts a new page before the given position in the bitmap.

Parameters:

  | page | Page number. Page has to be a number smaller than the current number of pages available in the bitmap.
  | image | Image to insert

See also:
  FreeImage_InsertPage

void fipMultiPage::deletePage | ( | int | page | ) |

Deletes the page on the given position.

Parameters:

  | page | Page number

See also:
  FreeImage_DeletePage

BOOL fipMultiPage::movePage | ( | int | target,
|  | int | source |
| ) |  |  |

Moves the source page to the position of the target page.

Parameters:

  | target | Target page position
  | source | Source page position

Returns:
  Returns TRUE if successful, returns FALSE otherwise

See also:
  FreeImage_MovePage

FIBITMAP* fipMultiPage::lockPage | ( | int | page | ) |

Locks a page in memory for editing.

You must call unlockPage to free the page
Usage :

    	fipMultiPage mpage;
    ...
    	fipImage image;		// You must declare this before
    	image = mpage.lockPage(2);
    	if(image.isValid()) {
    ...
    	  mpage.unlockPage(image, TRUE);
    	}

Parameters:

  | page | Page number

Returns:
  Returns the page if successful, returns NULL otherwise

See also:
  FreeImage_LockPage

void fipMultiPage::unlockPage | ( | fipImage & | image,
|  | BOOL | changed |
| ) |  |  |

Unlocks a previously locked page and gives it back to the multi-page engine.

Parameters:

  | image | Page to unlock
  | changed | When TRUE, the page is marked changed and the new page data is applied in the multi-page bitmap.

See also:
  FreeImage_UnlockPage

BOOL fipMultiPage::getLockedPageNumbers | ( | int * | pages,
|  | int * | count |
| ) |  |  | const

Returns an array of page-numbers that are currently locked in memory.

When the pages parameter is NULL, the size of the array is returned in the count variable. You can then allocate the array of the desired size and call getLockedPageNumbers again to populate the array.

Returns:
  Returns TRUE if successful, returns FALSE otherwise

See also:
  FreeImage_GetLockedPageNumbers

## Member Data Documentation

FIMULTIBITMAP* fipMultiPage::_mpage`[protected]`

Pointer to a multi-page file stream.

BOOL fipMultiPage::_bMemoryCache`[protected]`

TRUE when using a memory cache, FALSE otherwise.

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

- FreeImagePlus.h