赞
踩
项目中有需求,要将从网络中接收到的Base64(string
)在项目中转换为图片(Texture2D
)使用。稍微看了一下,其实很简单,这里记录一下:
Texture2D _texture = new Texture2D(4096, 4096);
_texture.LoadImage(Convert.FromBase64String(m_textureBase64));
这样就可以,获取到图片了。
代码中Texture2D
的长宽高是和后台、引擎的同学沟通之后获得的,或可在网络传输时获得;然后通过Convert.FromBase64String
函数将字符串string
的Base64转化为byte[]
类型;然后通过LoadImage
函数读取该byte[]
结果;便可以获得图片Texture2D
。
LoadImage
函数是UnityEngine
库中静态类ImageConversion
中的方法,他可以被Texture2D
类直接调用。该类中还有一些常用的方法函数,包括:
[NativeMethod(Name = "ImageConversionBindings::EncodeToEXR", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToEXR(this Texture2D tex, Texture2D.EXRFlags flags);
public static byte[] EncodeToEXR(this Texture2D tex);
[NativeMethod(Name = "ImageConversionBindings::EncodeToJPG", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToJPG(this Texture2D tex, int quality);
public static byte[] EncodeToJPG(this Texture2D tex);
[NativeMethod(Name = "ImageConversionBindings::EncodeToPNG", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToPNG(this Texture2D tex);
[NativeMethod(Name = "ImageConversionBindings::EncodeToTGA", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToTGA(this Texture2D tex);
[NativeMethod(Name = "ImageConversionBindings::LoadImage", IsFreeFunction = true)]
public static bool LoadImage([NotNull] this Texture2D tex, byte[] data, bool markNonReadable);
public static bool LoadImage(this Texture2D tex, byte[] data);
当然这也只是一部分,还有一些我并没有使用遇到,之后其用法再做补充。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。