2013-04-29 69 views
1

我目前正在嘗試使用XNA加載一個簡單的位圖,但我得到了以下錯誤:嘗試加載一個位圖,但XNA want'sa的Texture2D

Error loading "Maps\standard". File contains Microsoft.Xna.Framework.Graphics.Texture2D but trying to load as System.Drawing.Bitmap.

代碼:

public Bitmap map; 

public void load(Game game, String image) { 
    path = image; //path to image 
    map = game.Content.Load<Bitmap>("Maps/"+path); 
    sizeX = map.Width; 
    sizeY = map.Height; 
} 
+0

你想用位圖文件做一次加載哪些? – M4st3rM1nd 2013-04-29 19:32:21

回答

1

你想要的如下:

map = game.Content.Load<Texture2D>("Maps/"+path); 

XNA的工作方式是有一個內容管道,它需要輸入(如你的位圖圖像)和produc es輸出(Texture2D),它與輸入格式不同。

XNA在顯示圖像時使用Texture2D對象。

+0

但我想要一個位圖。 – Hobbit9797 2013-04-29 11:35:32

+0

爲什麼你想要一個位圖?如果你想要一個位圖,那麼不要使用XNA來加載它。 – 2013-04-29 11:36:05

+0

@ Hobbit9797 Texture2D就像一個位圖。它有一個2D數據陣列,將紋理的值存儲爲一個像素網格。 XNA不直接支持使用位圖。 – MatthewMcGovern 2013-04-29 13:19:30

0

現在,我只是用C#標準

Bitmap bmp = (Bitmap)Bitmap.FromFile(path); 
+0

不要忘記一旦完成它就拋棄它:'bmp.Dispose()' – 2013-05-01 08:38:15