2

XNA.Texture2D から System.Drawing.Bitmapこれで私の質問に答えたと確信していますが、外部サイトにリンクされており、利用できなくなりました。

xna ゲームで Windows フォームを使用しています。パネルの 1 つに背景画像を使用したいと考えています。ファイルからロードするのは簡単ですが、ゲームを別のシステムに展開すると、明らかにファイルの場所が異なります。

Bitmap bmp = new Bitmap(@"c:\myImage.png");

上記の質問で、誰かが Texture2d.saveToPng を使用してメモリ ストリームからビットマップを開くことを提案しました。誰かが私をその方向に導くことができれば、これは素晴らしいことです。他のアイデアはありますか?

4

2 に答える 2

5

これは私にとってはうまくいきます。問題がある場合は、お知らせください。

public static Image Texture2Image(Texture2D texture)
{
   Image img;
   using (MemoryStream MS = new MemoryStream())
   {
       texture.SaveAsPng(MS, texture.Width, texture.Height);
       //Go To the  beginning of the stream.
       MS.Seek(0, SeekOrigin.Begin);
       //Create the image based on the stream.
       img = Bitmap.FromStream(MS);
   }
   return img;
}
于 2012-09-19T13:23:29.157 に答える
1

Texture2D.SaveAsJpeg()ビットマップの作成を可能にする 2 つの方法、またはを使用できますTexture2D.SaveAsPng()

MemoryStream memoryStream = new MemoryStream();
Texture2D texture = Content.Load<Texture2D>( "Images\\test" );
texture.SaveAsJpeg( memoryStream, texture.Width, texture.Height ); //Or SaveAsPng( memoryStream, texture.Width, texture.Height )

System.Drawing.Bitmap bmp = new System.Drawing.Bitmap( memoryStream );
于 2012-09-19T13:33:01.757 に答える