TIECanvas.AdvancedDrawText
Declaration // Full Overload function AdvancedDrawText(X, Y, W, H : Integer; const Text: WideString; Font: TFont; TextAngle: Integer = 0; TextAlign: TIEAlignment = iejLeft; TextLayout: TIELayout = ielTop; // Advanced Styling TextBorderWidth: Integer = 0; TextBorderColor: TColor = clBlack; TextFillTransparency1: Integer = 255; TextFillTransparency2: Integer = 255; TextFillColor2: TColor = clRed; TextFillGradient: TIEGDIPlusGradient = gpgNone; // Background Shape FrameShape: TIEShape = iesRectangle; FrameWidth: Integer = 0; FrameBorderColor: TColor = clBlack; FrameFillColor: TColor = clNone; FrameFillColor2: TColor = clRed; FrameFillGradient: TIEGDIPlusGradient = gpgNone; FrameMargin: Double = 0.50; TextVertOffset: Double = 0.0; // Other parameters WordWrap: Boolean = False; AutoShrink: boolean = False; AntiAlias: Boolean = True; CalculateOnly: Boolean = False ): TSize; overload; // Advanced text styling overload function AdvancedDrawText(X, Y, W, H : Integer; const Text: WideString; Font: TFont; TextAngle: Integer; TextAlign: TIEAlignment; TextLayout: TIELayout; // Advanced Styling TextBorderWidth: Integer; TextBorderColor: TColor; TextFillTransparency1: Integer; TextFillTransparency2: Integer; TextFillColor2: TColor; TextFillGradient: TIEGDIPlusGradient; // Other parameters WordWrap: Boolean; AutoShrink: boolean = False; AntiAlias: Boolean = True; CalculateOnly: Boolean = False ): TSize; overload; // Background shape overload function AdvancedDrawText(X, Y, W, H : Integer; const Text: WideString; Font: TFont; TextAngle: Integer; TextAlign: TIEAlignment ; TextLayout: TIELayout ; // Background Shape FrameShape: TIEShape ; FrameWidth: Integer = 0; FrameBorderColor: TColor = clBlack; FrameFillColor: TColor = clNone; FrameFillColor2: TColor = clRed; FrameFillGradient: TIEGDIPlusGradient = gpgNone; FrameMargin: Double = 0.50; TextVertOffset: Double = 0.0; // Other parameters WordWrap: Boolean = False; AutoShrink: boolean = False; AntiAlias: Boolean = True; CalculateOnly: Boolean = False ): TSize; overload; Description
Draw text at a specified position with advanced options, including:
◼ Outlined text (text has a border and optional fill)
◼ Background frame of many shapes and gradients
◼ Auto-shrinking of wide text
For a simpler method, use:
DrawText .
Text Properties
Parameter Description
X Horizontal position
Y Vertical position
W Optional: The maximum width for the text output. This will enforce text wrapping and auto-shrinking
H Optional: The maximum height for the text output. This will enforce auto-shrinking
Text The string to output
Font Optional: The font for the text. You can create a temporary TFont object, or specify NIL to use the Canvas.Font
TextAngle The rotation of the text in in degrees counter-clockwise, e.g. -45 will draws text diagonally downwards
TextAlign The horizontal alignment of the text within the rect of the specified width. Specify iejLeft to position at X *
TextLayout The vertical alignment of the text within the rect of the specified height. Specify ielTop to position at Y *
Advanced Text Styling
Parameter Description
TextBorderWidth If not 0 the text will have a colored border of the specified width
TextBorderColor The color of the text border
TextFillTransparency1 The transparency of the text fill (the color is specified by Font.Color)
TextFillTransparency2 The transparency of the secondary fill (if the text fill has a gradient)
TextFillColor2 The color of the secondary fill (if the text fill has a gradient). The fill color is specified by Font.Color. gpgNone specifies no gradient
TextFillGradient The direction of the gradient for the text fill (from Font.Color to TextFillColor2)
Text Background Frame
Parameter Description
FrameShape The shape of frame
FrameWidth If not 0 then there will be a shape drawn behind the text of the specified width
FrameBorderColor The color of the frame border (or clNone for no border)
FrameFillColor The color of the frame fill (or clNone for no fill)
FrameFillColor2 The color of the secondary fill (if the frame fill has a gradient)
FrameFillGradient The direction of the gradient for the frame fill (from FrameFillColor to FrameFillColor2). gpgNone specifies no gradient
FrameMargin Specifies the amount to increase the size of the shape (if width and height are auto-calculated) so the border does not overlap the text. This value is a percentage, e.g. 0.50 adds margins of 50% of the text width and height
TextVertOffset Shifts the drawing of text up or down. This is a percentage value with positive and negative values, so -0.10, moves the text up 10% of the layer height. 0.50 will shift halfway down. direction of the gradient for the frame fill (from FrameFillColor to FrameFillColor2). gpgNone specifies no gradient
Other Parameters
Parameter Description
WordWrap If true, and the text is wider than the W value, it will wrap onto the next line *
AutoShrink If True, and the text is larger than the rect specified by W x H, the font size will be reduced until it fits *
AntiAlias True uses best quality font. False disables anti-aliasing
CalculateOnly If true, the text is not drawn, just the output size returned as the result
* These parameters have no effect unless the W and H values have been specifically set (i.e. are not 0)
Result is the size of the text in pixels.
Demos\ImageEditing\EveryMethod\EveryMethod.dpr
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(); ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Size := 22; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 230, 200, 'I Heart Delphi', nil, 0, iejCenter, ielCenter, iesHeart, 0, clNone, $004646FF, clRed, gpgNone, -0.15 ); ImageEnView1.Update(); // Yellow text with red border ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Size := 54; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.Font.Color := clYellow; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 0, 0, 'ImageEn!', nil, 0, iejLeft, ielTop, 3, clRed, 255, 255, clBlack, gpgNone ); ImageEnView1.Update(); // Semi-transparent white text with red border ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Size := 54; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.Font.Color := clYellow; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 0, 0, 'ImageEn!', nil, 0, iejLeft, ielTop, 3, clRed, IEOpacityToAlphaD( 0.3 ), // 30% opaque 255, clBlack, gpgNone ); ImageEnView1.Update(); // Transparent text with yellow border ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Size := 54; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.Font.Color := clYellow; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 0, 0, 'ImageEn!', nil, 0, iejLeft, ielTop, 3, clYellow, 0, // 100% transparent 255, clBlack, gpgNone ); ImageEnView1.Update(); // Gradient text with border ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Size := 54; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.Font.Color := clRed; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 0, 0, 'ImageEn!', nil, 0, iejLeft, ielTop, 3, clBlack, 255, 255, clYellow, gpgVertical ); ImageEnView1.Update(); // Centered gradient text without border ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Size := 54; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.Font.Color := clRed; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 0, 0, 'ImageEn!', nil, 0, iejLeft, ielTop, 0, clBlack, 255, 255, clWhite, gpgVertCenter ); ImageEnView1.Update(); // Text with gradient ranging from 0% to 70% opacity ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Size := 54; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 100, 100, 0, 0, 'ImageEn!', nil, 0, iejLeft, ielTop, 0, clBlack, 0, // 100% transparent IEOpacityToAlphaD( 0.7 ), // 70% opacity clYellow, gpgHorizontal ); ImageEnView1.Update(); // Draw text with background to image ImageEnView1.IEBitmap.IECanvas.Font.Name := 'Tahoma'; ImageEnView1.IEBitmap.IECanvas.Font.Height := 50; ImageEnView1.IEBitmap.IECanvas.Font.Style := [fsBold]; ImageEnView1.IEBitmap.IECanvas.Font.Color := Color; ImageEnView1.IEBitmap.IECanvas.AdvancedDrawText( 200, 20, 90, 150, 'I do!', // Text NIL, // Use canvas font 0, iejCenter, ielCenter, // Angle and alignment iesSpeechBubbleLeftOutShort, // Background Shape 2, clBlack, // FrameWidth/FrameBorderColor clWhite, clWhite, gpgNone, // FrameFillColor/FrameFillColor2/FrameFillGradient 0.33, // Reduced margin -0.2, // Move text up False, // WordWrap True ); // AutoShrink ImageEnView1.Update(); // Show changes in our viewer See Also
◼ DrawText
◼ AdvancedDrawAngle
◼ AdvancedDrawLine
◼ AdvancedDrawPolyline
◼ AdvancedDrawShape
Loading contents...