[英]Load Bitmap into memory in Unity using System.Drawing
使用 Unity 2017.4.33f1-Personal。
我正在嘗試使用 System.Drawing 命名空間中的Image.FromFile方法在 GameObject 的邏輯中加載 Bitmap。 請注意,我對將此 bmp 保存為資產或類似的東西不感興趣。 我只是想把它加載到我可以做一些計算的 RAM 中。 我嘗試了以下方法:
var result = Image.FromFile(
AssetDatabase.GetAssetPath(mainImg)
) as Bitmap;
但我收到以下錯誤:
InvalidProgramException: Invalid IL code in System.Drawing.Image:FromFile (string): IL_0000: ret
供參考,
mainImg
是對Texture2D
資源的引用AssetDatabase.GetAssetPath(mainImg)
解析為Assets/CustomPackages/SeededConstruction/PuzzleBuilder/Input/main.bmp
我還嘗試了許多其他愚蠢的事情,包括獲取絕對路徑和用反斜杠替換正斜杠,如下所示:
var result = Image.FromFile(
Directory.GetCurrentDirectory()
+ "\\"
+ AssetDatabase.GetAssetPath(mainTileset)
.Replace('/', '\\')
) as Bitmap;
在這種情況下,路徑解析為D:\_Projects\2dGenerator\PlatformGeneration\Assets\CustomPackages\SeededConstruction\PuzzleBuilder\Input\main.bmp
。 但是,這會返回與上述相同的錯誤。
我在這里做錯了什么? 看起來這種方法在 normal.Net 應用程序中運行良好,為什么在 Unity 中不行呢?
事實證明這不是任何類型的文件路徑問題。 為了在 Unity 2017.4.33f1-Personal 中正確引用 System.Drawing,我采取了以下步驟:
mcs.rsp
添加到我的統一項目根資產文件夾中。 在文本編輯器中打開它,在第一行輸入: -r:System.Drawing.dll
。 節省。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.