2016-11-08 84 views
0

我在使用Unity中的AForge.net操作位图的场景中。但是,一个位图不能应用于Unity中的纹理,所以我明显可以看到我的输出,那么这是如何完成的?在Unity中将位图转换为Texture2D

我相信我必须使用MemoryStream,但是以什么样的方式对我来说是未知的。

+0

仅供参考,image.Save(ms,format);总是崩溃统一,示例代码:http://stackoverflow.com/a/7350732/5452781,我刚刚结束复制它像素逐个像素..最好将位图转换为byte []数组,并将该数组加载到统一质地。 – mgear

+0

此链接对此有帮助吗? https://forum.unity3d.com/threads/convert-writeablebitmap-to-texture2d-efficiently.210305/ –

+0

也许你只是尝试复制纹理像素使用https://docs.unity3d.com/ScriptReference/Texture2D .SetPixel.html? –

回答

0

我管理通过使用一个MemoryStream实现这一点,即:

 MemoryStream msFinger = new MemoryStream(); 
     bitmapCurrentframeRed.Save(msFinger, bitmapCurrentframeRed.RawFormat); 
     redCamera.LoadImage(msFinger.ToArray()); 
     redFilter.GetComponent<Renderer>().material.mainTexture = redCamera; 

随着bitmapCurrentframeRed是一个位图, redCamera是一个Texture2D和redFilter是一个游戏对象(平面)用于查看我的输出。