[DllImport("gdi32.dll")]
static extern uint GetEnhMetaFileBits(IntPtr hemf, uint cbBuffer,
[Out] byte [] lpbBuffer);
None.
None.
Please add some!
System.Drawing.Imaging.Metafile metafile = GetMetafileFromSomewhere();
IntPtr hEMF = metafile.GetHenhmetafile();
uint len = GetEnhMetaFileBits(hEMF, 0, null);
byte[] rawBytes = new byte[len];
GetEnhMetaFileBits(hEMF, len, result);
DeleteEnhMetaFile(hEMF);
//Another sample
[System.Runtime.InteropServices.DllImport("gdi32")]
static extern int GetEnhMetaFileBits(IntPtr hemf, int cbBuffer, byte[] lpbBuffer);
byte[] GetBytes(Image img)
{
// use interop to get the metafile bits
Metafile mf = img as Metafile;
var enhMetafileHandle = mf.GetHenhmetafile();
var bufferSize = GetEnhMetaFileBits(enhMetafileHandle, 0, null);
var buffer = new byte[bufferSize];
GetEnhMetaFileBits(enhMetafileHandle, bufferSize, buffer);
// return bits
return buffer;
}
Do you know one? Please contribute it!