Exemplo n.º 1
0
        /// <summary>
        /// Encodes message into an image using the MessageArray and the ImageBMP properties as inputs.
        /// </summary>
        public void InsertMessage()
        {
            //int[] colorArr = GetArrayOfColors();
            int count = 0;

            int[] mess = ToOneDemArray(MessageArray);
            for (int x = 0; x < ImageBMP.Width; x++)
            {
                for (int y = 0; y < ImageBMP.Height; y++)
                {
                    Color pixelColor = ImageBMP.GetPixel(x, y);
                    Color newColor = MakeSpaceInPixel(pixelColor);
                    int   red, green, blue;
                    if (count < mess.Length)
                    {
                        red = newColor.R + mess[count];
                    }
                    else
                    {
                        red = newColor.R;
                    }
                    count++;
                    if (count < mess.Length)
                    {
                        green = newColor.G + mess[count];
                    }
                    else
                    {
                        green = newColor.G;
                    }
                    count++;
                    if (count < mess.Length)
                    {
                        blue = newColor.B + mess[count];
                    }
                    else
                    {
                        blue = newColor.B;
                    }
                    count++;
                    newColor = Color.FromArgb(red, green, blue);
                    ImageBMP.SetPixel(x, y, newColor);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Decodes message in image using the ImageBMP.
        /// </summary>
        public void ExtractMessage()
        {
            List <int> messNums = new List <int>();

            for (int x = 0; x < ImageBMP.Width; x++)
            {
                for (int y = 0; y < ImageBMP.Height; y++)
                {
                    Color pixelColor = ImageBMP.GetPixel(x, y);
                    messNums.Add(BitBlock.GetMod(pixelColor.R, BlockSize));
                    messNums.Add(BitBlock.GetMod(pixelColor.G, BlockSize));
                    messNums.Add(BitBlock.GetMod(pixelColor.B, BlockSize));
                }
            }
            MessageArray = ToTwoDemArray(messNums.ToArray());
            string temp = BitBlock.BinaryToMessage(MessageArray, BlockSize);

            Message = temp;
        }
Exemplo n.º 3
0
        private int[] GetArrayOfColors()
        {
            List <Color> pixelList = new List <Color>();
            List <int>   colorList = new List <int>();

            for (int x = 0; x < ImageBMP.Width; x++)
            {
                //Gets X coordinate
                for (int y = 0; y < ImageBMP.Height; y++)
                {
                    pixelList.Add(ImageBMP.GetPixel(x, y));
                }
            }
            foreach (Color pixel in pixelList)
            {
                colorList.Add(pixel.R);
                colorList.Add(pixel.G);
                colorList.Add(pixel.B);
            }
            return(colorList.ToArray());
        }