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

 Delphi Discussion :

Transparence image à partir d'un TImageList


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut Transparence image à partir d'un TImageList
    Bonjour,

    Apparemment le 1er post a disparu, donc je repose ma question.

    Je souhaite obtenir la transparence du fond de mon image que je récupère dans un TImageList. Le fond de mon image à l'origine est vert et cela devrait donc devenir transparent.
    J'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Image1.Picture.Bitmap.TransParentColor := Image1.canvas.pixels[0,0];//  clRed; //  clLime;
      Image1.Picture.Bitmap.TransparentMode := tmAuto;
      ImageList1.Draw(Image1.Canvas, 0 , 0, 0);    //
    Or j'obtiens le fond blanc au lieu de transparent.
    si je remplace Image1.canvas.pixels[0,0] par clRed ou clLime, ça reste blanc...
    Où ai-je bien pu cafouiller ?
    Merci par avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Comment affiche tu ton image ? Sur quel composant ? Peut tu nous montrer ton code ?

    Vu que le fond devient blanc, ca veut dire que ta transparence est bien prise en compte, mais que tu dessine ton image sur un fond blanc ...

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Salut

    Comment affiche tu ton image ? Sur quel composant ? Peut tu nous montrer ton code ?

    Vu que le fond devien blanc, ca veut dire que ta transparence est bien prise en compte, mais que tu dessine ton image sur un fond blanc ...
    non mon fond est bleu avec un dessin...

    qui plus est si je mets une image dans mon Timage avant de charger celle ci-dessus, les deux ... s'affichent l'une sur l'autre

    et là mon fond est bien apparent cette fois. Si je l'enlève ... ploufff

  4. #4
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    As tu bien mis la propriété Transparent de ton TImage a true ?

    Le code suivant marche chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ImageList1.GetBitmap(0,Image1.Picture.Bitmap);
    Une petite précision : quand tu met TransparentMode a tmAuto, tu n'as pas besoin de définir la TransparentColor, elle se met automatiquement. C'est pour cela qu'en changeant ta couleur au début, ca restait blanc.

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 119
    Par défaut
    Le Blanc cela vient du TImage !
    Par défaut, il créé une zone blanche pour les zones non dessinées
    Comme tu dessine une image transparente, le vert est éliminé, le blanc reste

    Tu confonds la couleur de transparence de l'image cible avec celle de l'image source !
    C'est la couleur de la source (TImageList ) qui est utilisé entre TImageList vers TImage
    Puis c'est la couleur de transparence de TImage qui utilisé entre TImage et TForm
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 119
    Par défaut
    J'utilise plutôt GetBitmap mais lorsque j'ai ajouté l'image dans la TImageList,
    je lui ai affecté clFuchsia comme Pixel Bottom Left [0, Height] et non [0, 0]
    Je n'ai jamais tenté de modifier le Pixel en cours de route, je le fais lors du DesignTime

    Regarde aussi BkColor, en le definissant à clGreen, toutes les images devraient être dessiné en transparence
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    J'utilise plutôt GetBitmap mais lorsque j'ai ajouté l'image dans la TImageList,
    je lui ai affecté clFuchsia comme Pixel Bottom Left [0, Height] et non [0, 0]
    Je n'ai jamais tenté de modifier le Pixel en cours de route, je le fais lors du DesignTime

    Regarde aussi BkColor, en le definissant à clGreen, toutes les images devraient être dessiné en transparence
    et oui dans mon TimageList, j'avais laissé la propriété BkColor à clNone et j'avais essayé de la passer en dur à clLime qui est la couleur de fond de mes ".bmp".

    j'ai donc mis cette propriété à clLime dans le TImageList et ça roule.

  8. #8
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    merci à tous les deux...

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

Discussions similaires

  1. charger image à partir ressource directx 9
    Par ilimo dans le forum DirectX
    Réponses: 2
    Dernier message: 17/06/2004, 11h53
  2. Réponses: 4
    Dernier message: 14/10/2003, 08h58
  3. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 10h55
  4. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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