Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

fipMultiPage Class Reference

#include <FreeImagePlus.h>

Inheritance diagram for fipMultiPage:

fipObject 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.
 ~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 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.

fipMultiPage::~fipMultiPage  ) 
 

Destructor Close the file stream if not already done.


Member Function Documentation

void fipMultiPage::appendPage fipImage image  ) 
 

Appends a new page to the end of the bitmap.

Parameters:
image Image to append
See also:
FreeImage_AppendPage

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

void fipMultiPage::deletePage int  page  ) 
 

Deletes the page on the given position.

Parameters:
page Page number
See also:
FreeImage_DeletePage

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

int fipMultiPage::getPageCount  )  const
 

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

See also:
FreeImage_GetPageCount

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

BOOL fipMultiPage::isValid  )  const [virtual]
 

Returns TRUE if the multi-page stream is opened.

Implements fipObject.

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

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

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

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


Member Data Documentation

BOOL fipMultiPage::_bMemoryCache [protected]
 

TRUE when using a memory cache, FALSE otherwise.

FIMULTIBITMAP* fipMultiPage::_mpage [protected]
 

Pointer to a multi-page file stream.


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