c# - SharpDX - System.Drawing 互操作性

标签 c# .net directx-11 sharpdx

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

如果是,怎么办?

编辑:到目前为止我在尝试什么:

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();

最佳答案

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

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

  ms.Position = 0;

关于c# - SharpDX - System.Drawing 互操作性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427275/

相关文章:

c++ - AcquireNextFrame 不工作(桌面复制 API 和 D3D11)

c# - 如何在带有 StringTemplate 的循环中使用 IF 语句

c# - 如何对列表进行排序,既不是升序也不是降序,而是自定义

c# - C++ C# 包装器相关。如何从 C# 窗口获取 hwnd 并将其传递给 C++?

c# - Usinq Linq 选择以半逗号分隔的字符串中的项目?

c# - 每次单击带有 OnClick 事件的按钮时,如何防止页面进入顶部?

directx - 加载/存储到 XMFLOAT4 比使用 XMVECTOR 更快?

c# - 在功能区 UI 中切换选项卡

C# 正则表达式。大括号{}和 mod(%) 字符内的所有内容

c# - 将 json 反序列化为对象 : wrapper class workaround