public override Bitmap CreateAnalysisPicture() { Bitmap analysisPicture = new Bitmap(GetPicture().Width, GetPicture().Height); Color pixel; 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 / power2) % 2) * power2, ((GetPicture().GetPixel(i, j).G / power2) % 2) * power2, ((GetPicture().GetPixel(i, j).B / power2) % 2) * power2 )); //Console.WriteLine(GetPicture().GetPixel(i, j) + " to " + analysisPicture.GetPixel(i, j)); } } return(analysisPicture); }
public override BitArray ColorRead(Color color) { BitArray array = new BitArray(BitsPerPixel()); int number = 0; for (int i = 0; i < colors.Length; i++) { if (colors[i] == parameters[0]) { BitByte.writeBitArray(array, number, color.R, i + 1); } if (colors[i] == parameters[1]) { BitByte.writeBitArray(array, number, color.G, i + 1); } if (colors[i] == parameters[2]) { BitByte.writeBitArray(array, number, color.B, i + 1); } number += i + 1; } return(array); }
public override void ParametersReader(string parameters) { numberOfBit = Convert.ToInt32(parameters.Trim()); twoPower = (byte)BitByte.powerOfTwo(numberOfBit); }
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 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 static BitArray ReadBitArray(string path) { return(BitByte.BytesToBits(File.ReadAllBytes(path))); }