2012-10-23 43 views
0

我在使用SharpDX时遇到了问题。我转换一个位图,用lockBits方法锁定这些位,然后创建一个DataStream并从中构建一个Texture2D。这似乎工作得很好,没有发生错误。 现在我有以下问题。我想将Texture2D转换回位图。有一种叫做Texture2D.ToStream(size,texture2D,stream)的方法,但是当我尝试这种方法时只会发生错误。 任何人都可以帮助我解决这个问题吗?转换为Image或WriteableBitmap也可以。SharpDX Texture2D到位图

+0

? (10/11或d2d) – catflier

+0

你可以在这里找到答案:https://stackoverflow.com/questions/37099845/convert-slimdx-direct3d11-texture2d-to-net-bitmap/47072283#47072283 –

回答

0

我找到了一个解决方案:

var inputTex2D = Texture2D.FromStream<Texture2D>(device, inputMemoryStream, (int)inputMemoryStream.Length, new ImageLoadInformation() 
     { 
      Depth = 1, 
      FirstMipLevel = 0, 
      MipLevels = 0, 
      Usage = ResourceUsage.Default, 
      BindFlags = BindFlags.ShaderResource, 
      CpuAccessFlags = CpuAccessFlags.None, 
      OptionFlags = ResourceOptionFlags.None, 
      Format = Format.R8G8B8A8_UNorm, 
      Filter = FilterFlags.None, 
      MipFilter = FilterFlags.None, 
     }); 

我的DirectX版本11.0您正在使用什么DirectX版本