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 :

Insérer une image dans un canvas


Sujet :

Lazarus Pascal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Insérer une image dans un canvas
    Bonjour, j'ai un projet informatique à réaliser sous lazarus et, étant débutant, j'ai besoin d'un renseginement.

    J'ai créé dans un Timage un ellipse (Image.canvas.ellipse(...)). J'arrive à la remplir d'une couleur uni mais je souhaiterais en fait y introduire une image (type TBitmap). L'idéal serait que l'image puissent être entièrement chargée dans cette ellipse (non coupée) en sachant que les coordonnés de l'éllipse seront amené à changer.

    Pourriez vous m'aider?!

    Merci d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 87
    Points
    87
    Par défaut
    bonjour

    avant de dessiner ton ellipse tu as besoin d'assigner une image au TBrush de ton canvas

    exemple avec 2 Timage sur une fiche, chacune ayant une image bitmap précédemment chargée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    Image1.Picture.Bitmap.Canvas.Brush.Bitmap := Image2.Picture.Bitmap;
    //dessin de l'ellipse, etc...
    ...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Tout d'abord merci a toi Yann de m'avoir répondu.

    Ta réponse résout partiellement mon problème. Je sais maintenant comment associer une image à un Tbrush, cependant, j'aimerais pouvoir modifier la taille de l'ellipse et donc optimiser la taille de l'image. Je ne sais pas si lazarus permet de faire ce genre de choses.
    Plus précisement, je veux dessiner une planete dans un Timage (donc avec canvas.ellipse...) et insérer dans le contour de ce canvas l'image d'une vraie planète (la terre par exemple). Mais la taille de la planete à dessiner etant une variable, il faudrait que l'image s'adapte au canvas à chaque fois que le rayon de la planete change.

    Vos réponses sont les bienvenues !

    Merci et a bientot

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 87
    Points
    87
    Par défaut
    hello

    Ma version de lazarus semble buggé en ce qui concerne certaines fonctions de dessin mais essaye avec le code suivant:

    avec Image1 = ton image finale et Image2 ton image de la terre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    ...
     
    procedure ...;
    var
        tmp: TBitmap;
        r: Trect;
    begin
     
        // rectangle de référence
        r.Left := 100;
        r.Top := 100;
        r.Right := 200;
        r.Bottom := 200;
     
        // bitmap temporaire pour le TCanvas.Brush
        tmp := Tbitmap.Create;
        tmp := Image1.Picture.Bitmap;
        tmp.Canvas.StretchDraw(r,Image2.Picture.Bitmap);
     
        // assigner tmp au brush et dessin de l'ellipse
        Image1.Picture.Bitmap.Canvas.Pen.Style:= psClear;
        Image1.Picture.Bitmap.Canvas.Brush.Bitmap := tmp;
        Image1.Picture.Bitmap.Canvas.Ellipse(r);
     
    end;
    ...

Discussions similaires

  1. Insérer une image dans un canvas en XAML
    Par BlackStorm dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/07/2008, 15h39
  2. [MFC]Insérer une image dans un CListCtrl
    Par DestyNov@ dans le forum MFC
    Réponses: 8
    Dernier message: 04/03/2005, 14h36
  3. Comment insérer une image dans une cellule d'un TDrawGrid ?
    Par kanux dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/01/2005, 18h58
  4. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06

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