ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Controls, pages and windows / Drawing functions
  • Special cases
  • Characteristics of drawings in the browser
  • Drawing in Browser code
  • Drawing with opacity
  • dStartDrawing, zoom and automatic scrollbars
  • Pattern and PHP
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Indicates that the drawing functions that will be used are intended for:
  • the specified Image control,
  • a variable of type Image.
    WEBDEV - Browser codePHP This type of variable is not available.
  • WINDEVWEBDEV - Server code a variable of type WDPic (on the background layer),
  • WINDEVWEBDEV - Server code a variable of type picLayer.
Remark: dStartDrawing initializes all the parameters required to create a drawing for a given element.
Linux Caution: A specific configuration is required to use this function in Linux. For more details, see The drawings.
Example
// Start drawing in the "IMG_ImageDrawing" control
ResDrawing = dStartDrawing(IMG_ImageDrawing)
// Drawings performed in the "IMG_ImageDrawing" control
...
// End of drawing in the "IMG_ImageDrawing" control
dStartDrawing(IMG_Image1)
dFont("Arial", 12, iNormal, 0)
dText(4, 0, "Text in an Image control!")
Syntax

Starting a drawing in an Image control Hide the details

<Result> = dStartDrawing(<Image control> [, <Options>])
<Result>: System integer
  • Memory DC (device context) of the Image control,
  • 0 if an error occurs. This parameter can be used to call system routines (functions of Windows API). In this case, we recommend that you use a system integer.
AndroidJava Special case:
  • 1 if successful,
  • 0 if an error occurs.
<Image control>: Control name
Name of Image control where the drawing will be performed.
<Options>: Optional Integer constant (or combination of constants)
Drawing options:
dDisplayAsynchronous
WEBDEV - Browser code In browser code, used to optimize the drawing performance on an image. The drawing is displayed in the Image control once the user has finished their action.
dDisplayManual
WEBDEV - Browser code In browser code, it delays the display of the drawing. The drawing will be displayed in the Image control after the call to dDisplay.
dErase
(Default value)
Erases the drawing found in the Image control.
dGridlinesOpacityThe drawing is displayed over gridlines in order to highlight the transparent or semi-transparent sections of the drawing. The gridlines are not saved in the image.
Universal Windows 10 AppiPhone/iPadIOS WidgetMac CatalystPHP This constant is not available.
dNoEraseDoes not erase the drawing found in the Image control.
dOnChartUsed to draw in an Image control in which a chart was already drawn. In this case, the chart drawing is not erased.
Universal Windows 10 AppiPhone/iPadIOS WidgetMac CatalystPHP This constant is not available.
dWithOpacityAllows the opacity to be managed in the different drawing functions used by the Image control. Used for example to create a PNG drawing with an Alpha channel.
WINDEVWEBDEV - Server codeReports and QueriesUniversal Windows 10 AppAndroidJavaUser code (UMC)

Starting the drawing in an Image, WDPic or picLayer variable Hide the details

<Result> = dStartDrawing(<Element> [, <Options>])
<Result>: Boolean
  • True if the drawing was initialized,
  • False otherwise.
<Element>: Image, WDPic or picLayer variable
Name of a variable:
  • of type Image.
  • WINDEVWEBDEV - Server code of type WDPic. Only the background layer will be handled.
  • WINDEVWEBDEV - Server code of type picLayer.
<Options>: Optional Integer constant (or combination of constants)
Drawing options:
dGridlinesOpacityThe drawing is displayed over gridlines in order to highlight the transparent or semi-transparent sections of the drawing. The gridlines are not saved in the image.
Universal Windows 10 AppAndroidJava This constant is not available.
dNoEraseDoes not erase the drawing in the variable.
dOnChartUsed to draw in a variable in which a chart has already been drawn. In this case, the chart drawing is not erased.
Universal Windows 10 AppAndroidJava This constant is not available.
dWithOpacityAllows managing opacity in the different drawing functions used with the variable. Used for example to create a PNG drawing with an Alpha channel.

No drawing option is used if this parameter is not specified.
Remarks

Special cases

  • dStartDrawing must be called before the other drawing functions. dStartDrawing is used to define the element (Image control or Image variable) onto which the drawing functions will be applied.
  • When drawing in an Image control:
    • the drawing functions operate on a copy ("bitmap") of image. You can use the drawing functions of Windows (via API or CallDLL32) but these Windows functions must use the DC (Device Context) returned by dStartDrawing.
    • dEndDrawing and dStartDrawing must not be called in the same process. The drawing will not be displayed if dEndDrawing and dStartDrawing are called in the same process: it will be automatically erased.
WEBDEV - Browser code

Characteristics of drawings in the browser

In browser code, transferring the drawing into the image can be quite long (several drawing functions will be used).
To optimize the drawing in the image, the drawing can be displayed once the drawing functions have been used. To do so, simply:
  1. Start the drawing with dStartDrawing using the dDisplayManual constant.
  2. Use the drawing functions to create the drawing.
  3. Use dDisplay to display the drawing in the image.
WEBDEV - Browser code

Drawing in Browser code

Some drawing functions are available in Browser code. The drawing functions in Browser code are based on the HTML 5 standard. More specifically, these functions are based on the "canvas" tag of HTML 5.
The drawing features in browser code are available for the recent browsers only (supporting the HTML 5 standard). To find out whether the drawing features are proposed by your browser, use DrawingAvailable.
Caution: To use the drawing functions with Internet Explorer 9, the project must include the reference to the DTD file. To do so, the HTML mode must be "HTML 4.01 Transitional + DTD". This option is available in the "Advanced" tab of the project description window.
Reminder: To open the project description window, go to the "Project" tab, "Project" group and click "Description".
Special case: Drawing in the browser of an Android phone: The browser drawing functions are only available starting with version 3 of Android.
WINDEVWEBDEV - Server codeReports and QueriesUniversal Windows 10 AppAndroidJavaUser code (UMC)PHPAjax

Drawing with opacity

By creating a drawing that supports opacity, you can easily save PNG images with an Alpha channel.
To save a PNG drawing with an Alpha channel:
  1. Use the dStartDrawing function. This function is used to define, if necessary, the element onto which the drawing functions will be applied as well as the drawing mode. The dWithOpacity constant is used to indicate that the drawing will manage the opacity. The dGridlinesOpacity constant is used to display gridlines underneath the different drawing areas.
  2. Configure the opacity of your drawings with the following functions:
    dBackgroundDeclares the background color and its opacity for the next drawings.
    dPointDeclares the color of the points and their opacity for the next drawings.
    dPenDeclares the color of the lines and their opacity for the next drawings.

    Remark: dPixelOpacity is used to find out the opacity of a point.
  3. Use dSaveImagePNG to save your drawing in PNG format with alpha channel (opacity).
Limit: In "Management of opacity" mode, dText is limited to the use of True Type fonts.
WINDEVAndroidiPhone/iPadIOS WidgetMac CatalystUser code (UMC)

dStartDrawing, zoom and automatic scrollbars

The "Automatic scrollbars and zoom" option, available on Image controls, is incompatible with dStartDrawing. If this option is used on the Image control, dStartDrawing freezes the image. The zoom and the scrollbars are also frozen. The standard behavior is restored when dEndDrawing is called.
PHP

Pattern and PHP

In PHP, the drawing functions are based on the graphic library GD. This library is commonly used by the PHP hosting providers and therefore it is always enabled. The version of the GD library must be version 2.0.28 (or later). This library can be downloaded from the PHP site.
To enable (if necessary) this library locally, the following elements are required:
  • PHP installed.
  • the PHP.INI file found in the Windows directory must contain the following line: "extension=php_gd2.dll" (instead of ";extension=php_gd2.dll").
  • the php_gd2.dll file must exist in the directory of PHP extensions. This directory is defined in the PHP.INI file by the "extension_dir" variable.
Related Examples:
The drawing functions Unit examples (WINDEV): The drawing functions
[ + ] Using the main drawing functions of WINDEV to:
- Initialize an Image control for drawing
- Draw simple shapes
- Write a text into a drawing
- Change the color in a drawing
Component: wd290pnt.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 01/18/2024

Send a report | Local help