先将个笑话: Sprite 转 Texture Sprite.texture;//蓦然回首才发现自行车就放在那里,之前还傻傻的到处去...
publicbyte[]GetByte(Sprite sp){//转换成TextureTexture2D temp=sp.texture;//在转换成bytesbyte[]photoByte=temp.EncodeToPNG();returnphotoByte;} 2️⃣ 从bytes[] 转换到Sprite 代码语言:javascript 复制 publicSpriteGetSprite(Byte[]bytes){//先创建一个Texture2D对象,用于把流数据转成Texture2DTexture2D...
{intx =0;while(x <texture.width) { UnityEngine.Color color=ca.GetPixel(x,y); texture.SetPixel(x,y,color);++x; }++y; } texture.Apply ();//texture.name = name ;byte[] pngData =GetJpgData (texture);returnpngData ; }//控制照片大小privatebyte[] GetJpgData(Texture2D te) {byte[...
int width=800; int height=640; 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方法转化...
//拿去PNG的图片字节数组 byte[] bytes = jpge.EncodeToPNG(); //自己分装的导出文件方法 FilesTool.ExportFile(bytes, Application.persistentDataPath, "test.png"); } 第二种是通过Shader叠加来生成一张想要的灰度图,方法也很简单,拿到图片数据后通过Graphics.Blit(pngTexture, GrayMaterial);方法叠加一个材质...
usingUnityEngine;usingSystem.Collections;usingSystem.IO;publicclassSaveToGallery:MonoBehaviour{publicstringimageName="MyImage.png";publicvoidSaveImageToGallery(Texture2Dtexture){byte[]bytes=texture.EncodeToPNG();stringpath=Path.Combine(Application.persistentDataPath,imageName);File.WriteAllBytes(path,bytes);/...
byte[] data = texture.GetRawTextureData(); ProcessImage(data, texture.width, texture.height); } } 在上面的代码中,我们定义了一个名为ImageProcessor的类,并在其中定义了一个名为Process的静态函数。这函数接受一个Texture2D对象作为参数,并将其转换为一个字节数组。然后,它调用了一个名为ProcessImage的原...
byte[] bs = upImage.sprite.texture.EncodeToJPG(); //将该texture转成jpg格式图片,返回byte[]数据 WWWForm form = new WWWForm(); //WWWForm是一个辅助类,该类用于生成表单数据, //然后WWW类就可以将该表单数据post到web服务器上了 form.AddBinaryData("picture", bs, "filename", "image/jpg"); ...
尽管第二种方式可以使用另外一个线程加载图片成Bytes数组,但是将字节数组转成成Texture2D还是在主线程里,而这个过程在图片5M的时候还是很卡顿,何况我的地形贴图每张有20M左右。对于前面两种方式没有找到任何其他好的优化方式来解决。第三种方式是我用到最理想的,在加载的过程中不会有卡顿。