DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de dessin
  • Anti-aliasing
  • Utilisation des fonctions de dessin
  • Dessin en PHP
  • Dessin en code Navigateur
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Change le mode de dessin utilisé par les fonctions de dessin (fonctions dLigne, dRectangle, ...). Ce changement est réalisé pour l'élément en cours de dessin. Cet élément peut être :
  • un champ Image,
  • dans une variable de type Image.
    WEBDEV - Code NavigateurPHP Ce type de variable n'est pas disponible.
  • WINDEVWEBDEV - Code Serveur dans une variable de type WDPic (sur le calque d'arrière-plan),
  • WINDEVWEBDEV - Code Serveur dans une variable de type picCalque.
Exemple
WINDEVWEBDEV - Code ServeurEtats et RequêtesAndroidiPhone/iPadWidget IOSMac CatalystJavaCode Utilisateur (MCU)Ajax
// Initialise le dessin dans un champ Image
dDébutDessin(IMG_Dessin)

// Dessine un rectangle puis l'efface
dChangeMode(dessinXOR)
// Affiche le rectangle (en mode XOR)
dRectangle(0, 0, 100, 100)
Multitâche(10)
// Efface le rectangle
dRectangle(0, 0, 100, 100)
WINDEVWEBDEV - Code ServeurEtats et RequêtesAndroidiPhone/iPadWidget IOSMac CatalystJavaCode Utilisateur (MCU)Ajax
// Dessine un rectangle dans un champ Image puis l'efface
dChangeMode(IMG_Dessin, dessinXOR)
// Affiche le rectangle (en mode XOR)
dRectangle(IMG_Dessin, 0, 0, 100, 100)
Multitâche(10)
// Efface le rectangle
dRectangle(IMG_Dessin, 0, 0, 100, 100)
Syntaxe
dChangeMode([<Image>, ] <Nouveau mode>)
<Image> : Nom de champ optionnel ou variable de type Image, WDPic ou picCalque optionnelle
Etats et RequêtesWindowsLinuxAndroidiPhone/iPadWidget IOSMac CatalystJavaCode Utilisateur (MCU) Image à manipuler. Cette image peut correspondre :
  • au nom d'un champ Image.
  • au nom d'une variable de type Image.
  • WINDEVWEBDEV - Code Serveur au nom d'une variable de type WDPic. Seul le calque d'arrière-plan sera manipulé.
  • WINDEVWEBDEV - Code Serveur au nom d'une variable de type picCalque.
Si ce paramètre n'est pas précisé, il est nécessaire de définir la destination du dessin avec la fonction dDébutDessin.
<Nouveau mode> : Constante de type entier
Mode de dessin dans l'image :
dessinAntiAliasingUtilise le GDI+ et/ou les fonctionnalités de la carte graphique pour dessiner les lignes et les cercles sans crénelage. Ce mode de dessin est plus lent mais le résultat est meilleur qu'avec le mode standard.
WEBDEV - Code Navigateur Constante non disponible.
PHP Ce mode de dessin n'est pas géré.
dessinNormalCouleurs normales.
dessinXORCouleurs appliquées via une opération de "ou exclusif" avec le fond. Permet d'effacer un dessin si cette option est utilisée 2 fois.
ATTENTION : Ce mode de dessin n'est pas compatible avec la gestion de l'opacité (le dessin ne s'efface plus).
Attention :
  • Le dessin en mode XOR est disponible uniquement sur les champs Image. Le dessin en mode XOR n'est pas disponible sur les variables de type Image.
  • La constante dessinXOR n'est pas combinable avec la constante dessinAntiAliasing.
PHP Le dessin en mode XOR a des effets uniquement sur la fonction dPoint.
Remarques
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindowsAndroidiPhone/iPadWidget IOSMac CatalystJavaCode Utilisateur (MCU)

Anti-aliasing

L'anti-aliasing consiste à dessiner les traits et les cercles en évitant l'effet de crénelage. Cette fonctionnalité nécessite le framework GDI + (c'est-à-dire le framework de WINDEV). Exemple :
Limites :
  • La fonction dCorde n'est pas supportée dans ce mode.
  • Pour éviter l'effet de crénelage, les couleurs et les traits des éléments sont lissés. Certaines fonctions de dessin peuvent avoir un comportement inattendu car les couleurs spécifiées ne sont plus retrouvées. Ainsi, si vous spécifiez une couleur de bordure pour la fonction dRemplissage, cette couleur n'est pas retrouvée : le remplissage s'effectue sur toute la zone.
  • Dans le cas d'un dessin avec anti-aliasing, les fonctions dPolygone et dPortion ont le comportement suivant. Le contour est dessiné par-dessus l'intérieur du polygone : le trait est donc en partie combiné avec l'intérieur du polygone. Si l'épaisseur du trait est importante, le trait s'affichera en deux couleurs.
  • Pour plus de détails sur les conditions d'utilisation du GDI+, consultez Framework GDI+.

Utilisation des fonctions de dessin

Les fonctions de dessin peuvent être utilisées selon 2 méthodes :
  • Méthode 1 : Utilisation de la fonction dDébutDessin
    • La fonction dDébutDessin doit être appelée avant toute autre fonction de dessin. La fonction dDébutDessin permet de définir l'élément (champ Image ou variable) sur lequel les fonctions de dessin vont intervenir.
    • Dans le cas du dessin sur un champ Image :
      • Les fonctions de dessin travaillent sur une copie ("bitmap") de l'image. Vous pouvez utiliser les fonctions de dessin de Windows (grâce à la fonction API ou AppelDLL32) mais ces fonctions doivent utiliser le DC (Device Context) renvoyé par la fonction dDébutDessin.
      • La fonction dFinDessin ne doit pas être appelée dans le même traitement que la fonction dDébutDessin.
        Si la fonction dFinDessin est appelée dans le même traitement que la fonction dDébutDessin, le dessin n'apparaîtra pas : il sera automatiquement effacé.
  • Etats et RequêtesWindowsLinuxAndroidiPhone/iPadWidget IOSMac CatalystJavaCode Utilisateur (MCU) Méthode 2 : indication de la destination du dessin directement dans la syntaxe (via un paramètre)
    Le paramètre <Image> permet de spécifier directement la destination du dessin. La fonction dDébutDessin devient inutile. Cette fonction doit être supprimée.
PHP

Dessin en PHP

En PHP, les fonctions de dessin s'appuient sur la librairie graphique GD. Cette librairie est très courante chez les hébergeurs PHP, et donc toujours activée. La version de la librairie GD devra être au moins 2.0.28. Cette librairie peut être téléchargée sur le site de PHP.
Pour activer si nécessaire cette librairie en local, les éléments nécessaires sont :
  • PHP installé.
  • le fichier PHP.INI présent dans le répertoire Windows doit avoir la ligne "extension=php_gd2.dll" et non pas ";extension=php_gd2.dll".
  • le fichier php_gd2.dll doit exister dans le répertoire des extensions PHP. Ce répertoire est défini dans le fichier PHP.INI par la variable "extension_dir".
WEBDEV - Code Navigateur

Dessin en code Navigateur

Certaines fonctions de dessin sont disponibles en code Navigateur. Les fonctions de dessin en code Navigateur sont basées sur la norme HTML 5. Pour les spécialistes, ces fonctions s'appuient sur la balise "canvas" de HTML 5.
Les fonctionnalités de dessin en code navigateur sont disponibles uniquement sur les navigateurs récents (supportant la norme HTML 5). Pour savoir si le navigateur utilisé propose les fonctionnalités de dessin, utilisez la fonction DessinDisponible.
Attention : Pour utiliser les fonctions de dessin avec Internet Explorer 9, le projet doit inclure la référence au fichier DTD. Pour cela, le mode HTML doit être "HTML 4.01 Transitional + DTD". Cette option est disponible dans l'onglet "Avancé" de la fenêtre de description du projet.
Rappel : Pour afficher la fenêtre de description du projet, sous le volet "Projet", dans le groupe "Projet", cliquez sur "Description".
Cas particulier : Dessiner dans le navigateur d'un téléphone Android : Les fonctions de dessin navigateur sont disponibles uniquement à partir de la version 3 de Android.
Liste des exemples associés :
Les fonctions de dessin Exemples unitaires (WINDEV) : Les fonctions de dessin
[ + ] Utilisation des principales fonctions de dessin de WINDEV pour :
- Initialiser un champ Image pour dessiner
- Dessiner des figures simples
- Ecrire un texte dans un dessin
- Changer la couleur dans un dessin
Classification Métier / UI : Code neutre
Composante : wd300pnt.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale