| ImageEn, unit imageenview |
|
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
| Demos\ImageEditing\EveryMethod\EveryMethod.dpr |
Examples
// 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