GDI+实例教程之: 转换Image(BMP,JPG,GIF,PNG等) 到MetaFile(EMF

来源:岁月联盟 编辑:zhu 时间:2006-08-22

当然我们可以去造一个EMF图像文件格式的生成器,但没有一堆class 是不行的,如果你现在开始这样做,估计需要一个星期来完成。以后有空,我会讲一下如何写EMF图像文件格式的生成器。

现在我这里讲一个最简单实用的方法,只要几行代码就可以。
原理:
1. Metafile 构造一个图像文件。
2. 强大的Graphics 从Metafile生成,并画上原Image 的图。
就是这么简单。

相关代码:
public void ConvertToEmf( string imageFile, string emfFile )
  {
   // The existing bitmap.
   Bitmap bmp = new Bitmap( imageFile );

   // new metafile
   Metafile metaFile = new Metafile( emfFile,
    Graphics.FromHwnd( this.Handle ).GetHdc(),  // Get HDC
    EmfType.EmfPlusDual,
    "A test" );
   

   // draw image to metafile
   Graphics g = Graphics.FromImage( metaFile );   
   g.DrawImage( bmp, 0, 0, bmp.Width, bmp.Height );
 

   // Clear object clearly
   g.Dispose();
   metaFile.Dispose();
   bmp.Dispose();
  }


实例下载:
http://www.dwmsoft.cn/Dave/BlogExamples/GDI/TestEMF.zip