Beispiel #1
0
 public static bool FastCompare(int offset, int size, int ptr1, int ptr2, SimpleBitmapInfo sharedInfo)
 {
     if (NativeMethods.memcmp((byte *)(ptr1 + offset), (byte *)(ptr2 + offset), (uint)size) != 0)
     {
         return(false);
     }
     return(true);
 }
Beispiel #2
0
        public SimpleBitmap()
        {
            Scan0      = IntPtr.Zero;
            bitmapData = null;
            bitMap     = null;

            Info = new SimpleBitmapInfo();
        }
Beispiel #3
0
        public static bool Compare(int y, int rowsize, int ptr1, int ptr2, SimpleBitmapInfo sharedInfo)
        {
            int calc = 0;
            int Size = sharedInfo.Width * sharedInfo.PixelSize * rowsize;

            calc = y * sharedInfo.Stride;

            if (NativeMethods.memcmp((byte *)(ptr1 + calc), (byte *)(ptr2 + calc), (uint)Size) != 0)
            {
                return(false);
            }
            return(true);
        }
Beispiel #4
0
        public static bool Compare(Rectangle block, int ptr1, int ptr2, SimpleBitmapInfo sharedInfo)
        {
            int calc      = 0;
            int WidthSize = block.Width * sharedInfo.PixelSize;

            calc = (block.Y) * sharedInfo.Stride + block.X * sharedInfo.PixelSize;

            for (int i = 0; i < block.Height; i++)
            {
                if (NativeMethods.memcmp((byte *)(ptr1 + calc), (byte *)(ptr2 + calc), (uint)WidthSize) != 0)
                {
                    return(false);
                }
                calc += sharedInfo.Stride;
            }
            return(true);
        }
Beispiel #5
0
        public void Lock()
        {
            if (Locked)
            {
                throw new Exception("Already locked");
            }

            lock (ProcessingLock)
            {
                bitmapData = bitMap.LockBits(new Rectangle(0, 0, bitMap.Width, bitMap.Height), ImageLockMode.ReadWrite, bitMap.PixelFormat);

                Info = new SimpleBitmapInfo(bitmapData);

                Scan0     = bitmapData.Scan0;
                Scan0_int = Scan0.ToInt32();
            }
        }