static BitmapFrame CreateBitmapVersionOne(byte[] bitmapVersionOneBytes, BITMAPINFOHEADER bitmapVersionOneHeader) { var fileHeaderSize = Marshal.SizeOf(typeof(BITMAPFILEHEADER)); var infoHeaderSize = bitmapVersionOneHeader.biSize; var fileSize = fileHeaderSize + bitmapVersionOneHeader.biSize + bitmapVersionOneHeader.biSizeImage; var fileHeader = new BITMAPFILEHEADER(); fileHeader.bfType = BITMAPFILEHEADER.BM; fileHeader.bfSize = fileSize; fileHeader.bfReserved1 = 0; fileHeader.bfReserved2 = 0; fileHeader.bfOffBits = fileHeaderSize + infoHeaderSize + bitmapVersionOneHeader.biClrUsed * 4; var fileHeaderBytes = GeneralApi.StructureToByteArray(fileHeader); var bitmapStream = new MemoryStream(); bitmapStream.Write(fileHeaderBytes, 0, fileHeaderSize); bitmapStream.Write(bitmapVersionOneBytes, 0, bitmapVersionOneBytes.Length); bitmapStream.Seek(0, SeekOrigin.Begin); var bitmap = BitmapFrame.Create(bitmapStream); return(bitmap); }
byte[] ConvertMetaInformationToByteArray(ImageMetaInformation metaInformation) { return(GeneralApi.StructureToByteArray(metaInformation)); }