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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La bibliothèque BGRABitmap pour Lazarus
Dessin avec transparence et antialiasing, par Johann Elsass

Le , par circular17

0PARTAGES

3  0 
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/telecharger/detail/id/433/Bibliotheque-BGRABitmap

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

Qu'en pensez-vous ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de circular17
Membre confirmé https://www.developpez.com
Le 03/04/2011 à 0:06
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/B...itmap_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.
3  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 07/02/2016 à 10:36
Bonjour zeroboam,

Content de voir que vous vous intéressez a la bibliothèque.

Effectivement, BGRABitmap n'est pas a installer. Il suffit de l'ajouter au projet ("ajouter" depuis l'inspecteur de projet ou bien le menu "ajouter au paquet" depuis la fenêtre de paquet BGRABitmap).

L'erreur de compilation 2012090607 a été résolue sur SVN, et je viens de faire pour vous un zip, numéroté version 8.8:
https://sourceforge.net/projects/laz...int/files/src/

Cordialement
3  0 
Avatar de tourlourou
Modérateur https://www.developpez.com
Le 16/12/2012 à 16:27
La bibliothèque est intégrée dans la distribution CodeTyphon basée sur Lazarus.
2  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 16/06/2015 à 0:28
Effectivement, la largeur du texte est obtenue par la fonction TextSize qui renvoit une structure TSize qui contient les champs cx et cy. Cette fonction ne prend pas en compte les retours a la ligne, c'est-a-dire qu'elle renvoie la mesure pour le dessin avec TextOut, mais pas avec TextRect.

Concernant la mesure verticale, il y a egalement la propriété FontPixelMetric qui renvoie la position des différentes lignes horizontales (le haut des majuscules, le haut des minuscules, la ligne sur laquelle repose les lettres, etc.).

Dans les dernieres version de la bibliotheque, on peut définir la propriété FontVerticalAnchor pour choisir la position verticale relative du texte. Par défaut, la coordonnée (x,y) transmise en parametre aux fonctions de texte spécifie le coin haut-gauche, mais on peut choisir par exemple que y spécifie la ligne sur laquelle repose les lettres en faisant FontVerticalAnchor := fvaBaseline.
2  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 31/03/2010 à 14:38
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) :
1  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 05/04/2011 à 17:43
Voilà la traduction du tutoriel en français est faite :

http://wiki.lazarus.freepascal.org/B...ap_tutorial/fr
1  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 25/04/2011 à 23:30
Le tutoriel est maintenant disponible sur developpez.net :
http://lazarus.developpez.com/cours/bgrabitmap/
1  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 28/04/2011 à 22:40
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).
1  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 31/07/2011 à 20:29
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
1  0 
Avatar de circular17
Membre confirmé https://www.developpez.com
Le 27/09/2011 à 23:04
BGRAText et BGRATextFX font partie de la librairie BGRABitmap.
1  0