IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Bibliothèque BGRABitmap : Dessin rapide avec transparence et antialiasing


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut Bibliothèque BGRABitmap : Dessin rapide avec transparence et antialiasing
    Découvrez la bibliothèque BGRABitmap pour Lazarus
    Dessin avec transparence et antialiasing

    Ne trouvant pas de moyen pratique pour faire du dessin avec accès direct aux pixels et de la transparence, j'ai fait une bibliothèque qui permet d'utiliser des images 32-bits BGRA (blue vert rouge alpha dans cet ordre) et de les dessiner directement à l'écran.

    La bibliothèque BGRABitmap a pour but de permettre un dessin avec antialiasing, de contrôler la transparence, de fusionner des couches, ajouter des effets...

    Le tutoriel suivant propose de faire le tour des fonctionnalités de cette bibliothèque :
    http://lazarus.developpez.com/cours/bgrabitmap/

    La page de téléchargement :
    http://pascal.developpez.com/telecha...que-BGRABitmap

    J'ai rajouté une page sur le wiki de Lazarus :
    http://wiki.freepascal.org/BGRABitmap/fr

    Qu'en pensez-vous ?
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    quand j'entends Transparence, je pense PNG.
    simple, déjà implémenté, accès au scanline et à la transparence facile.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Oui tu peux charger des PNG, les modifier et les sauvegarder. J'ai mis une propriété Scanline pour accéder directement aux pixels.

    Voilà un screenshot (sachant que ça donne la même chose avec Ubuntu et Linux) :
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut Tutorial
    Rebonjour,

    J'ai écrit un tutorial en anglais pour BGRABitmap.

    Il montre comment charger et redimensionner des images, utiliser l'accès direct aux pixels, cominer des layers, remplir avec des gradients, utiliser des styles de lignes et des splines, générer des textures avec du bruit de Perlin et faire des effets de lumière Phong.

    Chaque tuto est accompagnié de screenshots

    http://wiki.lazarus.freepascal.org/BGRABitmap_tutorial

    L'adresse de téléchargement de BGRABitmap a changé, à présent c'est ici :
    http://sourceforge.net/projects/lazpaint/

    Je vais probablement faire une traduction française, et, pourquoi pas, on pourrait le mettre sur developpez.net.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 415
    Points
    59 415
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par circular17 Voir le message
    Je vais probablement faire une traduction française, et, pourquoi pas, on pourrait le mettre sur developpez.net.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Voilà la traduction du tutoriel en français est faite :

    http://wiki.lazarus.freepascal.org/B...ap_tutorial/fr
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Le tutoriel est maintenant disponible sur developpez.net :
    http://lazarus.developpez.com/cours/bgrabitmap/
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Cette bibliothèque permet-elle le remplissage de polygones suivant la règle even-odd (option Winding du "canvas.polygon" classique)?

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Oui. La propriété FillMode peut prendre la valeur fmWinding ou fmAlternate.

    EDIT: Je viens de publier la dernière version qui inclut une propriété CanvasBGRA contenant les mêmes fonctions que le canvas standard, avec l'antialiasing et la transparence (propriété Opacity de Pen, Font et Brush).
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 80
    Points
    80
    Par défaut
    Voilà qui devient intéressant! Je vais regarder ça de plus près donc.

    Merci beaucoup.

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Si vous réalisez quelque chose avec, je serais très heureux de le savoir.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Points : 80
    Points
    80
    Par défaut
    Je pensais suggérer à l'auteur de TeXgraph d'utiliser votre bibliothèque plutôt que le canvas de base. J'ignore quelle sera sa réponse, il faut que cette bibliothèque soit compatible windows/linux/mac, et savoir ce qu'il en est pour la distribution du source (TeXgraph est en GPL, donc le source est fourni)?

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Ce logiciel a l'air très complet.

    Oui, la bibliothèque a été testée sous Windows, Linux Gtk, Mac OS et un peu sur Linux Qt. Cependant, si vous rencontrez un problème, signalez-le moi que je puisse le corriger.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  14. #14
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Bonjour,

    Sous Ubuntu 11.04 et Lazarus 0.9.30, j'ai téléchargé le fichier "bgrabitmap4.6.1.zip" que j'ai décompressé dans un répertoire perso.

    J'ai voulu tester l'exemple "testcanvas2D" qui m'a demandé les unités :

    bgracontrols et BGRAVirtualScreen

    que je n'ai trouvées nulle part dans le fichier téléchargé ???

    Je ne suis pas allé plus loin. Pour autant, peut-on réaliser des programmes de traitement d'images (couleur, dessin, géométrie) avec les unités figurant dans le fichier "bgrabitmap4.6.1.zip" ?

    Merci de votre aide.

    Pierre

  15. #15
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    BGRAControls est un paquet de contrôles (boutons etc.) qui utilisent BGRABitmap. Plus d'information sur ce paquet :
    http://wiki.lazarus.freepascal.org/BGRAControls

    Le contrôle BGRAVirtualScreen permet de dessiner sur un écran virtuel, en évitant ainsi le clignotement et avec simplicité.

    peut-on réaliser des programmes de traitement d'images (couleur, dessin, géométrie) avec les unités figurant dans le fichier "bgrabitmap4.6.1.zip" ?
    Bien entendu.

    Par exemple LazPaint utilise cette bibliothèque :
    https://sourceforge.net/projects/lazpaint/files/

    Pour résumer il y a :
    - une bibliothèque de dessin BGRABitmap
    - une bibliothèque de contrôles BGRAControls
    - un logiciel d'édition d'image LazPaint

    Enfin, de façon indépendante est développée une autre bibliothèque de contrôles (uEControls) utilisant aussi BGRABitmap :
    http://www.lazarus.freepascal.org/in....msg71343.html
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  16. #16
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    merci circular17 pour ces précisions.

    J'ai chargé le zip de la dernière version de BGRAControls. Impossible à compilier ni sous Windows, ni sous Ubuntu (Lazarus 0.9.30) : des unités n'ont pas le bon nom (BGRAText ou BGRATextFX) ou sont manquantes dans la clause "Uses" (BGRAGradients), des variables sont introuvables ... ???

    Cordialement.

    Pierre

  17. #17
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    BGRAText et BGRATextFX font partie de la librairie BGRABitmap.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  18. #18
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Site de l'auteur si vous êtes intéressé : http://johann-elsass.net
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  19. #19
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    La bibliothèque est intégrée dans la distribution CodeTyphon basée sur Lazarus.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  20. #20
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Y a-t-il un moyen de connaître la largeur d'un texte ? Pour la hauteur, c'est la propriété FontHeight de la classe TBGRABitmap. Mais pour la largeur, je n'ai pas trouvé d'indication dans le tutoriel (qui par ailleurs est très bien fait).
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

Discussions similaires

  1. Réponses: 50
    Dernier message: 26/04/2020, 21h44
  2. Dessiner sur le bureau HBITMAP avec transparence
    Par Invité dans le forum Windows
    Réponses: 2
    Dernier message: 24/09/2010, 18h21
  3. Réponses: 5
    Dernier message: 26/06/2010, 12h33
  4. [JFreeChart] dessins Pie3D avec transparency
    Par bluecameleon dans le forum 2D
    Réponses: 0
    Dernier message: 25/03/2009, 12h09
  5. Bibliothèque 3D avec transparence
    Par Graffito dans le forum Composants VCL
    Réponses: 5
    Dernier message: 25/04/2006, 17h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo