(imageHandler.Width), Convert.ToInt32 (imageHandler.Height)) ;. Invalidate () ;. Cursor=Cursors.Default ; .RemoveCropAreaDraw () ;. Invalidate ();  
} 
 } (flag == true) ;. Invalidate () ;. Cursor=Cursors.Default; 
 } void saveImg_Click (object sender, EventArgs e)//збереження зображення без виділеної області 
  {(DialogResult.OK == sDlg1.ShowDialog ()) 
  {. SaveBitmap (sDlg1.FileName); 
 } 
 } void saveImgImg_Click (object sender, EventArgs e) 
  {
  {(DialogResult.OK == sDlg2.ShowDialog ()) 
  {. PasteTogether (cloneBitmap, cropX, cropY) .Save (sDlg2.FileName);//зберігаю зображення 
 } 
 } 
 } void deleteCrop_Click_1 (object sender, EventArgs e) 
  {. Visible=false;//pictureBox1 робимо невідімим.Enabled=false; .Enabled=false; 
 } void menuItemExit_Click (object sender, EventArgs e) 
  {. Close (); 
 } 
 } 
 } 
  namespace ImageProcessing 
  {class ImageHandler 
  {
  private string _bitmapPath;//змінна для зберігання адресса для сохр ізображеніяBitmap _currentBitmap=null;//поточне зображення [] [] colorOfPixel;// Матриця для зберігання значень пікселів поточного (оброблюваного) зображення [] [] beforeProcessing;// Матриця для зберігання значень пікселів зображення перед ізмененіемtrueWidth;// Початкова довга ізображеніяtrueHeight;//початкова висота ізображеніяisPicture=false;//наявність оброблюваної картінкіbool IsPicture//перевірка на наявність оброблюваної картинки в класі 
  {{return isPicture; } 
 } int Width//отримання ширини поточного зображення 
  {{return colorOfPixel.Length; } 
 } int Height//отримання висоту поточного зображення 
  {{return colorOfPixel [0] .Length; } 
 } int TrueWidth//отримання ширини початкового зображення 
  {{return trueWidth; } 
				
				
				
				
			 } int TrueHeight//отримання висоти початкового зображення 
  {{return trueHeight; } 
 } Bitmap GetBitmap ()//отримання поточного зображення 
  {_ currentBitmap; 
 } string BitmapPath//отримання шляху до зображення 
  {{return _bitmapPath; } {_bitmapPath=Value; } 
 } 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //РОБОТА З отриманих з ЗОБРАЖЕННЯ МАТРИЦІ ПІКСЕЛІВ І отримання зображення із МАТРИЦІ ПІКСЕЛІВ 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void SetBitmap (Bitmap bitmap)//завдання оброблюваного зображення 
  {= true;=bitmap.Width;=bitmap.Height;=MakeMatrixs (bitmap);=(int [] []) colorOfPixel.Clone (); (); 
 } CreateBitmap ()//заміна поточного зображення на отриманій з масиву пікселів colorOfPixel 
  {
  _ currentBitmap=MakeBitmap (colorOfPixel, colorOfPixel.Length, colorOfPixel [0] .Length); 
 } [] [] MakeMatrixs (Bitmap bitmap)//отримання матриці пікселів з картинки 
  {height=bitmap.Height; width=bitmap.Width; [] [] colorOfPixel=new int [width] [];//виділення місця під матрицю (int i=0; i lt; width; i ++) 
  {[i]=new int [height];//виділення місця під матрицю 
 } (int i=0; i lt; height; i ++) 
  {(int j=0; j lt; width; j ++) 
  {[j] [i]=bitmap.GetPixel (j, i) .ToArgb ();//копіювання пікселів 
 } 
 } colorOfPixel;//повернення матриці 
 } Bitmap MakeBitmap (int [] [] matrix, int width, int height)//функція збирає зображення з масиву пікселів 
  {bm=new Bitmap (width, height);//оздание зображення з потрібним розміром 
  for (int i=0; i lt; height; i ++) 
  {(int j=0; j lt; width; j ++) 
  {. SetPixel (j, i, Color.FromArgb (matrix [j] [i]));//заповнення зображення 
 } 
 } bm; 
 }