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

使用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);





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值