在Unity中将位图转换为Texture2D

本文关键字:转换 Texture2D 位图 Unity | 更新日期: 2023-09-27 18:16:57

我在Unity中使用AForge.net操纵位图的场景。然而,在Unity中,位图不能应用于纹理,所以我可以看到我的输出,那么这是如何做到的呢?

我相信我必须使用MemoryStream,但是我不知道以什么方式使用。

在Unity中将位图转换为Texture2D

我设法通过使用内存流来实现这一点,即:

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

如果bitmapCurrentframeRed是位图,redCamera是一个texture2D, redFilter是一个GameObject(平面),用于查看我的输出。

你可以尝试这些行转换System.Drawing.Bitmap到UnityEngine。Texture2D

Bitmap bmp = new Bitmap;
MemoryStream ms= new MemoryStream();
bmp.Save(ms,ImageFormat.PNG);
var buffer = new byte[ms.Length];
ms.position = 0;
ms.Read(buffer,0,buffer.Length);
Texture2D t = new Texture2D(1,1);
t.LoadImage(buffer);