У меня есть файл растрового изображения (.bmp), и я хочу преобразовать его в формат метафайла (.emf). В настоящее время я использую этот код:
Metafile metafile;
using (MemoryStream stream = new MemoryStream())
using (Graphics rtfBoxGraphics = m_ActiveTab.Controls[0].CreateGraphics())
{
IntPtr pDeviceContext = rtfBoxGraphics.GetHdc();
metafile = new Metafile(stream, pDeviceContext);
using (Graphics imageGraphics = Graphics.FromImage(metafile))
{
imageGraphics.DrawImageUnscaled(bmp1, new Rectangle(0, 0,bmp1.Width, bmp1.Height));
}
rtfBoxGraphics.ReleaseHdc(pDeviceContext);
}
// Get a handle to the metafile
IntPtr iptrMetafileHandle = metafile.GetHenhmetafile();
// Export metafile to an image file
CopyEnhMetaFile(iptrMetafileHandle, @"e:\Test\test4.emf");
// Delete the metafile from memory
DeleteEnhMetaFile(iptrMetafileHandle);
[DllImport("gdi32.dll")]
static extern IntPtr CopyEnhMetaFile( // Copy EMF to file
IntPtr hemfSrc, // Handle to EMF
String lpszFile // File
);
[DllImport("gdi32.dll")]
static extern int DeleteEnhMetaFile( // Delete EMF
IntPtr hemf // Handle to EMF
);
Почему этот код не работает должным образом? Пожалуйста, предоставьте мне полный код для преобразования растрового файла в файл метафайла (особенно .emf).
или же
Если возможно, тогда скажите мне, как я могу сохранить графический объект в формате метафайла.
Предположим, у меня есть этот код
Graphics NewGraphicsObj = m_ActiveTab.Controls[0].CreateGraphics();
Теперь я хочу сохранить этот NewGraphicsObj
в метафайле.
Любая помощь по этой теме
Заранее спасибо ...