Ejemplo n.º 1
0
        byte[] GenerateByteArrayFromBitmapHandle(IntPtr bitmapHandle)
        {
            var bitmap = new IconNativeApi.BITMAP();

            AllocateBitmapSpace(bitmapHandle, ref bitmap);

            try
            {
                FillBitmapBitsIntoHandle(bitmap);

                var bitmapSource = CreateBitmapSourceFromHandle(bitmapHandle, bitmap);
                return(imagePersistenceService.ConvertBitmapSourceToByteArray(bitmapSource));
            }
            finally
            {
                imageNativeApi.DeleteObject(bitmapHandle);
            }
        }
Ejemplo n.º 2
0
        public byte[] UnwrapStructure(IClipboardFormat format)
        {
            if (format.Number != ClipboardNativeApi.CF_DIBV5)
            {
                return(null);
            }

            var hBitmap = clipboardNativeApi.GetClipboardData(ClipboardNativeApi.CF_DIBV5);

            var ptr = generalNativeApi.GlobalLock(hBitmap);

            try
            {
                return(GetAllBytesFromBitmapHeader(ptr));
            }
            finally
            {
                imageNativeApi.DeleteObject(ptr);
            }
        }