Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int[][] makeJaggedArray(int rowsCount, int columsCount)
- {
- int[][] jaggedArray = new int[rowsCount][];
- for (int row = 0; row < rowsCount; row++)
- {
- jaggedArray[row]= new int[columsCount];
- }
- return jaggedArray;
- }
- private int[][] makePixelsMatrix()
- {
- var bmp = new Bitmap(this.pictureBox1.Image);
- var rect = Rectangle.FromLTRB(0, 0, bmp.Width, bmp.Height);
- var data = bmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
- var matrix = makeJaggedArray(bmp.Height,bmp.Width);
- for (int row = 0; row < data.Height; row++)
- {
- var buffer = new int[data.Width];
- Marshal.Copy((data.Scan0 + row * data.Stride), buffer, 0, buffer.Length);
- for (int col = 0; col < data.Width; col++)
- {
- matrix[row][col] = buffer[col];
- }
- }
- bmp.UnlockBits(data);
- return matrix;
- }
- private Bitmap MakeBitmapWithMatrix(int[][] matrix)
- {
- var myBitmap = new Bitmap(pictureBox1.Image.Width, pictureBox1.Image.Height);
- var rect = new Rectangle(0, 0, myBitmap.Width, myBitmap.Height);
- var data = myBitmap.LockBits(rect, ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
- for (int row = 0; row < data.Height; row++)
- {
- Marshal.Copy(matrix[row], 0, (data.Scan0 + row * data.Stride), matrix[row].Length);
- }
- myBitmap.UnlockBits(data);
- return myBitmap;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement