ImageEn, unit imageenview

TImageEnView.AddSelPoint

TImageEnView.AddSelPoint

Declaration

procedure AddSelPoint(x, y: Integer);

Description

Adds a point to the current polygonal selection.
If SelectionBase is iesbClientArea (default), all coordinates depend upon actual zoom and scrolling.
Otherwise, if SelectionBase is iesbBitmap all coordinates refer to bitmap pixels.

Use EndSelect to terminate selection by code.

Note:
If you are adding many points, you should wrap your code in LockPaint/UnlockPaint to limit redraw
View a preview of all selection types

Demo

Demo  Demos\ImageEditing\EveryMethod\EveryMethod.dpr

Examples

Also see: Automated Samples
// Create a polygon selection from an array of TPoints
ImageEnView1.BeginSelect();
for I := Low( MyPolySelArray ) to High( MyPolySelArray ) do
  ImageEnView1.AddSelPoint( MyPolySelArray[ I ].x, MyPolySelArray[ I ].y );
ImageEnView1.EndSelect();


// Add a triangular selection
ImageEnView1.BeginSelect();
ImageEnView1.Deselect();
ImageEnView1.AddSelPoint( 200, 100 );
ImageEnView1.AddSelPoint( 300, 200 );
ImageEnView1.AddSelPoint( 100, 200 );
ImageEnView1.EndSelect();


// Make a polygonal selection and adjust luminance
const
  PENT_X1 = 0.00; PENT_Y1 = 0.39;
  PENT_X2 = 0.19; PENT_Y2 = 1.00;
  PENT_X3 = 0.81; PENT_Y3 = 1.00;
  PENT_X4 = 1.00; PENT_Y4 = 0.39;
  PENT_X5 = 0.50; PENT_Y5 = 0.00;
var
  bw, bh: Integer;
begin
  bw := ImageEnView1.IEBitmap.Width;
  bh := ImageEnView1.IEBitmap.Height;
  ImageEnView1.SelectionBase := iesbBitmap;
  ImageEnView1.BeginSelect();
  ImageEnView1.AddSelPoint( Round( PENT_X1 * bw ), Round( PENT_Y1 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X2 * bw ), Round( PENT_Y2 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X3 * bw ), Round( PENT_Y3 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X4 * bw ), Round( PENT_Y4 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X5 * bw ), Round( PENT_Y5 * bh ));
  ImageEnView1.EndSelect();
end;


ImageEnView1.Proc.AdjustLumSatHistogram( 0.00, 0.85 );



// Convert the current polyline layer to a polygon selection
ImageEnView1.BeginSelect();
ImageEnView1.Deselect();
ImageEnView1.SelectionBase := iesbClientArea;
plyr := TIEPolylineLayer( ImageEnView1.CurrentLayer );
ImageEnView1.LayersCurrent := 0;  // Selecting layer 0
for i := 0 to plyr.PointCount - 1 do
begin
  xx := Round( plyr.GetPoints( i, iepbClientArea).x );
  yy := Round( plyr.GetPoints( i, iepbClientArea).y );
  ImageEnView1.AddSelPoint(xx, yy);
end;
ImageEnView1.EndSelect();
ImageEnView1.LayersRemove( plyr.LayerIndex );

See Also

AddSelBreak
AddSelCurve
DelLastSelPoint
EndSelect
PolySel
PolySelPoints