BGRABitmap/fr

From Lazarus wiki
Revision as of 23:21, 22 March 2010 by Circular (talk | contribs) (→‎About: syntax et titre "description")
Jump to navigationJump to search

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. Une version optimisée pour Windows est implémentée. Il est possible de développer des versions pour d'autre systèmes.

La classe principale est TRGB32Bitmap 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

GNU General Public License

Téléchargement

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

A faire

  • Optimisation pour les autres systèmes que Windows

Installation

Ajouter BGRABitmap et BGRABitmapTypes à la clause uses.