コード例 #1
0
 public void Wykonaj(Zdjecie z, Stack <object> Argumenty)
 {
     if (z.Zaznaczenie.IsEmpty)
     {
         BitmapFilter.GrayScale(z.Duze);
     }
     else
     {
         if (z.Zaznaczenie.Width < 0)
         {
             z.Zaznaczenie.X     += z.Zaznaczenie.Width;
             z.Zaznaczenie.Width *= -1;
         }
         if (z.Zaznaczenie.Height < 0)
         {
             z.Zaznaczenie.Y      += z.Zaznaczenie.Height;
             z.Zaznaczenie.Height *= -1;
         }
         Bitmap   grayed = new Bitmap(Math.Abs(z.Zaznaczenie.Width), Math.Abs(z.Zaznaczenie.Height), z.Duze.PixelFormat);
         Graphics g      = Graphics.FromImage(grayed);
         g.DrawImage(z.Duze, new Rectangle(0, 0, grayed.Width, grayed.Height), z.Zaznaczenie, GraphicsUnit.Pixel);
         g.Dispose();
         BitmapFilter.GrayScale(grayed);
         g = Graphics.FromImage(z.Duze);
         g.DrawImage(grayed, z.Zaznaczenie);
         g.Dispose();
     }
 }
コード例 #2
0
        /// <summary>
        /// Metoda wykonujaca usrednianie Bitmap'y
        /// </summary>
        /// <param name="b">Bitmapa na ktorej ma zostac wykonana operacja</param>
        /// <param name="nWeight">Intensywnosc usrednienia</param>
        public static void MeanRemoval(Bitmap b, int nWeight /* default to 9*/)
        {
            ConvMatrix m = new ConvMatrix();

            m.SetAll(-1);
            m.Pixel  = nWeight;
            m.Factor = nWeight - 8;

            BitmapFilter.Conv3x3(b, m);
        }
コード例 #3
0
        /// <summary>
        /// Metoda wykonujaca wygladzanie Bitmap'y
        /// </summary>
        /// <param name="b">Bitmapa na ktorej ma zostac wykonana operacja</param>
        /// <param name="nWeight">Intensywnosc rozmycia</param>
        public static void Smooth(Bitmap b, int nWeight /* default to 1 */)
        {
            ConvMatrix m = new ConvMatrix();

            m.SetAll(1);
            m.Pixel  = nWeight;
            m.Factor = nWeight + 8;

            BitmapFilter.Conv3x3(b, m);
        }
コード例 #4
0
        /// <summary>
        /// Metoda wykonujaca wyostrzanie Bitmap'y
        /// </summary>
        /// <param name="b">Bitmapa na ktorej ma zostac wykonana operacja</param>
        /// <param name="nWeight">Intensywnosc wyostrzania</param>
        public static void Sharpen(Bitmap b, int nWeight /* default to 11*/)
        {
            ConvMatrix m = new ConvMatrix();

            m.SetAll(0);
            m.Pixel  = nWeight;
            m.TopMid = m.MidLeft = m.MidRight = m.BottomMid = -2;
            m.Factor = nWeight - 8;

            BitmapFilter.Conv3x3(b, m);
        }
コード例 #5
0
        /// <summary>
        /// Metoda wykonujaca rozmycie gaussa Bitmap'y
        /// </summary>
        /// <param name="b">Bitmapa na ktorej ma zostac wykonana operacja</param>
        /// <param name="nWeight">Intensywnosc rozmycia</param>
        public static void GaussianBlur(Bitmap b, int nWeight /* default to 4*/)
        {
            ConvMatrix m = new ConvMatrix();

            m.SetAll(1);
            m.Pixel  = nWeight;
            m.TopMid = m.MidLeft = m.MidRight = m.BottomMid = 2;
            m.Factor = nWeight + 12;

            BitmapFilter.Conv3x3(b, m);
        }
コード例 #6
0
        /// <summary>
        /// Metoda wykonujaca wykrywanie krawedzi w Bitmap'ie
        /// </summary>
        /// <param name="b">Bitmapa na ktorej ma zostac wykonana operacja</param>
        public static void EdgeDetectQuick(Bitmap b)
        {
            ConvMatrix m = new ConvMatrix();

            m.TopLeft    = m.TopMid = m.TopRight = -1;
            m.MidLeft    = m.Pixel = m.MidRight = 0;
            m.BottomLeft = m.BottomMid = m.BottomRight = 1;

            m.Offset = 127;

            BitmapFilter.Conv3x3(b, m);
        }