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

Composants VCL Delphi Discussion :

Convertir un image PNG en Bitmap


Sujet :

Composants VCL Delphi

  1. #1
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut Convertir un image PNG en Bitmap
    Bonjour,

    J'ai un TImage dans lequel je charge un fichier PNG (avec transparence).

    Je souhaite convertir cette image en Bitmap et garder la transparence sur mon TImage.

    Si je fait cela, le fond de mon image est de couleur noir ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Tmp := TBitmap.Create;
       try
          Tmp.Transparent := True;
          Tmp.Width  := Image2.Picture.Width;
          Tmp.Height := Image2.Picture.Height;
     
          Tmp.Assign(Image2.Picture.Graphic);
          Image2.Picture.Assign(tmp);
       finally
          Tmp.Free;
       end;
    Si je change le Assign par Draw, le fond de l'image est blanc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmp.Canvas.Draw(0, 0, Image2.Picture.Graphic);
    Savez vous comment retrouver la transparence de l'image une fois converti ?

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Ce n'est pas possible : tu n'as pas de transparence avec le format BITMAP (*)

    Par contre, tu as de la transparence pleine/ complète/ "je-ne-sais-plus-le-terme" (et non partielle comme avec le format .png) : regarde ici TBitmap.TransparentMode

    La dernière fois je t'avais proposé la bibliothèque TImage32/ gr32_image, mais tu as préféré GDI+ suite à une proposition d'un autre posteur: tans pis pour toi



    * -> Microsoft a rajouté la transparence mais après coup, lorsque tout le monde s'en fiche (parce que les alternatives avaient encore plus d'avantage) et c'est un truc bizarre aussi, il me semble

  3. #3
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Merci je vais regarder, mais je suis resté sur GR32

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Si le TImage ne supporte pas les bitmap 32 bits, tu peux toujours dessiner sur un canevas par AlphaBlend.

  5. #5
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    Salut,

    juste pour info : Le TBitmap gère le 32Bits parfaitement depuis Delphi2009

    pour les versions antérieurs de Delphi, il existe crBitmap32.pas qui fait exactement le même chose càd il intègre la gestion du 32Bits à la VCL en toute transparence

    ps: une simple recherche Google avec crBitmap32 suffit à trouver

    Ajout: tu peux aussi regarder ici :http://www.developpez.net/forums/d14...-transparence/
    il y a tout pour convertir un PNG en Bitmap32 pour modifications tout en conservant la transparence et inversement ... de Bitmap32 vers PNG

Discussions similaires

  1. [Imagick] Convertir plusieurs images png en un fichier pdf
    Par fafabzh6 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/10/2011, 19h34
  2. convertir une image BMP en Bitmap monochrome?
    Par byubi dans le forum ImageJ
    Réponses: 3
    Dernier message: 31/03/2009, 21h42
  3. Convertir une image WMF en Bitmap
    Par blondelle dans le forum C++Builder
    Réponses: 0
    Dernier message: 16/10/2007, 23h44
  4. Convertir une image bitmap en DICOM
    Par shindara dans le forum Multimédia
    Réponses: 2
    Dernier message: 04/07/2007, 11h59
  5. Comment convertir une image bmp en png??
    Par Leclair2000 dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2005, 08h15

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