Esempio n. 1
0
        public byte[] UnwrapStructure(uint format)
        {
            //TODO: it is very sad that we invoke System.Drawing here to get the job done. probably not very optimal.

            var bitmapVersionFivePointer = ClipboardApi.GetClipboardData(ClipboardApi.CF_DIBV5);
            var bitmapVersionFiveHeader  = (BITMAPV5HEADER)Marshal.PtrToStructure(bitmapVersionFivePointer, typeof(BITMAPV5HEADER));

            if (bitmapVersionFiveHeader.bV5Compression == BI_RGB)
            {
                var bitmapVersionOneBytes  = ClipboardApi.GetClipboardDataBytes(ClipboardApi.CF_DIB);
                var bitmapVersionOneHeader = GeneralApi.ByteArrayToStructure <BITMAPINFOHEADER>(bitmapVersionOneBytes);

                return(HandleBitmapVersionOne(bitmapVersionOneBytes, bitmapVersionOneHeader));
            }
            else
            {
                return(HandleBitmapVersionFive(bitmapVersionFivePointer, bitmapVersionFiveHeader));
            }
        }
Esempio n. 2
0
 static ImageMetaInformation ConvertByteArrayToMetaInformation(byte[] data)
 {
     return(GeneralApi.ByteArrayToStructure <ImageMetaInformation>(data));
 }