Unity中如何从jpg或png文件创建Texture2D

来源:互联网 发布:网络mg老虎机玩法 编辑:程序博客网 时间:2024/05/23 13:30

使用Texture2D的LoadImage方法即可实现从jpg或png文件创建Texture2D。经验证,当发布的目标平台为iOS时,此方法也是有效的。


function LoadImage (data : byte[]) : boolean

Description

Loads an image from a byte array.

This function loads a JPG or PNG image from raw byte[] array.

C#
using UnityEngine;using System.Collections;public class example : MonoBehaviour {    public TextAsset imageTextAsset;    void Start() {        Texture2D tex = new Texture2D(4, 4);        tex.LoadImage(imageTextAsset.bytes);        renderer.material.mainTexture = tex;    }}

This function replaces texture contents with new image data. After LoadImage, texture size and format might change. JPG files are loaded into RGB24 format, PNG files are loaded into ARGB32 format. If texture format before calling LoadImage is DXT1 or DXT5, then the loaded image will be DXT-compressed (into DXT1 for JPG images and DXT5 for PNG images).


例子:

                        //imagePath是jpg或png图片的路径

 FileStream fs = new System.IO.FileStream(imagePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);

byte[] thebytes =new byte[fs.Length];


fs.Read(thebytes,0, (int)fs.Length);


                        //实例化一个Texture2D,宽和高设置可以是任意的,因为当使用LoadImage方法会对Texture2D的宽和高会做相应的调整

      Texture2D texture = new Texture2D(1,1);


      texture.LoadImage(thebytes);

material.mainTexture = texture;

material.mainTextureScale =new Vector2(1,1);

material.mainTextureOffset =new Vector2(0,0);





原创粉丝点击