Image组件,顾名思义,用来显示图片。
注意:在Unity中的2D坐标空间,将X定义为向右递增,而Y则向上递增。即左下角为原点,这和OpenCV里面是不一样的。
Image可以设置为纯色,或者用纹理图片代替
在脚本中,如果我们想动态加载图片该怎么做呢?
public Texture2D texture;
public Image image;
//1)读取目标文件
byte[] imageByte = File.ReadAllBytes(imagePath);
//2)转换成纹理
texture.LoadImage(imageByte);
//3)转换成精灵
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0, 0));
//4)给image赋值
image.sprite = sprite;
如果图片较大,速度转换会相应变慢,可以考虑吧Image控件换成RawImage,然后通过image.texture = texture直接赋值,省略第3)步
public Texture2D texture;
public RawImage image;
//1)读取目标文件
byte[] imageByte = File.ReadAllBytes(imagePath);
//2)转换成纹理
texture.LoadImage(imageByte);
//3)给image赋值
image.texture = texture;
速度提了好几倍!