动态
用代码创建贴图纹理可以直接使用 new Texture2D函数来实现,然后可以使用SetPixel来设置纹理的每个像素点,而在对接口是常用到的是给定图片的字节数组来创建,代码如下:
Texture2D Tex = new Texture2D(2560, 1440);
Tex.LoadImage(Data); //这个便是字节数组
byte[]和Texture互转
当然字节数组和纹理也可以进行互转,不同格式,有不同的函数支持,详细的内库说明如下:
public static byte[] EncodeToEXR(this Texture2D tex);
[NativeMethod(Name = "ImageConversionBindings::EncodeToEXR", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToEXR(this Texture2D tex, Texture2D.EXRFlags flags);
//
// 摘要:
// 将此纹理编码为JPG格式。
// 参数:
// tex:
// 转换的纹理
//
// quality:
// 编码JPG的质量 , 1..100 (默认 75).
public static byte[] EncodeToJPG(this Texture2D tex);
//
// 摘要:
// 将此纹理编码为JPG格式。
// 参数:
// tex:
// 转换的纹理
//
// quality:
// 编码JPG的质量 , 1..100 (默认 75).
[NativeMethod(Name = "ImageConversionBindings::EncodeToJPG", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToJPG(this Texture2D tex, int quality);
//
// 摘要:
// 将此纹理编码为PNG格式。
// 参数:
// tex:
// 转换的纹理
[NativeMethod(Name = "ImageConversionBindings::EncodeToPNG", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToPNG(this Texture2D tex);
//
//
// 摘要:
// 将此纹理编码为TGA格式。
// 参数:
// tex:
// 转换的纹理
[NativeMethod(Name = "ImageConversionBindings::EncodeToTGA", IsFreeFunction = true, ThrowsException = true)]
public static byte[] EncodeToTGA(this Texture2D tex);
//
// 摘要:
// 加载PNG/JPG (或者其他支持格式) 的格式图片给纹理.
//
// 参数:
// data:
// 加载的字节数组.
//
// markNonReadable:
// 默认设置为false,传递true可选地将纹理标记为不可读。
//
// tex:
// 载入图像的纹理
//
// 返回结果:
// 如果数据可以被加载,则返回true,否则返回false。
[NativeMethod(Name = "ImageConversionBindings::LoadImage", IsFreeFunction = true)]
public static bool LoadImage([NotNull("ArgumentNullException")] this Texture2D tex, byte[] data, bool markNonReadable);
public static bool LoadImage(this Texture2D tex, byte[] data);