Init() public method

public Init ( ) : void
return void
Ejemplo n.º 1
0
        protected override IntPtr CreatePixmapHandle(int width, int height, BitCount bitsperpixel)
        {
            //Orientation = orient;
            PixmapOrientation orient = PixmapOrientation.BottomToTop;

            // Create a bitmap compatible with the screen
            fBitmapInfo = new BITMAPINFO();
            fBitmapInfo.Init();


            m_BytesPerRow = GDIPixmap.GetAlignedRowStride(Width, bitsperpixel, Alignment);
            fBitmapInfo.bmiHeader.biWidth = Width;

            if (PixmapOrientation.TopToBottom == orient)
                fBitmapInfo.bmiHeader.biHeight = -Height;   // Indicates a top-to-bottom orientation
            else
                fBitmapInfo.bmiHeader.biHeight = Height;

            fBitmapInfo.bmiHeader.biPlanes = 1;
            fBitmapInfo.bmiHeader.biBitCount = (ushort)bitsperpixel;
            fBitmapInfo.bmiHeader.biSizeImage = (uint)(m_BytesPerRow * Height);
            fBitmapInfo.bmiHeader.biClrImportant = 0;
            fBitmapInfo.bmiHeader.biClrUsed = 0;
            fBitmapInfo.bmiHeader.biCompression = GDI32.BI_RGB;
            //fBitmapInfo.bmiColors = IntPtr.Zero;

            m_pixelPointer = IntPtr.Zero;

            IntPtr bitmapHandle = GDI32.CreateDIBSection(GDIContext.CreateForDefaultDisplay(),
                ref fBitmapInfo, GDI32.DIB_RGB_COLORS, ref m_pixelPointer, IntPtr.Zero, 0);

            return bitmapHandle;
        }
Ejemplo n.º 2
0
        public static BITMAPINFO ToBitmapInfo(this PixelRectangleInfo pixmap)
        {
            BITMAPINFO bmi = new BITMAPINFO();
            bmi.Init();

            bmi.bmiHeader.biBitCount = (ushort)pixmap.BitsPerPixel;
            bmi.bmiHeader.biWidth = pixmap.Width;

            if (pixmap.Orientation == PixmapOrientation.TopToBottom)
                bmi.bmiHeader.biHeight = -pixmap.Height;
            else
                bmi.bmiHeader.biHeight = pixmap.Height;

            bmi.bmiHeader.biSizeImage = (uint)pixmap.GetImageSize();
            bmi.bmiHeader.biPlanes = 1;
            bmi.bmiHeader.biClrImportant = 0;
            bmi.bmiHeader.biClrUsed = 0;
            bmi.bmiHeader.biCompression = 0;

            return bmi;
        }
Ejemplo n.º 3
0
    public PixelBuffer(int width, int height)
    {
        // Create a MemoryDC to hold the bitmap.  Use IntPtr.Zero 
        // to create a device context that is compatible with the screen.
        
        fMemoryDC = GDI32.CreateCompatibleDC(IntPtr.Zero);


        // Create a bitmap compatible with the screen
        fBitmapInfo = new BITMAPINFO();
        fBitmapInfo.Init();


        fBitmapInfo.bmiHeader.biWidth = width;
        fBitmapInfo.bmiHeader.biHeight = -height;
        fBitmapInfo.bmiHeader.biPlanes = 1;
        fBitmapInfo.bmiHeader.biBitCount = 32;
        fBitmapInfo.bmiHeader.biClrImportant = 0;
        fBitmapInfo.bmiHeader.biClrUsed = 0;
        fBitmapInfo.bmiHeader.biCompression = GDI32.BI_RGB;
        fBitmapInfo.bmiColors = IntPtr.Zero;
        
        fBitmapHandle = GDI32.CreateDIBSection(User32.GetDC(IntPtr.Zero),
            ref fBitmapInfo, GDI32.DIB_RGB_COLORS, ref fBits, IntPtr.Zero, 0);

        fPixelData = new PixelData(width, height, 32, width * 4, fBits);

        // Get the bitmap structure back out so we can 
        // get our hands on the created pointer and whatnot
        //GDI32.GetBitmap(fBitmapHandle, ref fBitmapStructure);
        //fBits = fBitmapStructure.bmBits;

        // Select the bitmap into the memoryDC
        fOldBitmapHandle = GDI32.SelectObject(fMemoryDC, fBitmapHandle);
        fAlpha = 255;
    }
Ejemplo n.º 4
0
        void ConfigureVideoFormat()
        {
            fBitmapInfo = new BITMAPINFO();
            fBitmapInfo.Init();

            fBitmapInfo.bmiHeader = new BITMAPINFOHEADER();
            fBitmapInfo.bmiHeader.Init();

            // Get the current format information
            int formatSize = capGetVideoFormatSize();
            capGetVideoFormat(ref fBitmapInfo);

            PrintCompressionType(fBitmapInfo.bmiHeader.biCompression);

            // Fill in the things we want to change
            fBitmapInfo.bmiHeader.biWidth = Width;
            fBitmapInfo.bmiHeader.biHeight = Height;
            fBitmapInfo.bmiHeader.biPlanes = 1;
            fBitmapInfo.bmiHeader.biBitCount = 24; // 24 bits per frame - RGB
            fBitmapInfo.bmiHeader.biCompression = GDI32.BI_RGB;

            // Try to set the video format
            bool setSuccess = capSetVideoFormat(ref fBitmapInfo);

            // Get the settings again, and set the width
            // and height based on what was actually set
            capGetVideoFormat(ref fBitmapInfo);
            Width = fBitmapInfo.bmiHeader.biWidth;
            Height = fBitmapInfo.bmiHeader.biHeight;
        }
Ejemplo n.º 5
0
        public virtual int PixelBlt(Rectangle srcRect, Rectangle dstRect, IntPtr pixelPtr, BitCount bitsPerPixel)
        {

            BITMAPINFO bmInfo = new BITMAPINFO();
            bmInfo.Init();
            bmInfo.bmiHeader.biWidth = srcRect.Width;
            bmInfo.bmiHeader.biHeight = srcRect.Height;
            bmInfo.bmiHeader.biPlanes = 1;
            bmInfo.bmiHeader.biBitCount = (ushort)bitsPerPixel;
            bmInfo.bmiHeader.biClrImportant = 0;
            bmInfo.bmiHeader.biClrUsed = 0;
            bmInfo.bmiHeader.biCompression = GDI32.BI_RGB;
            //bmInfo.bmiColors = IntPtr.Zero;

            int rowsWritten = GDI32.StretchDIBits(this,
                dstRect.X, dstRect.Y, dstRect.Width, dstRect.Height,
                srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height,
                pixelPtr,
                ref bmInfo,
                GDI32.DIB_RGB_COLORS,
                (uint)TernaryRasterOps.SRCCOPY);

            return rowsWritten;
        }
Ejemplo n.º 6
0
        // Generalized bit block transfer
        // Can transfer from any device context to this one.
        public virtual void PixBlt(IPixelArray pixmap, int x, int y)
        {
            if (null == pixmap)
                return;

            BITMAPINFO bmi = new BITMAPINFO();
            bmi.Init();
            
            bmi.bmiHeader.biBitCount = (ushort)pixmap.BitsPerPixel;
            bmi.bmiHeader.biWidth = pixmap.Width;

            if (pixmap.Orientation == PixmapOrientation.TopToBottom)
                bmi.bmiHeader.biHeight = -pixmap.Height;
            else
                bmi.bmiHeader.biHeight = pixmap.Height;

            bmi.bmiHeader.biSizeImage = (uint)(pixmap.BytesPerRow * pixmap.Height);
            bmi.bmiHeader.biPlanes = 1;
            bmi.bmiHeader.biClrImportant = 0;
            bmi.bmiHeader.biClrUsed = 0;
            bmi.bmiHeader.biCompression = 0;

            int result = GDI32.StretchDIBits(DeviceContext, x, y, pixmap.Width, pixmap.Height, 0, 0, pixmap.Width, pixmap.Height, pixmap.Pixels,
                ref bmi, GDI32.DIB_RGB_COLORS, (uint)TernaryRasterOps.SRCCOPY);

            //Console.WriteLine("Result: {0}", result);
        }