700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Unity3d C# 代码以字节数组byte[]动态创建(new Texture2D)纹理贴图(Texture)

Unity3d C# 代码以字节数组byte[]动态创建(new Texture2D)纹理贴图(Texture)

时间:2024-03-14 12:54:15

相关推荐

Unity3d C# 代码以字节数组byte[]动态创建(new Texture2D)纹理贴图(Texture)

动态

用代码创建贴图纹理可以直接使用 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);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。