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

Windows Forms Discussion :

Afficher puis changer la couleur d'une image


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Afficher puis changer la couleur d'une image
    Bonjour à tous,

    J'ai 2 questions concernant la gestion des images en VB.NET.
    1) J'ai plusieurs images de formes aléatoires (se sont des pays) que je voudrai afficher simultanément dans une fenêtre VB.NET. Je ne vois pas du tout comment faire ?
    2) Une fois ces images affichées je voudrais pouvoir changer la couleur des images une à une (mes images sont noires sur fond transparent. voir exemple ci-dessous)

    Nom : 64.png
Affichages : 575
Taille : 557 octets

    Je n'ai pas trouvé la réponse à ces deux questions. Si quelqu'un à une idée...

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 177
    Points : 5 738
    Points
    5 738
    Par défaut
    1) Je ne comprend pas la question

    2) J'ai déjà effectuer des algorithmes de lissage sur des images.
    Tu doit travail pixel par pixel je pense.

    Dans ton image tous les pixels sont noir. Après il sont opaque, transparent ou entre les deux pour les bords (composante Alpha).

    J'ai ajouté ton image dans un PictureBox (.Image) et associé ces 4 codes à 4 boutons.
    Le mieux pour toi serait la solution 3 ou 4 puisqu'elle donne le même résultat.
    La 4 étant plus robuste mais inutile dans ton cas puisque tous tes pixels sont noir.

    Code c# : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    // Permet de sauvegarder l'image d'origine
    Image ori;
     
    // Remplace les pixels noir opaque (noir complet) par du rouge (respecte la transparence)
    private void button1_Click(object sender, EventArgs e)
    {
        if (ori == null)
            ori = pictureBox1.Image;
     
        Color oldColor = Color.Black;
        Color newColor = Color.Red;
     
        Bitmap bmp = new Bitmap(ori);
        for (int x = 0; x < bmp.Width; x++)
            for (int y = 0; y < bmp.Height; y++)
            {
                Color gotColor = bmp.GetPixel(x, y);
                if (gotColor.ToArgb() == oldColor.ToArgb())
                    bmp.SetPixel(x, y, newColor);
            }
     
        pictureBox1.Image = bmp;
    }
     
    // Remplace les pixels noir qui ne sont pas complètement transparent par rouge (ne respecte pas la transparence)
    private void button2_Click(object sender, EventArgs e)
    {
        if (ori == null)
            ori = pictureBox1.Image;
     
        Color oldColor = Color.Black;
        Color newColor = Color.Red;
     
        Bitmap bmp = new Bitmap(ori);
        for (int x = 0; x < bmp.Width; x++)
            for (int y = 0; y < bmp.Height; y++)
            {
                Color gotColor = bmp.GetPixel(x, y);
                if (gotColor.A > 0 && Color.FromArgb(0, gotColor) == Color.FromArgb(0, oldColor))
                    bmp.SetPixel(x, y, Color.FromArgb(255, newColor));
            }
        pictureBox1.Image = bmp;
    }
     
    // Remplace tous les pixels par du rouge (respecte la transparence)
    private void button3_Click(object sender, EventArgs e)
    {
        if (ori == null)
            ori = pictureBox1.Image;
     
        Color newColor = Color.Red;
     
        Bitmap bmp = new Bitmap(ori);
        for (int x = 0; x < bmp.Width; x++)
            for (int y = 0; y < bmp.Height; y++)
            {
                Color gotColor = bmp.GetPixel(x, y);
                bmp.SetPixel(x, y, Color.FromArgb(gotColor.A, newColor));
            }
        pictureBox1.Image = bmp;
    }
     
    // Remplace les pixels noir qui ne sont pas complétement transparent par du rouge (respecte la transparence)
    private void button4_Click(object sender, EventArgs e)
    {
        if (ori == null)
            ori = pictureBox1.Image;
     
        Color oldColor = Color.Black;
        Color newColor = Color.Red;
     
        Bitmap bmp = new Bitmap(ori);
        for (int x = 0; x < bmp.Width; x++)
            for (int y = 0; y < bmp.Height; y++)
            {
                Color gotColor = bmp.GetPixel(x, y);
                if (gotColor.A > 0 && Color.FromArgb(0, gotColor) == Color.FromArgb(0, oldColor))
                    bmp.SetPixel(x, y, Color.FromArgb(gotColor.A, newColor));
            }
        pictureBox1.Image = bmp;
    }

    Certain préférerons peut être remaper la table des couleurs lors de leur dessin
    https://docs.microsoft.com/en-us/dot...or-remap-table

    PS : Désoler je ne travail pas en vb.net mais le principe reste le même.

Discussions similaires

  1. Changer les couleurs d'une image
    Par Bouki dans le forum Multimédia
    Réponses: 0
    Dernier message: 04/03/2011, 10h51
  2. Changer différentes couleurs dans une image
    Par cashmoney dans le forum Flex
    Réponses: 13
    Dernier message: 08/10/2009, 19h06
  3. [serieux] Changer les couleurs d'une image
    Par TabrisLeFol dans le forum La taverne du Club : Humour et divers
    Réponses: 5
    Dernier message: 14/12/2006, 14h27
  4. Changer partiellement la couleur d'une image
    Par freud dans le forum Delphi
    Réponses: 2
    Dernier message: 03/06/2006, 13h15
  5. Réponses: 2
    Dernier message: 04/04/2006, 18h03

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