Exemple #1
0
        public override Color ColorWrite(BitArray data, int position, Color color)
        {
            byte red    = color.R;
            byte green  = color.G;
            byte blue   = color.B;
            int  number = 0;

            for (int i = 0; i < colors.Length; i++)
            {
                if (colors[i] == parameters[0])
                {
                    red = (byte)(color.R / BitByte.powerOfTwo(i + 1) * BitByte.powerOfTwo(i + 1) + BitByte.BitsToByte(data, position + number, i + 1));
                }
                if (colors[i] == parameters[1])
                {
                    green = (byte)(color.G / BitByte.powerOfTwo(i + 1) * BitByte.powerOfTwo(i + 1) + BitByte.BitsToByte(data, position + number, i + 1));
                }
                if (colors[i] == parameters[2])
                {
                    blue = (byte)(color.B / BitByte.powerOfTwo(i + 1) * BitByte.powerOfTwo(i + 1) + BitByte.BitsToByte(data, position + number, i + 1));
                }
                number += i + 1;
            }
            return(Color.FromArgb(red, green, blue));
        }
        public override Bitmap CreateAnalysisPicture()
        {
            Bitmap analysisPicture = new Bitmap(GetPicture().Width, GetPicture().Height);
            int    power2          = BitByte.powerOfTwo(numberOfBit);

            for (int i = 0; i < analysisPicture.Width; i++)
            {
                for (int j = 0; j < analysisPicture.Height; j++)
                {
                    analysisPicture.SetPixel(i, j,
                                             Color.FromArgb(
                                                 GetPicture().GetPixel(i, j).R - ((GetPicture().GetPixel(i, j).R / power2) % 2) * power2,
                                                 GetPicture().GetPixel(i, j).G - ((GetPicture().GetPixel(i, j).G / power2) % 2) * power2,
                                                 GetPicture().GetPixel(i, j).B - ((GetPicture().GetPixel(i, j).B / power2) % 2) * power2
                                                 ));
                }
            }
            return(analysisPicture);
        }
Exemple #3
0
        public override Color ColorWrite(BitArray data, int position, Color color)
        {
            byte red   = color.R;
            byte green = color.G;
            byte blue  = color.B;

            if (hideColor.Equals("red"))
            {
                red = (byte)(red / BitByte.powerOfTwo(numberOfBit) * BitByte.powerOfTwo(numberOfBit) + BitByte.BitsToByte(data, position, numberOfBit));
            }
            if (hideColor.Equals("green"))
            {
                green = (byte)(green / BitByte.powerOfTwo(numberOfBit) * BitByte.powerOfTwo(numberOfBit) + BitByte.BitsToByte(data, position, numberOfBit));
            }
            if (hideColor.Equals("blue"))
            {
                blue = (byte)(blue / BitByte.powerOfTwo(numberOfBit) * BitByte.powerOfTwo(numberOfBit) + BitByte.BitsToByte(data, position, numberOfBit));
            }
            return(Color.FromArgb(red, green, blue));
        }
Exemple #4
0
        public int[] FindNumberOfSequence()
        {
            int powerOfTwo = BitByte.powerOfTwo(numberOfBit);

            int[] sequences = new int[powerOfTwo];
            for (int i = 0; i < sequences.Length; i++)
            {
                sequences[i] = 0;
            }
            for (int i = 0; i < GetBitmap().Height; i++)
            {
                for (int j = 1; j < GetBitmap().Width; j++)
                {
                    sequences[(GetBitmap().GetPixel(j, i).R % powerOfTwo)]++;
                    sequences[(GetBitmap().GetPixel(j, i).B % powerOfTwo)]++;
                    sequences[(GetBitmap().GetPixel(j, i).G % powerOfTwo)]++;
                }
            }
            return(sequences);
        }
Exemple #5
0
 public override void ParametersReader(string parameters)
 {
     numberOfBit = Convert.ToInt32(parameters.Trim());
     twoPower    = (byte)BitByte.powerOfTwo(numberOfBit);
 }