当前位置: 代码迷 >> C# >> C#里怎么将DGI+绘制的图形保存在矢量图
  详细解决方案

C#里怎么将DGI+绘制的图形保存在矢量图

热度:31   发布时间:2016-05-05 04:38:50.0
C#里如何将DGI+绘制的图形保存在矢量图?
本帖最后由 u011304925 于 2013-08-29 22:43:53 编辑
使用DGI+绘制了曲线,但是显示出来全是锯齿
保存出来也是,一放大更没法看
就像这样

有没有什么办法可以保存成矢量图的?
至少看起来不要有锯齿就行了

在网上看到一个画矢量图的代码,但是有点不懂

  private bool Export(string filePath)
  {
   try
   {
    Bitmap bmp = new Bitmap(220,220);
    Graphics gs = Graphics.FromImage(bmp);
    Metafile mf  = new Metafile(filePath,gs.GetHdc());
    Graphics g = Graphics.FromImage(mf);

    Draw(g);

    g.Save();
    g.Dispose();
    mf.Dispose();

    return true;
   }
   catch
   {
    return false;
   }
  }

具体画的过程就没复制了,主要是下面两句有点不懂
    Metafile mf  = new Metafile(filePath,gs.GetHdc());
    Graphics g = Graphics.FromImage(mf);
然后好像作图就是在g里操作了,bmp和gs好像就只是传递了一下还是什么的
------解决思路----------------------
 


//...
Graphics g = Graphics.FromImage(mf);
//
g.SmoothingMode = SmoothingMode.AntiAlias;
Draw(g);
//...


------解决思路----------------------
Graphics
SmoothingMode :SmoothingMode.AntiAlias
Pen
StartCap: LineCap.Round?
EndCap : LineCap.Round
LineJoin :LineJoin.Round
------解决思路----------------------
严肃的纠正一下: 你这是 GDI+, 不是 DGI+
------解决思路----------------------
“放大就模糊”这是GDI的通病,你应该学会使用WPF了。你可以看看,在差不多10年前发布的WPF中,已经不玩儿GDI了,而是基于DirectX。

那么今天如果还有人热衷于叫你使用GDI来做实际的开发,你自己判断一下有多大意义嘛!
  相关解决方案