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

Dotnet Discussion :

modifier la couche aplha d'un bitmap


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Par défaut modifier la couche aplha d'un bitmap
    Bonjour,

    je suis confronté au problème suivant: j'essaye d'afficher un bitmap de manière a ce que les couleurs soient plus pales, en cherchant un peu sur le net j'ai trouvé de quoi écrire ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ColorMatrix cm = new ColoMatrix();
    cm.MAtrix00 =cm.Matrix11 =cm.Matrix22= cm.Matrix44=1
    cm.Matrix33 =0.5f
    ColorMatrix cmGray = new ColorMAtrix;
     
    ImageAttributes ia = new ImageAttributes();
    ia.SetColorMatrix(cm,cmGray);
    Rectangle rect = new Rectangle(0,0,100,100);
    gr.DrawImage(myBitmap, rec,0,0,100,100,GraphicsUnit, ia);
    seulement je me retrouve avec une exception out of Memory!!!

    Le problème viens de l'ia et des colorMatrix puisque si je supprime la ligne ia.SetColorMatrix(cm,cmGray) l'image s'affiche bien (mais pas avec des couleurs plus pales
    En fait je ne suis même pas sur que sans cette erreur ce soit la bonne manière de procéder car peut-être que le code rend l'image semi-transparente ce qui n'est pas ce que je veux (je veux simplement que les couleurs soient plus pales)
    Est-ce que quelqu'un peut m'aider?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    En lisant ton message je pensais que tu pourrais rajouter une sorte de filtre blanc transparent pour rendre ton image plus pale.
    J'ai testé ... et ça marche
    Tu règles plus ou moins pale avec l'argument alpha de la brosse (ici mis à 100)
    Voilà le petit bout de code en VB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Dim Img1 As New Bitmap("C:\MonImage.jpg")
            Dim Grf1 As Graphics = Graphics.FromImage(Img1)
            Grf1.DrawImage(Img1, 0, 0)
            Grf1.FillRectangle(New SolidBrush(Color.FromArgb(100, 255, 255, 255)), 0, 0, Img1.Width, Img1.Height)
     
            PicBox1.Image = Img1

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Par défaut
    merci beaucoup ca marche!

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

Discussions similaires

  1. Modifier/forcer la taille de mon bitmap.
    Par linuxfr dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2009, 14h16
  2. Modifier un bitmap dans une TImageList
    Par Leesox dans le forum Delphi
    Réponses: 8
    Dernier message: 18/01/2007, 15h33
  3. Réponses: 6
    Dernier message: 21/09/2006, 16h08
  4. Modifier taille bitmap
    Par chourmo dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2006, 16h38
  5. Comment afficher un Bitmap contenant une couche alpha ?
    Par pwozniak dans le forum Composants VCL
    Réponses: 9
    Dernier message: 17/01/2005, 19h55

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