Ian,
The FreeImageClass is a wrapper around the functions in the FreeImage.dll and those are documented in the FreeImage docs on sourceforge. Open FreeImCl.inc/clw and look at the iImage interface definition for many of the things you can do without the image control. The code for the image control class is in cfiImgCt.inc/clw but you wouldn't use that when you only want to manipulate an image without displaying it.
For instance, here are the rescale methods:
Rescale Procedure(*Real fPercentX, *Real fPercentY, UNSIGNED fiFilter),BOOL,Proc
Rescale Procedure(*Real fPercent, UNSIGNED fiFilter),BOOL,Proc
Rescale Procedure(UNSIGNED nDstWidth, UNSIGNED nDstHeight, UNSIGNED fiFilter),BOOL,Proc
Rescale Procedure(*iImage dstImage, Real fPercent, UNSIGNED fiFilter),BOOL,Proc
Rescale Procedure(*iImage dstImage, UNSIGNED nDstWidth, UNSIGNED nDstHeight, UNSIGNED fiFilter),BOOL,Proc
if you look at the implementation in FreeImCl.clw you'll find that four of the methods all call the fifth one using different arguments. And that fifth method calls FreeImage_Rescale() the dll function. You can find the freeimage api prototyped in FreeImg.inc.
You'll notice that a number of methods take or return iImage interfaces. To use these you'll need more than one freeimageclass object to pass as an argument. As an example the Thumbnail method declares a temp freeimage class to pass the interface (eventually) to the rescale method like this:
!--------------------------------------------------------------------------
FreeImageClass.iImage.Thumbnail Procedure(UNSIGNED nDstWidth, FREE_IMAGE_FILTER fiFilter)
!--------------------------------------------------------------------------
dstImageCl FreeImageClass
Code
dstImageCl.bRetainImage = True
Self.iImage.Thumbnail(dstImageCl.iImage, nDstWidth, fiFilter)
Return Self.iImage.ReplaceImage(dstImageCl.pImage)
The methods work like this because many of the freeimage functions return a new image, setting the destination image's bRetainImage property ensures the temp object does not destroy the image while it's cleaning things up.
So in general, if you want to change the image you loaded, use the methods that don't have an iImage interface as a parameter. And declare another freeimage object to pass to the ones that do.
There are some example apps and prjs installed too.
If you have questions, just shout.
Larry