【Xamarin+MonoGame】byte配列からTexture2Dを作成する

2016-09-16 10:02:34

  1. Xamarin+MonoGame
  2. 開発
画像ファイルなどパッキングして1個のバイナリファイルにして、そこから画像を読み込みたいとき用です。 単純に読み込んだ画像のbyte配列からTexture2Dを作りたいときにも使えます。
[スポンサードリンク]
コンテントパイプラインからのバイナリデータの読み込みについては以下記事を参照ください。 LoadContentに書けばOKです。 テスト用なのでbyteの確保サイズ等、直値になってます。
//2014byteの画像と2321byteの画像を結合した「test.dat」を読み込む。
byte[] testbuf = Content.Load<byte[]>("test");

{
	//1個目の画像のサイズは2014byte。
	byte[] buf = new byte[2014];
	Array.Copy(testbuf, buf, 2014);

	MemoryStream ms = new MemoryStream(buf);
	Texture2D texture = Texture2D.FromStream(GraphicsDevice, ms);
}
{
	//2個目の画像のサイズは2321byte。
	byte[] buf = new byte[2321];
	Array.Copy(testbuf, 2014, buf, 0, 2321);

	MemoryStream ms = new MemoryStream(buf);
	Texture2D texture2 = Texture2D.FromStream(GraphicsDevice, ms);
}
これで1個のバイナリファイルから「Texture2D」を2個読み込めました。
[スポンサードリンク]

コメント

[スポンサードリンク]
[スポンサードリンク]