示例#1
0
        public void ImageDivider(Bitmap imageToProcess)
        {
            if (imageToProcess.Height % 16 != 0)
            {
                throw new NotDivisibleBy16Exception();
            }

            this.width  = imageToProcess.Width;
            this.height = imageToProcess.Height;
            this.Length = width * height;
            this.pixels = new PixelPackageHelper <byte>(Length);

            int counter = 0;

            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y += Size)
                {
                    for (int i = 0; i < Size; i++)
                    {
                        Color color = imageToProcess.GetPixel(x, i + y);
                        pixels.Red[counter][i]   = color.R;
                        pixels.Green[counter][i] = color.G;
                        pixels.Blue[counter][i]  = color.B;
                        counter++;
                    }
                }
            }

            this.copyOfImage = CopyArrayOfBitmap(pixels);
        }
示例#2
0
        public PixelPackageHelper <byte> CopyArrayOfBitmap(PixelPackageHelper <byte> imagePixelsArray)
        {
            PixelPackageHelper <byte> copyOfdividedImage = new PixelPackageHelper <byte>(Length);

            for (int i = 0; i < Length; i++)
            {
                for (int j = 0; j < Size; j++)
                {
                    copyOfdividedImage.Red[i][j]   = imagePixelsArray.Red[i][j];
                    copyOfdividedImage.Green[i][j] = imagePixelsArray.Green[i][j];
                    copyOfdividedImage.Blue[i][j]  = imagePixelsArray.Blue[i][j];
                }
            }

            return(copyOfdividedImage);
        }