BGRABitmap/fr

From Lazarus wiki
Revision as of 09:55, 13 April 2010 by Circular (talk | contribs) (→‎Licence: changement license)
Jump to navigationJump to search

Voir aussi : Développer en mode graphique

Description

BGRABitmap est un ensembles d'unités permettant de modifier et de créer des images avec transparence (canal alpha). L'accès direct aux pixels permet de faire des traitements rapides sur les images. La version standard devrait marcher sur toutes les plateformes que Lazarus propose. La bibliothèque a été optimisée et testée sur Windows et Ubuntu, c'est-à-dire avec les widgets win32 et gtk2.

La classe principale est TBGRABitmap qui est dérivée de TFPCustomImage qui permet de créer et dessiner une image. Il y aussi TBGRAPtrBitmap qui est permet de modifier les données déjà alloués d'une image au format BGRA. Ce format consiste en quatre octets pour chaque pixel (bleu, vert, rouge et alpha dans cet ordre).

Il y a trois modes de dessins :

  • Dessiner avec alpha blending, c'est-à-dire un image avec gestion de la transparence
  • Remplacer des pixels y compris le canal alpha. Vous pouvez ainsi dessiner un trou dans l'image.
  • Dessiner une image sauf les pixels transparents (comme un sprite)

Il est possible de dessiner avec des fonctions qui modifient directement l'image en mémoire, qui sont inclues dans la classe TBGRABitmap, mais aussi de dessiner à l'aide d'un Canvas avec les fonctions habituelles. La seconde option est un peu plus lente parce qu'elle nécessite des transformations de l'image. L'opacité du tracé fait avec le Canvas est définie par la propriété CanvasOpacity.

Les fonctions de dessins directes :

  • pixels, lignes, rectangles
  • lignes avec anti-aliasing
  • rectangles avec coins arrondis
  • textes avec transparence
  • remplissage (flood fill), remplacer une couleur
  • charger et sauver des images
  • rééchantillonner, fusionner des images

Pour accéder aux pixels utilisez les propriétés Data et Scanline. Il est nécessaire d'appeler ensuite la fonction InvalidateBitmap pour reconstruire l'image lors d'un appel à Draw par exemple. Notez que l'ordre les lignes peut être à l'envers, selon la propriété LineOrder.

Captures d'écran

Bgra wirecube.png Bgra chessboard.jpg

Licence

LGPL modifiée

Téléchargement

http://consume.o2switch.net/lazarus/


Installation

Ajouter BGRABitmap et BGRABitmapTypes à la clause uses.