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 :

[Débutant] Transparence Tbitmap dans un Timage [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut [Débutant] Transparence Tbitmap dans un Timage
    Bonjour, Je suis débutant et j'ai besoin d'aide :

    je simplifie mon problème :

    je dessine un cercle de couleur dans un Tbitmap puis recopie ce cercle dans le Timage (canvas.draw). Jusque là ca va.

    Je voudrais que dans le timage il n'y est que le cercle de couleur et que le fond du timage soit transparent. en clair je n'arrive pas à gérer la transparence dans le Timage après avoir recopier un tbitmap dedans. j'ai beau essayer les méthodes transparent=true ca ne marche pas. help me please!!

    merci d'avance.

  2. #2
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    As-tu essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonImage.Canvas.Brush.Style:= bsClear;
    Cordialement.

    Pierre

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    en parcourant le forum j'ai trouvé une personne qui avait la même question que moi. ( et bien sûr pas de réponse) :
    http://www.developpez.net/forums/d32...-transparente/

    sinon pour revenir au sujet, j'ai essayé de comprendre ce que tu m'as dit de faire mais j'ai toujours le même problème.

    voila ce que j'avais fait dans le OnCreate de ma fenetre :

    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
    var bitmap:tbitmap;
    begin
    bitmap:=tbitmap.create;
    bitmap.width:=image1.width;
    bitmap.height:=image1.height;
     
    bitmap.canvas.Pen.color:=clFuchsia;//arriere plan du bitmap de nimporte quelle couleur
    bitmap.canvas.brush.color:=clFuchsia;
    bitmap.canvas.rectangle(0,0,image1.width,image1.height);
     
    bitmap.canvas.pen.color:=clblack;//un rond jaune
    bitmap.Canvas.brush.color:=clyellow;
    bitmap.canvas.ellipse(0,0,bitmap.width,bitmap.height);
     
    bitmap.Transparent := True;//tentative de ma part sans succès
    bitmap.TransparentColor := clFuchsia;
     
     
    image1.canvas.draw(0,0,bitmap);//on redessine le bitmap dans l'image
    end;
    mais l'arrière plan du timage est toujours fuchsia. Ce que je ne comprends pas c'est quand je charge une image directement dans le Timage il prend directement le fond de l'image comme transparent (à condition bien sûr d'avoir mis la valeur true dans transparent)!?

    qu'est ce qui me manque? faut-il vraiment jouer avec les transparent:=true? le formap bmp n'est peut etre pas très bon pr la transparence?

    Merci d'avance.

  4. #4
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    Bonjour,

    Essaye avec un fichier au format png car de mémoire le bmp ne gère pas la transparence..

    @+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    bon j'ai du nouveau :

    après maintes tentatives, j'ai réussi à faire ce que je voulais en cherchant sur le wiki de lazarus.
    je mets le code si çà peut servir à quelqu'un :
    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
    29
    30
    31
    32
    33
    var
      bmp: TBitmap;
      memstream: TMemoryStream;
    begin
      bmp := TBitmap.Create;
      bmp.width:=image1.width;
      bmp.height:=image1.height;
     
    bmp.canvas.Pen.color:=clwhite;//fond du bitmap en blanc
    bmp.canvas.brush.color:=clwhite;
    bmp.canvas.rectangle(0,0,image1.width,image1.height);
     
    bmp.canvas.pen.color:=clblack;//puis on dessine un rond jaune de bord noir
    bmp.Canvas.brush.color:=clyellow;
    bmp.canvas.ellipse(0,0,bmp.width,bmp.height);
     
     
      memstream := TMemoryStream.create;
      try
        bmp.SaveToStream(memstream);
        memstream.position := 0;
        bmp.LoadFromStream(memstream);
      finally
        memstream.free;
      end;
     
      bmp.Transparent := True;
      bmp.TransparentColor := clwhite;//couleur de l'arrière plan du bmp donc ici blanc
     
     image1.Picture.bitmap:=bmp;
     
      bmp.Free; 
    end;
    voila voila , merci à ceux qui ont essayé de m'aider. à bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. EInvalidGraphic sur chargement d'un jpeg dans un TImage
    Par tomtom7 dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/02/2007, 12h54
  2. Écrire un TBitmap dans un fichier
    Par prgasp77 dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2005, 23h07
  3. [Débutant][JFileChooser] Ecrire dans fichier
    Par Clark dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 16/05/2005, 17h47
  4. Image en mosaique dans un TImage
    Par Maitre Dragon dans le forum C++Builder
    Réponses: 6
    Dernier message: 31/07/2004, 13h18
  5. Réponses: 8
    Dernier message: 05/05/2004, 16h28

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