ImageEn, unit ieDocum

Preview of Drawing Methods


The "Every Method" editing demo allows you to preview 300 editing, analysis and effects methods, and generate sample code.

Image Editing Methods

◼Analysis Methods
◼Color Adjustment Methods
◼Color Depth Methods
◼Detection Methods
◼Special Detection Methods
◼Document Methods
◼Drawing Methods
◼Effects Methods
◼Filter Methods
◼Geometric Methods
◼Painting and Alpha Methods
◼Smoothing Methods
◼Other Methods
◼Selection Methods
◼Interactive Tools

Test Images

ImageEnView1.IO.LoadFromFile( 'D:\ImageTest1.jpg' );

  

TIECanvas

// Draw text, a rectangle and an ellipse onto the image
w := ImageEnView1.IEBitmap.Width;
h := ImageEnView1.IEBitmap.Height;
ImageEnView1.IEBitmap.IECanvas.Font.Height := MulDiv( h, 25, 100 );
ImageEnView1.IEBitmap.IECanvas.Font.Style  := [fsBold];
ImageEnView1.IEBitmap.IECanvas.Font.Color  := clRed;
ImageEnView1.IEBitmap.IECanvas.DrawText( 'ImageEn!', ( w - ImageEnView1.IEBitmap.IECanvas.TextWidth( 'ImageEn!' )) div 2, 0 );
ImageEnView1.IEBitmap.IECanvas.Pen.Style   := psClear;
ImageEnView1.IEBitmap.IECanvas.Brush.Style := bsSolid;
ImageEnView1.IEBitmap.IECanvas.Brush.Color := clGreen;
ImageEnView1.IEBitmap.IECanvas.Rectangle( MulDiv( w, 15, 100 ), MulDiv( h, 30, 100 ), w - MulDiv( w, 35, 100 ), h - MulDiv( h, 20, 100 ));
ImageEnView1.IEBitmap.IECanvas.Brush.Color := clYellow;
ImageEnView1.IEBitmap.IECanvas.Ellipse( MulDiv( w, 35, 100 ), MulDiv( h, 35, 100 ), w - MulDiv( w, 10, 100 ), h - MulDiv( h, 3, 100 ));
ImageEnView1.Update(); // Show changes in our viewer

  

DrawText

// Draw gradient text over the image
ImageEnView1.IEBitmap.IECanvas.Font.Height := 54;
ImageEnView1.IEBitmap.IECanvas.Font.Style  := [fsBold];
ImageEnView1.IEBitmap.IECanvas.Font.Color  := clRed;
ImageEnView1.IEBitmap.IECanvas.TextStyling.FillGradient := gpgVertical;
ImageEnView1.IEBitmap.IECanvas.TextStyling.FillColor2   := clYellow;
ImageEnView1.IEBitmap.IECanvas.TextStyling.BorderColor  := clWhite;
ImageEnView1.IEBitmap.IECanvas.TextStyling.BorderWidth  := 6;
tw := ImageEnView1.IEBitmap.IECanvas.TextWidth( 'Wedding' );
ImageEnView1.IEBitmap.IECanvas.DrawText( 'Wedding', ( ImageEnView1.IEBitmap.Width - tw ) div 2, 0 );
ImageEnView1.Update();

  

AdvancedDrawLine

// Draw a line pointer with a label
ImageEnView1.IEBitmap.IECanvas.Font.Name  := 'Tahoma';
ImageEnView1.IEBitmap.IECanvas.Font.Size  := 8;
ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold];
ImageEnView1.IEBitmap.IECanvas.Font.Color := clBlack;
ImageEnView1.IEBitmap.IECanvas.AdvancedDrawLine( 140, 30, 240, 100,
                                                 clBlack, 2,
                                                 ieesArrow, ieesNone,
                                                 20, clRed,
                                                 ielpAtEnd, 'Label',
                                                 nil, True,
                                                 iesRectangle, clRed, clYellow,
                                                 gpgVertical );
ImageEnView1.Update();

  

AdvancedDrawShape

// Draw a shape to the current image
ImageEnView1.IEBitmap.IECanvas.AdvancedDrawShape( 50, 50, 150, 150,
                                                  iesHeart, 0, 0,                    // Shape Props
                                                  clBlack, 2, 1.0,                   // Border Props
                                                  clYellow, clRed, gpgVertical, 1.0, // Fill Props
                                                  True );
ImageEnView1.Update();

  

AdvancedDrawText

ImageEnView1.IEBitmap.IECanvas.Font.Name  := 'Tahoma';
ImageEnView1.IEBitmap.IECanvas.Font.Size  := 14;
ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold];
ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 250, 100,
                                                 'EXPLOSION!', nil,
                                                 0, iejCenter, ielCenter,
                                                 iesExplosion, 1, clBlack,
                                                 clRed, clYellow, gpgVertCenter );
ImageEnView1.Update();

  

AdvancedDrawAngle

// Draw a 90 deg. angle with a label
ImageEnView1.IEBitmap.IECanvas.Font.Name   := 'Tahoma';
ImageEnView1.IEBitmap.IECanvas.Font.Height := MulDiv( ImageEnView1.IEBitmap.Height, 5, 100 );
ImageEnView1.IEBitmap.IECanvas.Font.Color  := clBlack;
pt1 := Point( 100, 100 );
pt2 := Point( ImageEnView1.IEBitmap.Width div 2, MulDiv( ImageEnView1.IEBitmap.Height, 8, 10 ));
pt3 := IERotatePoint3( pt1.X, pt1.Y, 90, pt2.X, pt2.Y );
ImageEnView1.IEBitmap.IECanvas.AdvancedDrawAngle( [ pt1, pt2, pt3 ], clBlack, 2, '%s' + Degree_Symbol, nil, 0, ieaNormal );
ImageEnView1.Update(); // Show changes in our viewer

  

AdvancedDrawPolyline

// Draw a star with a yellow border and white fill
SetLength( pts, 10 );
pts[0] := Point( 175, 50 );
pts[1] := Point( 205, 145 );
pts[2] := Point( 300, 145 );
pts[3] := Point( 225, 205 );
pts[4] := Point( 253, 300 );
pts[5] := Point( 175, 243 );
pts[6] := Point( 98 , 300 );
pts[7] := Point( 128, 205 );
pts[8] := Point( 50 , 145 );
pts[9] := Point( 148, 145 );
ImageEnView1.IEBitmap.IECanvas.AdvancedDrawPolyline( pts, True, clYellow, 3, iegpSolid, 1.0, clWhite, clBlue, gpgNone, 1.0, 0 );
ImageEnView1.Update(); // Show changes in our viewer

  

Polygon

// Draw a star with a red border and white fill (using the points above)
ImageEnView1.IEBitmap.IECanvas.Pen.Color   := clRed;
ImageEnView1.IEBitmap.IECanvas.Pen.Width   := 3;
ImageEnView1.IEBitmap.IECanvas.Brush.Style := bsSolid;
ImageEnView1.IEBitmap.IECanvas.Brush.Color := clWhite;
ImageEnView1.IEBitmap.IECanvas.Polygon( pts );
ImageEnView1.Update(); // Show changes in our viewer

  

TextOut

// Draw text over the image
ImageEnView1.Proc.TextOut( Align_Text_Horz_Center, Align_Text_Near_Top, 'Wedding', 'Arial', 32, clYellow, [fsBold] );

  

FillWithShape

// Create a shaped image by drawing an ImageEn shape to the alpha channel
ImageEnView1.IEBitmap.FillWithShape( iesHeart, -1, -1, clNone, 0, -2 { Keep Content } );

  

fillPoly (IEVision)

// Fill a five point star at the center of the image
cx := ImageEnView1.IEBitmap.Width div 2;
cy := ImageEnView1.IEBitmap.Height div 2;
radius := Min( cx, cy ) * 9 div 10;
star := IEVisionLib().createVectorPoint();
for i := 0 to 9 do
begin
  if Odd( i ) then r := radius * 45 div 100 else r := radius;
  star.push_back( IEVisionPoint( cx + Round( r * Sin( i * PI / 5 )), cy - Round( r * Cos( i * PI / 5 ))));
end;
IEVisionLib().createDrawing().fillPoly( ImageEnView1.IEBitmap.GetIEVisionImage(), star, IEVisionScalar( 0, 0, 255 ), 16 );
ImageEnView1.Update();

  

See Also

◼Analysis Methods
◼Color Adjustment Methods
◼Color Depth Methods
◼Detection Methods
◼Special Detection Methods
◼Document Methods
◼Drawing Methods
◼Effects Methods
◼Filter Methods
◼Geometric Methods
◼Painting and Alpha Methods
◼Smoothing Methods
◼Other Methods
◼Selection Methods
◼Interactive Tools