Advertisement
Vita94

EdgeDetectHorizontal

Apr 4th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.37 KB | None | 0 0
  1. // CSharpFilters.BitmapFilter
  2. public unsafe static bool EdgeDetectHorizontal(Bitmap b)
  3. {
  4.     Bitmap bitmap = (Bitmap)b.Clone();
  5.     BitmapData bitmapData = b.LockBits(new Rectangle(0, 0, b.get_Width(), b.get_Height()), 3, 137224);
  6.     BitmapData bitmapData2 = bitmap.LockBits(new Rectangle(0, 0, b.get_Width(), b.get_Height()), 3, 137224);
  7.     int stride = bitmapData.get_Stride();
  8.     IntPtr scan = bitmapData.get_Scan0();
  9.     IntPtr scan2 = bitmapData2.get_Scan0();
  10.     byte* ptr = (byte*)((void*)scan);
  11.     byte* ptr2 = (byte*)((void*)scan2);
  12.     int num = stride - b.get_Width() * 3;
  13.     int num2 = b.get_Width() * 3;
  14.     ptr += stride;
  15.     ptr2 += stride;
  16.     for (int i = 1; i < b.get_Height() - 1; i++)
  17.     {
  18.         ptr += 9;
  19.         ptr2 += 9;
  20.         for (int j = 9; j < num2 - 9; j++)
  21.         {
  22.             int num3 = (int)((ptr2 + stride - 9)[0] + (ptr2 + stride - 6)[0] + (ptr2 + stride - 3)[0] + (ptr2 + stride)[0] + (ptr2 + stride + 3)[0] + (ptr2 + stride + 6)[0] + (ptr2 + stride + 9)[0] - (ptr2 - stride - 9)[0] - (ptr2 - stride - 6)[0] - (ptr2 - stride - 3)[0] - (ptr2 - stride)[0] - (ptr2 - stride + 3)[0] - (ptr2 - stride + 6)[0] - (ptr2 - stride + 9)[0]);
  23.             if (num3 < 0)
  24.             {
  25.                 num3 = 0;
  26.             }
  27.             if (num3 > 255)
  28.             {
  29.                 num3 = 255;
  30.             }
  31.             (ptr + stride)[0] = (byte)num3;
  32.             ptr++;
  33.             ptr2++;
  34.         }
  35.         ptr += 9 + num;
  36.         ptr2 += 9 + num;
  37.     }
  38.     b.UnlockBits(bitmapData);
  39.     bitmap.UnlockBits(bitmapData2);
  40.     return true;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement