ImageEn, unit imageenproc |
|
Geometric Method Testing
Testing of Geometric Methods
These images were generated using the demo:
\Demos\InputOutput\EveryMethod\EveryMethod.dpr
All Test Results-
Analysis Methods-
Color Adjustment Methods-
Color Depth Methods-
Alpha and Painting Methods-
Effects Methods- Geometric Methods-
Filter Methods-
Smoothing Methods-
Other Methods
// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

CropSel
// Make circular selection of entire image and crop
ImageEnView1.SelectionBase := iesbBitmap;
ImageEnView1.SelectEllipse(ImageEnView1.IEBitmap.Width div 2,
ImageEnView1.IEBitmap.Height div 2,
ImageEnView1.IEBitmap.Width,
ImageEnView1.IEBitmap.Height);
ImageEnView1.Proc.CropSel();

Crop
// Crop 25% of all sides of the image
ImageEnView1.Proc.Crop( ImageEnView1.IEBitmap.Width div 4,
ImageEnView1.IEBitmap.Height div 4,
MulDiv( ImageEnView1.IEBitmap.Width, 3, 4 ),
MulDiv( ImageEnView1.IEBitmap.Height, 3, 4 ));

// Crop 10% from top-left corner, and 30% from bottom-right corner and stretch
// by specifying 4 points (which will become the new corners)
x1 := MulDiv( ImageEnView1.IEBitmap.Width, 10, 100 );
y1 := MulDiv( ImageEnView1.IEBitmap.Height, 10, 100 );
x2 := ImageEnView1.IEBitmap.Width - MulDiv( ImageEnView1.IEBitmap.Width, 30, 100 );
y2 := ImageEnView1.IEBitmap.Height - MulDiv( ImageEnView1.IEBitmap.Height, 30, 100 );
ImageEnView1.Proc.Crop([ DPoint( x1, y1 ), // Top-Left corner
DPoint( ImageEnView1.IEBitmap.Width, 0 ), // Top-right corner
DPoint( x2, y2 ), // Bottom-right corner
DPoint( 0, ImageEnView1.IEBitmap.Height ) // Bottom-Left corner
]);

Flip
// Flip the image horizontally
ImageEnView1.Proc.Flip( fdHorizontal );

ImageResize
// Add a black border to the image
ImageEnView1.Proc.ImageResize( ImageEnView1.IEBitmap.Width + 20,
ImageEnView1.IEBitmap.Height + 20,
iehCenter, ievCenter,
255, clBlack );

Resample
// Scale the image to half size
ImageEnView1.Proc.Resample( 0.5, rfLanczos3 );

Rotate
// Rotate the image 90° counter-clockwise
ImageEnView1.Proc.Rotate( 90 );

RotateAndCrop
// Rotate the image 15° counter-clockwise and crop to maintain only image area
ImageEnView1.Proc.RotateAndCrop( 15, ierBicubic, 0, iecaAngledPhoto );

RoundImage
// Add round corners to the image
ImageEnView1.Proc.RoundImage( ImageEnView1.IEBitmap.Width div 10,
ImageEnView1.IEBitmap.Height div 10 );

ShiftChannel
// Shift to -5 horizontally and -2 vertically in the Blue channel, filling new areas with 0
ImageEnView1.Proc.ShiftChannel( -5, -2, iecBlue, 0 );

PerspectiveDraw
// Perspective drawing image offset on left
yOffset := 0;
ImageEnView1.IEBitmap.Allocate( 300, 300, clBlack );
ImageEnView1.Proc.PerspectiveDraw( srcBMP, // Source image
0, yOffset, // Top-left
ImageEnView1.IEBitmap.Width - 1, 0, // top-Right
ImageEnView1.IEBitmap.Width - 1, ImageEnView1.IEBitmap.Height - 1, // Bottom-right
0, ImageEnView1.IEBitmap.Height - yOffset, // Bottom-left
-1, -1, true);

AutoCrop
// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

// Remove any black border from the image (with tolerance of 30)
ImageEnView1.Proc.AutoCrop( 30, clBlack );

CropTransparentBorder
// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

// Remove any transparent area from the edge of the image
ImageEnView1.Proc.CropTransparentBorder();

RadialStretch

// Minor correction of pin cushion effect in image
a := 0.045;
b := 0;
c := 0;
d := 1.0 - (a+b+c);
ImageEnView1.Proc.RadialStretch( a, b, c, d,
a, b, c, d,
a, b, c, d );

CalcOrientation
// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

// Automatically rotate a document
n := ImageEnView1.Proc.CalcOrientation();
ImageEnView1.Proc.Rotate( n );

SkewDetection
// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

// Check for skew within the range -15 to 15 with 0.1 degrees of precision and automatically orient (for printed text)
d := ImageEnView1.Proc.SkewDetection( ImageEnView1.IEBitmap.Width div 4, 30, 0.1, false );
ImageEnView1.Proc.RotateAndCrop( d, ierBicubic );

SkewDetectionFine
// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );

// Check for skew within the range -5 to 5 with 0.1 degrees of precision and automatically orient (for printed text)
d := ImageEnView1.Proc.SkewDetectionFine( 0, 0.1, 10, True );
ImageEnView1.Proc.RotateAndCrop( d, ierBicubic );

See Also
-
Analysis Methods-
Color Adjustment Methods-
Color Depth Methods-
Alpha and Painting Methods-
Effects Methods- Geometric Methods-
Filter Methods-
Smoothing Methods-
Other Methods