private void OptimizePNGStep1(Bitmap image)
 {
     for (int i = 2; i < image.Height - 2; i++)
     {
         for (int j = 2; j < image.Width - 2; j++)
         {
             image.SetPixel(j, i, ColorAndImageFactory.GetMedianFilter(
                                image.GetPixel(j - 2, i - 2), image.GetPixel(j - 1, i - 2), image.GetPixel(j, i - 2), image.GetPixel(j + 1, i - 2), image.GetPixel(j + 2, i - 2),
                                image.GetPixel(j - 2, i - 1), image.GetPixel(j - 1, i - 1), image.GetPixel(j, i - 1), image.GetPixel(j + 1, i - 1), image.GetPixel(j + 2, i - 1),
                                image.GetPixel(j - 2, i), image.GetPixel(j - 1, i), image.GetPixel(j, i), image.GetPixel(j + 1, i), image.GetPixel(j + 2, i),
                                image.GetPixel(j - 2, i + 1), image.GetPixel(j - 1, i + 1), image.GetPixel(j, i + 1), image.GetPixel(j + 1, i + 1), image.GetPixel(j + 2, i + 1),
                                image.GetPixel(j - 2, i + 2), image.GetPixel(j - 1, i + 2), image.GetPixel(j, i + 2), image.GetPixel(j + 1, i + 2), image.GetPixel(j + 2, i + 2)
                                ));
         }
         _progress.OperationsDone++;
     }
 }