2012-10-23 60 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版本