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 :

Récupération du message caché dans une image en c#


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Par défaut Récupération du message caché dans une image en c#
    Bonjour tout le monde, je suis débutant dans la programmation en c# et je suis en train de réaliser une application Windows Form qui permet de cacher un message dans une image, et j'ai un problème au moment de décryptage du message caché je ne reçoit que des ??????????, voir image ci-dessous:
    Nom : Image1.png
Affichages : 383
Taille : 110,9 Ko
    ci-dessous le code :

    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
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace TatouageImg
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void buttonOuvrir_Click(object sender, EventArgs e)
            { 
     
                openFileDialog1.Filter = "Image Files (*.bmp) | *.bmp";
                // afficher dans la liste Box le chemin
                openFileDialog1.InitialDirectory = @"C:\ ";
                if (openFileDialog1.ShowDialog() == DialogResult.OK) //Si le browser de fichier est ouvert en mode lecture (open)
                {
                    textBoxFilePath.Text = openFileDialog1.FileName.ToString();
                    // afficher l'image dans la pictureBox
                    pictureBox1.ImageLocation = textBoxFilePath.Text;
                }
            }
     
            private void buttonCrypte_Click(object sender, EventArgs e)
            {
                // création d'un bimap à partir de l'image
                Bitmap bitmap = (Bitmap)pictureBox1.Image;
                for (int i=0; i < bitmap.Width; i++)
                {
                    for(int j=0; j < bitmap.Height; j++)
                    {
                        Color pixel = bitmap.GetPixel(i, j);
                        if(i<1 && j < textBoxMessage.TextLength)
                        {
                            char letter = Convert.ToChar(textBoxMessage.Text.Substring(j, 1));
                            int value = Convert.ToInt32(letter);
                            bitmap.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, pixel.B));
     
                        }
                        if(i==bitmap.Width-1 && j == bitmap.Height - 1)
                        {
                            bitmap.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, textBoxMessage.TextLength));
                        }
                    }
                }
                saveFileDialog1.Filter = "Image Files (*.bmp) | *.bmp";
                saveFileDialog1.InitialDirectory = @"C:\ ";
                if (saveFileDialog1.ShowDialog() == DialogResult.OK) //Si le browser de fichier est ouvert en mode ecriture
                {
                    textBoxFilePath.Text = saveFileDialog1.FileName.ToString();
                    // afficher l'image dans la pictureBox
                    pictureBox1.ImageLocation = textBoxFilePath.Text;
                    bitmap.Save(textBoxFilePath.Text);
                }
            }
     
            private void buttonDecrypter_Click(object sender, EventArgs e)
            {
                // création d'un bimap à partir de l'image
                Bitmap bitmap = (Bitmap)pictureBox1.Image;
                string message = "";
     
                Color lastpixel = bitmap.GetPixel(bitmap.Width - 1, bitmap.Height - 1);
                int msgLength = lastpixel.B;
     
                for (int i = 0; i < bitmap.Width; i++)
                {
                    for (int j = 0; j < bitmap.Height; j++)
                    {
                        Color pixel = bitmap.GetPixel(i, j);
                        if (i < 1 && j < msgLength)
                        {
                            int value = pixel.B;
                            char c = Convert.ToChar(value);
                            string letter = Encoding.UTF32.GetString(new byte[] { Convert.ToByte(c) });
                            //string letter = Encoding.ASCII.GetString(new byte[] { Convert.ToByte(c) });
     
                            message += letter;
                        }
                    }
                }
                textBoxMessage.Text = message;
            }
        }
    }

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Bah c'est que la valeur des bleus que tu récupères ne correspond à aucun signe définis par ta police.

    Dans ton encodage tu n'utilise pas la valeur de la lettre que tu souhaites "cacher"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     bitmap.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, pixel.B));
    Vu ton décodage j'imagine que tu devrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     bitmap.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, value));

Discussions similaires

  1. Comment extraire un message caché dans une bmp
    Par hajerboug dans le forum Langage
    Réponses: 5
    Dernier message: 07/04/2012, 00h55
  2. Clonezilla Récupération de fichiers dans une image
    Par Invité dans le forum Administration système
    Réponses: 2
    Dernier message: 05/05/2010, 11h38
  3. Ajouter des infos cachées dans une image
    Par rambc dans le forum Général Python
    Réponses: 6
    Dernier message: 24/06/2009, 17h48
  4. Images pas cache dans une column de DataGrid
    Par Gaaaga dans le forum Flex
    Réponses: 0
    Dernier message: 27/05/2008, 10h29
  5. Extraction d'un message dans une image (tatouage)
    Par roma1 dans le forum Images
    Réponses: 1
    Dernier message: 18/02/2008, 17h48

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