Ejemplo n.º 1
0
        byte[] GetAllBytesFromBitmapHeader(IntPtr hBitmap)
        {
            var bmi = (BITMAPV5HEADER)Marshal.PtrToStructure(hBitmap, typeof(BITMAPV5HEADER));

            var infoHeaderSize = bmi.bV5Size;
            var imageSize      = imageNativeApi.GetImageSizeFromBitmapHeader(bmi);
            var fileSize       = (int)(infoHeaderSize + imageSize);

            var dibBuffer = new byte[fileSize];

            Marshal.Copy(hBitmap, dibBuffer, 0, fileSize);

            using (var bitmapStream = new MemoryStream())
            {
                bitmapStream.Write(dibBuffer, 0, dibBuffer.Length);
                bitmapStream.Seek(0, SeekOrigin.Begin);

                return(bitmapStream.ToArray());
            }
        }
Ejemplo n.º 2
0
        int GetStrideFromBitmapHeader(BITMAPV5HEADER bmi)
        {
            var imageSize = imageNativeApi.GetImageSizeFromBitmapHeader(bmi);

            return((int)(imageSize / bmi.bV5Height));
        }