Difference between revisions of "BGRABitmap tutorial 6/fr"

From Lazarus wiki
Jump to navigationJump to search
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 12: Line 12:
  
 
Avec l'inspecteur de projet, ajouter un gestionnaire OnPaint :
 
Avec l'inspecteur de projet, ajouter un gestionnaire OnPaint :
<delphi>procedure TForm1.FormPaint(Sender: TObject);
+
<syntaxhighlight>procedure TForm1.FormPaint(Sender: TObject);
 
var image: TBGRABitmap;
 
var image: TBGRABitmap;
 
     c: TBGRAPixel;
 
     c: TBGRAPixel;
Line 23: Line 23:
 
   image.Draw(Canvas,0,0,True);
 
   image.Draw(Canvas,0,0,True);
 
   image.free;
 
   image.free;
end;</delphi>
+
end;</syntaxhighlight>
  
 
=== Exécution du programme ===
 
=== Exécution du programme ===
Line 34: Line 34:
  
 
Si vous voulez des coins ronds, vous pouvez spécifier  :
 
Si vous voulez des coins ronds, vous pouvez spécifier  :
<delphi>    image.JoinStyle := pjsRound;</delphi>
+
<syntaxhighlight>    image.JoinStyle := pjsRound;</syntaxhighlight>
  
 
=== Exécution du programme ===
 
=== Exécution du programme ===
Line 45: Line 45:
  
 
Vous pouvez mélanger les styles de jointures comme ceci :
 
Vous pouvez mélanger les styles de jointures comme ceci :
<delphi>    image.FillRoundRectAntialias(80,80,300,200, 20,20, c, [rrTopRightSquare,rrBottomLeftSquare]);   
+
<syntaxhighlight>    image.FillRoundRectAntialias(80,80,300,200, 20,20, c, [rrTopRightSquare,rrBottomLeftSquare]);   
</delphi>
+
</syntaxhighlight>
  
 
Cette fonction utilise des coins ronds par défaut, mais vous pouvez les remplacer par des coins carrés ou en biseau. Vous devriez obtenir l'image suivante.
 
Cette fonction utilise des coins ronds par défaut, mais vous pouvez les remplacer par des coins carrés ou en biseau. Vous devriez obtenir l'image suivante.
Line 55: Line 55:
  
 
Vous pouvez dessiner une ligne en pointillé comme cela :
 
Vous pouvez dessiner une ligne en pointillé comme cela :
<delphi>    image.JoinStyle := pjsBevel;
+
<syntaxhighlight>    image.JoinStyle := pjsBevel;
 
     image.PenStyle := psDot;
 
     image.PenStyle := psDot;
 
     image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);
 
     image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);
</delphi>
+
</syntaxhighlight>
  
 
Notez que l'extrémité de la ligne est arrondie.
 
Notez que l'extrémité de la ligne est arrondie.
Line 67: Line 67:
  
 
Vous pouvez dessiner une polyligne avec des extrémités carrées comme cela :
 
Vous pouvez dessiner une polyligne avec des extrémités carrées comme cela :
<delphi>    image.JoinStyle := pjsBevel;
+
<syntaxhighlight>    image.JoinStyle := pjsBevel;
 
     image.LineCap := pecSquare;
 
     image.LineCap := pecSquare;
 
     image.PenStyle := psSolid;
 
     image.PenStyle := psSolid;
 
     image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);
 
     image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);
</delphi>
+
</syntaxhighlight>
  
 
[[Image:BGRATutorial6d.png]]
 
[[Image:BGRATutorial6d.png]]
Line 79: Line 79:
 
Vous pouvez dessiner une ligne qui est ouverte, c'est-à-dire que la fin de la ligne est arrondie à l'intérieur.
 
Vous pouvez dessiner une ligne qui est ouverte, c'est-à-dire que la fin de la ligne est arrondie à l'intérieur.
  
<delphi>    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10,False);</delphi>
+
<syntaxhighlight>    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10,False);</syntaxhighlight>
 
[[Image:BGRATutorial6f.png]]
 
[[Image:BGRATutorial6f.png]]
  
 
De cette façon, vous pouvez connecter des lignes les unes après les autres sans dessiner la jonction deux fois, ce qui est utile avec le dessin semi-transparent. Vous pouvez comparer comme cela :
 
De cette façon, vous pouvez connecter des lignes les unes après les autres sans dessiner la jonction deux fois, ce qui est utile avec le dessin semi-transparent. Vous pouvez comparer comme cela :
<delphi>    c := BGRA(0,0,0,128);
+
<syntaxhighlight>    c := BGRA(0,0,0,128);
  
 
     image.DrawLineAntialias(40,150, 120,50, c, 10);
 
     image.DrawLineAntialias(40,150, 120,50, c, 10);
Line 91: Line 91:
 
     image.DrawLineAntialias(40,250, 120,150, c, 10, False);
 
     image.DrawLineAntialias(40,250, 120,150, c, 10, False);
 
     image.DrawLineAntialias(120,150, 170,190, c, 10, False);
 
     image.DrawLineAntialias(120,150, 170,190, c, 10, False);
     image.DrawLineAntialias(170,190, 250,110, c, 10, True);</delphi>
+
     image.DrawLineAntialias(170,190, 250,110, c, 10, True);</syntaxhighlight>
 
[[Image:Tutorial6g.png]]
 
[[Image:Tutorial6g.png]]
  

Revision as of 14:55, 24 March 2012

Deutsch (de) English (en) español (es) français (fr)


Accueil | Tutoriel 1 | Tutoriel 2 | Tutoriel 3 | Tutoriel 4 | Tutoriel 5 | Tutoriel 6 | Tutoriel 7 | Tutoriel 8 | Tutoriel 9 | Tutoriel 10 | Tutoriel 11 | Tutoriel 12 | Edit

Ce tutoriel montre comment utiliser les différents styles de lignes et les formes.

Création d'un nouveau projet

Créez un nouveau projet et ajouter la référence à BGRABitmap, de la même façon que dans le premier tutoriel.

Ajout d'un dessin

Avec l'inspecteur de projet, ajouter un gestionnaire OnPaint :

procedure TForm1.FormPaint(Sender: TObject);
var image: TBGRABitmap;
    c: TBGRAPixel;
begin
  image := TBGRABitmap.Create(ClientWidth,ClientHeight,ColorToBGRA(ColorToRGB(clBtnFace)));
  c := ColorToBGRA(ColorToRGB(clWindowText)); 

  image.RectangleAntialias(80,80,300,200,c,50);

  image.Draw(Canvas,0,0,True);
  image.free;
end;

Exécution du programme

Vous devriez obtenir un rectangle avec un pinceau noir épais.

BGRATutorial6a.png

Changer le style de jointures

Si vous voulez des coins ronds, vous pouvez spécifier :

    image.JoinStyle := pjsRound;

Exécution du programme

Le programme devrait dessiner à présent un rectangle avec des coins arrondis.

BGRATutorial6b.png

Mélanger les styles de jointures

Vous pouvez mélanger les styles de jointures comme ceci :

    image.FillRoundRectAntialias(80,80,300,200, 20,20, c, [rrTopRightSquare,rrBottomLeftSquare]);

Cette fonction utilise des coins ronds par défaut, mais vous pouvez les remplacer par des coins carrés ou en biseau. Vous devriez obtenir l'image suivante.

BGRATutorial6e.png

Changer le style de ligne

Vous pouvez dessiner une ligne en pointillé comme cela :

    image.JoinStyle := pjsBevel;
    image.PenStyle := psDot;
    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);

Notez que l'extrémité de la ligne est arrondie.

Tutorial6c.png

Changer les extrémités des lignes

Vous pouvez dessiner une polyligne avec des extrémités carrées comme cela :

    image.JoinStyle := pjsBevel;
    image.LineCap := pecSquare;
    image.PenStyle := psSolid;
    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);

BGRATutorial6d.png

Dessin d'une ligne ouverte

Vous pouvez dessiner une ligne qui est ouverte, c'est-à-dire que la fin de la ligne est arrondie à l'intérieur.

    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10,False);

BGRATutorial6f.png

De cette façon, vous pouvez connecter des lignes les unes après les autres sans dessiner la jonction deux fois, ce qui est utile avec le dessin semi-transparent. Vous pouvez comparer comme cela :

    c := BGRA(0,0,0,128);

    image.DrawLineAntialias(40,150, 120,50, c, 10);
    image.DrawLineAntialias(120,50, 170,90, c, 10);
    image.DrawLineAntialias(170,90, 250,10, c, 10);

    image.DrawLineAntialias(40,250, 120,150, c, 10, False);
    image.DrawLineAntialias(120,150, 170,190, c, 10, False);
    image.DrawLineAntialias(170,190, 250,110, c, 10, True);

Tutorial6g.png

Tutoriel précédent (couches et masques) Tutoriel suivant (splines)