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); }
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)); }
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); }
public override void ParametersReader(string parameters) { numberOfBit = Convert.ToInt32(parameters.Trim()); twoPower = (byte)BitByte.powerOfTwo(numberOfBit); }