| ImageEn, unit imageenview |
|
TImageEnView.SelectCustom
Declaration
procedure SelectCustom();
Description
Call SelectCustom after you have specified a pixmap of selected pixels of the image.
To select a pixmap use
SelectionMask methods like
SetPixel.
Note:
◼You can use
IsPointInsideSelection to determine whether specific pixels are selected
◼View a
preview of all selection types
Demo
| Demos\ImageEditing\EveryMethod\EveryMethod.dpr |
Examples
// only pixels at 10,10 and 15,15 are selected (SelectionMaskDepth=1)
ImageEnView1.SelectionMask.SetPixel(10, 10, 1);
ImageEnView1.SelectionMask.SetPixel(15, 15, 1);
ImageEnView1.SelectCustom();
// 8-Bit Example
// Make a gradient selection (increasing from unselected to fully selected along height of image)
// Then convert selection to gray scale
ImageEnView1.Deselect();
ImageEnView1.SelectionMaskDepth := 8;
for Y := 0 to ImageEnView1.IEBitmap.Height - 1 do
for X := 0 to ImageEnView1.IEBitmap.Width - 1 do
begin
selIntensity := Round( Y / ImageEnView1.IEBitmap.Height * 255 );
ImageEnView1.SelectionMask.SetPixel( X, Y, selIntensity );
end;
ImageEnView1.SelectCustom();

ImageEnView1.Proc.ConvertToGray();
ImageEnView1.Deselect();

// 1-Bit Example
// Turn image into chessboard pattern
ImageEnView1.Deselect();
ImageEnView1.SelectionMaskDepth := 1;
for Y := 0 to ImageEnView1.IEBitmap.Height - 1 do
for X := 0 to ImageEnView1.IEBitmap.Width - 1 do
begin
if x div SQUARE_SIZE mod 2 = 0 then
sel := True
else
sel := False;
if y div SQUARE_SIZE mod 2 = 0 then
sel := not sel;
if sel then
ImageEnView1.SelectionMask.SetPixel( X, Y, 1 )
else
ImageEnView1.SelectionMask.SetPixel( X, Y, 0 );
end;
ImageEnView1.SelectCustom();

ImageEnView1.Proc.ConvertToGray();
ImageEnView1.Deselect();

// Select all pixels that are blue or green (SelectionMaskDepth=1)
for y := 0 to ImageEnView1.IEBitmap.Height - 1 do
for x := 0 to ImageEnView1.IEBitmap.Width - 1 do
begin
color := ImageEnView1.IEBitmap.Pixels[x, y];
if ( color = clBlue ) or ( color = clGreen ) then
ImageEnView.SelectionMask.SetPixel(X, Y, 1);
end;
ImageEnView.SelectCustom();
// Assign an image (with text) to the selection mask and adjust levels
// Create an all black image (= Unselected)
bmp := TIEBitmap.Create( ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height, clBlack );
// Specify the font color, where white will be fully selected, whereas a gray color would be partially selected
bmp.IECanvas.Font.Color := TRGB2TColor( CreateRGB( 255, 255, 255 ));
bmp.IECanvas.Font.Size := 9;
bmp.IECanvas.Font.Style := [fsBold];
tw := bmp.IECanvas.TextWidth( ImageEn! );
th := bmp.IECanvas.TextHeight( ImageEn! );
x := ( ImageEnView1.IEBitmap.Width - tw ) div 2;
y := ( ImageEnView1.IEBitmap.Height - th ) div 2;
bmp.IECanvas.DrawText( ImageEn!, x, y );
ImageEnView1.SelectionMask.Assign( bmp );
ImageEnView1.SelectCustom();
bmp.Free();

ImageEnView1.Proc.AdjustLevels( 0, 115, 255, 0, 255 );

// Load an image to the selection mask and fill with yellow
bmp := TIEBitmap.Create();
// Download this mask image from www.ImageEn.com/Screenshots/IEHelp/Mask.png
bmp.LoadFromFile( 'D:\Mask.png' );

// Set Mask depth to 8bpp, assign and scale it
ImageEnView1.SelectionMask.BitsPerPixel := 8;
ImageEnView1.SelectionMask.Assign( bmp, True );
ImageEnView1.SelectCustom();
bmp.Free();

ImageEnView1.Proc.Fill( $0055E6FF );

Other Selection Methods
◼Select
◼SelectEllipse
◼SelectMagicWand
◼SelectChromaKey
◼SelectRoundRect
◼SelectShape
◼SelectCustom
View a
preview of all selection types
See Also
◼SelectionMask