首先,你需要有一个Texture2D对象。这个对象可以是你通过代码创建的,也可以是从Unity的资源中加载的。 2. 将Texture2D对象转换为字节流 Unity提供了EncodeToPNG和EncodeToJPG等方法,可以将Texture2D对象编码为字节流。这里以PNG格式为例: csharp byte[] bytes = texture2D.EncodeToPNG(); 3. 将字节流写入文件,...
Texture2D 转byte[] //如果你想复制一张图片 就把注释打开 更改返回值就可以了 private byte[] duplicateTexture(Texture2D source) { RenderTexture renderTex = RenderTexture.GetTemporary( source.width, source.height, 0, RenderTextureFormat.Default, RenderTextureReadWrite.Linear); Graphics.Blit(source, render...
publicSpriteGetSprite(Byte[]bytes){//先创建一个Texture2D对象,用于把流数据转成Texture2DTexture2D texture=newTexture2D(10,10);texture.LoadImage(bytes);//流数据转换成Texture2D//创建一个Sprite,以Texture2D对象为基础Sprite sp=Sprite.Create(texture,newRect(0,0,texture.width,texture.height),Vector2.zer...
2、Unity调用Android,通过Android的方法获取到它,类型为Bitmap。 3、获取到它之后转成二进制byte[]。 4、Unity收到这个二进制后,通过Texture2d.LodImage的方法转换为Texture2d的图片,就可以直接使用了。 另外: 1、对于指定图片大小,可以从安卓层的Bitmap上获取,或者取图片的时候R.drawable.game_bg后面可以再点出...
Texture2D texture = new Texture2D(width, height); texture.LoadImage(bytes); 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 可以看到在使用这种方式读取图片文件的时候主要是将图片文件转化为byte[]数组,再利用Texture2D的LoadImage方法转化为Unity3D中的Texture2D。这种方法需...
public void save(Texture2D pic) { byte[] data = pic.EncodeToPNG(); string base64str = System.Convert.ToBase64String(data); PlayerPrefs.SetString("save_date",base64str); } Texture2D load() { string base64str = PlayerPrefs.GetString("save_date"); Texture2D pic = new Texture...
Texture2Dtexture2D=newTexture2D(1,1);byte[]bytes=ImageConversion.EncodeToPNG(texture2D);ImageConversion.LoadImage(texture2D,bytes); ImageConversion与Texture2D实例的方法相似。 很少用到的 1.UnsafeUtility——主要是管理Unsafe代码的工具类,就像Unsafe代码一样,一般不会使用到。
尽管第二种方式可以使用另外一个线程加载图片成Bytes数组,但是将字节数组转成成Texture2D还是在主线程里,而这个过程在图片5M的时候还是很卡顿,何况我的地形贴图每张有20M左右。对于前面两种方式没有找到任何其他好的优化方式来解决。第三种方式是我用到最理想的,在加载的过程中不会有卡顿。
texture2D.Apply(); RenderTexture.active = currentRT; RenderTexture.ReleaseTemporary(renderTexture); yield return texture2d; byte[] bytes = pngTexture.EncodeToPNG(); FilesTool.ExportFile(bytes, Application.persistentDataPath, "test.png"); }