unity多张texture2d合并成⼀张图⽚
public Texture2D[] t = new Texture2D[4];
private void Start()
{
Texture2D tex = MergeImage(t);
byte[] bytes = tex.EncodeToJPG();
string filename = Application.streamingAssetsPath + "/Screenshot" + UnityEngine.Random.Range(0,1000) + ".png"; File.WriteAllBytes(filename , bytes);
}
public Texture2D MergeImage(Texture2D[] tex)
{
if (tex.Length == 0)
{
return null;
}
关于健康的小知识//定义新图的宽⾼, 合并分为两种情况⽔平⽅向合并、垂直⽅向合并
int width = 0, height = 0;
for (int i = 0; i < tex.Length; i++)
教师学年度工作总结{
//Debug.Log(tex[i].ToString());
//新图的⾼度
汉中油菜花//height += tex[i].height;
//if (i > 0)
/
/{
// //新图的宽度,这⾥筛选为最宽
// if (tex[i].width > tex[i - 1].width)
// {
// width = tex[i].width;
// }
//}
//else width = tex[i].width; //只有⼀张图
//新图的宽度
width += tex[i].width;
if (i > 0)
{
//新图的⾼度,这⾥筛选为最⾼
if (tex[i].height > tex[i - 1].height)
{写给心累的自己的句子
height = tex[i].height;
}
好听的手机来电铃声}
else height = tex[i].height; //只有⼀张图
}
//初始Texture2D
Texture2D texture2D = new Texture2D(width, height);
int x = 0, y = 0;
for (int i = 0; i < tex.Length; i++)
{
//取图
Color32[] color = tex[i].GetPixels32(0);
//赋给新图
if (i > 0)
{
//texture2D.SetPixels32(x, y+=tex[i-1].height, tex[i].width, tex[i].height, color); //⾼度 texture2D.SetPixels32(x += tex[i - 1].width, y , tex[i].width, tex[i].height, color); //宽度 }
else
{
texture2D.SetPixels32(x, y, tex[i].width, tex[i].height, color);
}
}
//应⽤
texture2D.Apply();
return texture2D;
excel表格制作大全}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论