2014-10-06 5 views
1

У меня есть код в form1 конструктору:Как преобразовать Bitmap в поток памяти?

ConvertedBmp = ConvertTo24(newest.FullName); 

Функция ConvertTo24 является:

private static Bitmap ConvertTo24(string inputFileName) 
     { 
      sw = Stopwatch.StartNew(); 
      Bitmap bmpIn = (Bitmap)Bitmap.FromFile(inputFileName); 
      Bitmap converted = new Bitmap(bmpIn.Width, bmpIn.Height, PixelFormat.Format24bppRgb); 
      using (Graphics g = Graphics.FromImage(converted)) 
      { 
       g.PageUnit = GraphicsUnit.Pixel; 
       g.DrawImageUnscaled(bmpIn, 0, 0); 
      } 
      sw.Stop(); 
      return converted; 
     } 

Проблема заключается в том, как я могу использовать ConvertedBmp в этой строке:

backTexture = TextureLoader.FromFile(D3Ddev, @"D:\test.bmp"); 

TextureLoader имеют некоторые свойства, а два из них: Fromfile, и он получает устройство и строку или FromStream и получает устройство и Stream.

У меня уже есть объект устройства, но как я могу использовать ConvertedBmp (тип Bitmap) с TextureLoader?

+0

Является 'TextureLoader' части библиотеки, и если да, то какая библиотека? – bubbinator

+0

TextureLoader является частью Microsoft DirectX.Direct3D, и я использую версию DirectX 9 в этом проекте. –

ответ

1

Класс битмапа имеет метод Save(), который принимает Stream (например, объект MemoryStream) и ImageFormat, используйте это. После сохранения Bitmap в MemoryStream вы можете использовать это с TextureLoader.

Image.Save Method (Stream, ImageFormat)

Смежные вопросы