Main Page | Modules | Class List | File List | Class Members | File Members

Transformations


Functions

bool CxImage::CircleTransform (int type, long rmax=0, float Koeff=1.0f)
bool CxImage::Crop (const RECT &rect, CxImage *iDst=NULL)
bool CxImage::Crop (long left, long top, long right, long bottom, CxImage *iDst=NULL)
bool CxImage::CropRotatedRectangle (long topx, long topy, long width, long height, float angle, CxImage *iDst=NULL)
bool CxImage::DecreaseBpp (DWORD nbit, bool errordiffusion, RGBQUAD *ppal=0, DWORD clrimportant=0)
bool CxImage::Dither (long method=0)
bool CxImage::Expand (long newx, long newy, RGBQUAD canvascolor, CxImage *iDst=0)
bool CxImage::Expand (long left, long top, long right, long bottom, RGBQUAD canvascolor, CxImage *iDst=0)
bool CxImage::IncreaseBpp (DWORD nbit)
bool CxImage::QIShrink (long newx, long newy, CxImage *const iDst=NULL)
bool CxImage::RedEyeRemove ()
bool CxImage::Resample (long newx, long newy, int mode=1, CxImage *iDst=NULL)
bool CxImage::Resample2 (long newx, long newy, InterpolationMethod const inMethod=IM_BICUBIC2, OverflowMethod const ofMethod=OM_REPEAT, CxImage *const iDst=NULL, bool const disableAveraging=false)
bool CxImage::Rotate (float angle, CxImage *iDst=NULL)
bool CxImage::Rotate180 (CxImage *iDst=NULL)
bool CxImage::Rotate2 (float angle, CxImage *iDst=NULL, InterpolationMethod inMethod=IM_BILINEAR, OverflowMethod ofMethod=OM_BACKGROUND, RGBQUAD *replColor=0, bool const optimizeRightAngles=true, bool const bKeepOriginalSize=false)
bool CxImage::Skew (float xgain, float ygain, long xpivot=0, long ypivot=0, bool bEnableInterpolation=false)
bool CxImage::Thumbnail (long newx, long newy, RGBQUAD canvascolor, CxImage *iDst=0)

Function Documentation

bool CxImage::CircleTransform int  type,
long  rmax = 0,
float  Koeff = 1.0f
[inherited]
 

Perform circle_based transformations.

Parameters:
type - for different transformations
  • 0 for normal (proturberant) FishEye
  • 1 for reverse (concave) FishEye
  • 2 for Swirle
  • 3 for Cilinder mirror
  • 4 for bathroom
rmax - effect radius. If 0, the whole image is processed
Koeff - only for swirle
Author:
Arkadiy Olovyannikov ark(at)msun(dot)ru

bool CxImage::Crop const RECT &  rect,
CxImage iDst = NULL
[inherited]
 

bool CxImage::Crop long  left,
long  top,
long  right,
long  bottom,
CxImage iDst = NULL
[inherited]
 

bool CxImage::CropRotatedRectangle long  topx,
long  topy,
long  width,
long  height,
float  angle,
CxImage iDst = NULL
[inherited]
 

CropRotatedRectangle

Parameters:
topx,topy : topmost and leftmost point of the rectangle (topmost, and if there are 2 topmost points, the left one)
width : size of the right hand side of rect, from (topx,topy) roundwalking clockwise
height : size of the left hand side of rect, from (topx,topy) roundwalking clockwise
angle : angle of the right hand side of rect, from (topx,topy)
iDst : pointer to destination image (if 0, this image is modified)
Author:
[VATI]

bool CxImage::DecreaseBpp DWORD  nbit,
bool  errordiffusion,
RGBQUAD *  ppal = 0,
DWORD  clrimportant = 0
[inherited]
 

Reduces the number of bits per pixel to nbit (1, 4 or 8). ppal points to a valid palette for the final image; if not supplied the function will use a standard palette. ppal is not necessary for reduction to 1 bpp.

bool CxImage::Dither long  method = 0  )  [inherited]
 

Converts the image to B&W using the desired method :

  • 0 = Floyd-Steinberg
  • 1 = Ordered-Dithering (4x4)
  • 2 = Burkes
  • 3 = Stucki
  • 4 = Jarvis-Judice-Ninke
  • 5 = Sierra
  • 6 = Stevenson-Arce
  • 7 = Bayer (4x4 ordered dithering)

bool CxImage::Expand long  newx,
long  newy,
RGBQUAD  canvascolor,
CxImage iDst = 0
[inherited]
 

bool CxImage::Expand long  left,
long  top,
long  right,
long  bottom,
RGBQUAD  canvascolor,
CxImage iDst = 0
[inherited]
 

Expands the borders.

Parameters:
left,top,right,bottom = additional dimensions, should be greater than 0.
canvascolor = border color
iDst = pointer to destination image (if it's 0, this image is modified)
Returns:
true if everything is ok
Author:
[Colin Urquhart]

bool CxImage::IncreaseBpp DWORD  nbit  )  [inherited]
 

Increases the number of bits per pixel of the image.

Parameters:
nbit: 4, 8, 24

bool CxImage::QIShrink long  newx,
long  newy,
CxImage *const  iDst = NULL
[inherited]
 

Faster way to almost properly shrink image. Algorithm produces results comparable with "high resoultion shrink" when resulting image is much smaller (that would be 3 times or more) than original. When resulting image is only slightly smaller, results are closer to nearest pixel. This algorithm works by averaging, but it does not calculate fractions of pixels. It adds whole source pixels to the best destionation. It is not geometrically "correct". It's main advantage over "high" resulution shrink is speed, so it's useful, when speed is most important (preview thumbnails, "map" view, ...). Method is optimized for RGB24 images.

Parameters:
newx,newy - size of destination image (must be smaller than original!)
iDst - pointer to destination image (if it's 0, this image is modified)
Returns:
true if everything is ok
Author:
[bd], 9.2004

bool CxImage::RedEyeRemove  )  [inherited]
 

Use the RedEyeRemove function to remove the red-eye effect that frequently occurs in photographs of humans and animals. You must select the region where the function will filter the red channel.

Returns:
true if everything is ok

bool CxImage::Resample long  newx,
long  newy,
int  mode = 1,
CxImage iDst = NULL
[inherited]
 

Resizes the image. mode can be 0 for slow (bilinear) method , 1 for fast (nearest pixel) method, or 2 for accurate (bicubic spline interpolation) method. The function is faster with 24 and 1 bpp images, slow for 4 bpp images and slowest for 8 bpp images.

bool CxImage::Resample2 long  newx,
long  newy,
InterpolationMethod const  inMethod = IM_BICUBIC2,
OverflowMethod const  ofMethod = OM_REPEAT,
CxImage *const  iDst = NULL,
bool const  disableAveraging = false
[inherited]
 

New simpler resample. Adds new interpolation methods and simplifies code (using GetPixelColorInterpolated and GetAreaColorInterpolated). It also (unlike old method) interpolates alpha layer.

Parameters:
newx,newy - size of resampled image
inMethod - interpolation method to use (see comments at GetPixelColorInterpolated) If image size is being reduced, averaging is used instead (or simultaneously with) inMethod.
ofMethod - what to replace outside pixels by (only significant for bordering pixels of enlarged image)
iDst - pointer to destination CxImage or NULL.
disableAveraging - force no averaging when shrinking images (Produces aliasing. You probably just want to leave this off...)
Author:
***bd*** 2.2004

bool CxImage::Rotate float  angle,
CxImage iDst = NULL
[inherited]
 

bool CxImage::Rotate180 CxImage iDst = NULL  )  [inherited]
 

bool CxImage::Rotate2 float  angle,
CxImage iDst = NULL,
InterpolationMethod  inMethod = IM_BILINEAR,
OverflowMethod  ofMethod = OM_BACKGROUND,
RGBQUAD *  replColor = 0,
bool const  optimizeRightAngles = true,
bool const  bKeepOriginalSize = false
[inherited]
 

Rotates image around it's center. Method can use interpolation with paletted images, but does not change pallete, so results vary. (If you have only four colours in a palette, there's not much room for interpolation.)

Parameters:
angle - angle in degrees (positive values rotate clockwise)
*iDst - destination image (if null, this image is changed)
inMethod - interpolation method used (IM_NEAREST_NEIGHBOUR produces aliasing (fast), IM_BILINEAR softens picture a bit (slower) IM_SHARPBICUBIC is slower and produces some halos...)
ofMethod - overflow method (how to choose colour of pixels that have no source)
replColor - replacement colour to use (OM_COLOR, OM_BACKGROUND with no background colour...)
optimizeRightAngles - call faster methods for 90, 180, and 270 degree rotations. Faster methods are called for angles, where error (in location of corner pixels) is less than 0.25 pixels.
bKeepOriginalSize - rotates the image without resizing.
Author:
***bd*** 2.2004

bool CxImage::Skew float  xgain,
float  ygain,
long  xpivot = 0,
long  ypivot = 0,
bool  bEnableInterpolation = false
[inherited]
 

Parameters:
xgain,ygain : can be from 0 to 1.
xpivot,ypivot : is the center of the transformation.
bEnableInterpolation : if true, enables bilinear interpolation.
Returns:
true if everything is ok

bool CxImage::Thumbnail long  newx,
long  newy,
RGBQUAD  canvascolor,
CxImage iDst = 0
[inherited]
 

Resamples the image with the correct aspect ratio, and fills the borders.

Parameters:
newx,newy = thumbnail size.
canvascolor = border color.
iDst = pointer to destination image (if it's 0, this image is modified).
Returns:
true if everything is ok.
Author:
[Colin Urquhart]


Generated on Mon Oct 11 22:30:18 2004 for CxImage by doxygen 1.3.8