SharpDX - System.Drawing互操作性

时间:2013-12-06 15:12:09

标签: c# .net directx-11 sharpdx

是否可以使用默认的.net绘制方法(System.Drawing方法)绘制到SharpDX Texture2D对象的东西,以便我可以将其显示为纹理? 最好使用SharpDX Toolkit。

如果是,怎么样?

编辑:我到目前为止所尝试的内容:

Bitmap b = new Bitmap(100,100);
MemoryStream ms = new MemoryStream();
b.Save(ms, System.Drawing.Imaging.ImageFormat.Png);    
Texture2D tex = Texture2D.Load(g.device, ms); // crashing here
ms.Close();

1 个答案:

答案 0 :(得分:6)

  b.Save(ms, System.Drawing.Imaging.ImageFormat.Png);    
  Texture2D tex = Texture2D.Load(g.device, ms); 

Save()调用使内存流位于流的末尾。哪个会混淆Load()方法,它无法从流中读取任何数据。您必须明确地回滚流。在两行代码之间插入此语句:

  ms.Position = 0;