烘焙贴图是在unity里将Shader结果在一张显示在一张RenderTexture上,然后转成Texture2D,然后再变成一张.PNG的图片保存到本地。 void SaveTexture(RenderTexture rt, string mname) { byte[] _bytes = toTexture2D(rt).EncodeToPNG(); if (File.Exists(fullPath)) { File.Delete(fullPath); } File.WriteAllByte...
如果你需要将Texture2D对象保存为图片文件,可以使用Unity的System.IO命名空间中的类来完成。以下是一个示例代码: csharp using UnityEngine; using System.IO; public void SaveTextureAsPNG(Texture2D texture, string filePath) { byte[] bytes = texture.EncodeToPNG(); File.WriteAllBytes(filePath, bytes); ...
Texture2D->Sprite->Texture 🟨 sprite 和 bytes[] 的互相转换 1️⃣ 从sprite 转换到bytes[] 代码语言:javascript 复制 publicbyte[]GetByte(Sprite sp){//转换成TextureTexture2D temp=sp.texture;//在转换成bytesbyte[]photoByte=temp.EncodeToPNG();returnphotoByte;} 2️⃣ 从bytes[] 转换到Spri...
Texture2Dtexture=newTexture2D(width,height);if(texture.LoadImage(bytes)){print("图片加载完毕");returntexture;//将生成的texture2d返回,到这里就得到了外部的图片,可以使用了}else{print("图片尚未加载");returnnull;}} 经过上边的方法获取到了外部的图片,得到的是Texture2d,如果目的是需要sprite,则调用下边的...
Texture2D readableText = new Texture2D(source.width, source.height); readableText.ReadPixels(new Rect(0, 0, renderTex.width, renderTex.height), 0, 0); readableText.Apply(); //这里可以转 JPG PNG EXR Unity都封装了固定的Api //byte[] bytes = readableText.EncodeToPNG(); byte[] bytes =...
Texture2D保存为png图片: stringyourFile="D:/yourway/computeTex.png";//路径记得要修改!注意该路径斜线是向左的,和电脑里文件将爱路径相反publicvoidsaveTexture2D(Texture2Dtexture,stringfile){byte[]bytes=texture.EncodeToPNG();UnityEngine.Object.Destroy(texture);System.IO.File.WriteAllBytes(file,bytes);De...
尽管第二种方式可以使用另外一个线程加载图片成Bytes数组,但是将字节数组转成成Texture2D还是在主线程里,而这个过程在图片5M的时候还是很卡顿,何况我的地形贴图每张有20M左右。对于前面两种方式没有找到任何其他好的优化方式来解决。第三种方式是我用到最理想的,在加载的过程中不会有卡顿。
Texture2D texture =newTexture2D(width, height);if(texture.LoadImage(bytes)) { print("图片加载完毕 ");returntexture;//将生成的texture2d返回,到这里就得到了外部的图片,可以使用了}else{ print("图片尚未加载");returnnull; } } 经过上边的方法获取到了外部的图片,得到的是Texture2d,如果目的是需要sprite...
texture2D.Apply(); RenderTexture.active = null; byte[] bytes = texture2D.EncodeToPNG(); //DataTime.UtcNow获取的是世界标准时区的当前时间不受电脑配置影响 //DateTime.Now获取的是电脑上的当前时间是可以自己进行调整的 File.WriteAllBytes(Application.dataPath + "//pic//" + (DateTime.UtcNow - new ...
yield return texture2d;byte[] bytes = pngTexture.EncodeToPNG();FilesTool.ExportFile(bytes, Application.persistentDataPath, "test.png");} 下面是shader的代码,其实和灰度图shader一样,只不过在处理rgba数值时修改一下就行。Shader "Unlit/GrayShader"{ Properties { _MainTex("Texture", 2D) = "white" ...