Unity中通过纹理截屏将图片保存到本地
2015-09-17 15:13
573 查看
using UnityEngine; using System.Collections; using System.IO; public class SavedScreen : MonoBehaviour { void Start () { // 开启一个协程 StartCoroutine (UploadPNG()); } // 定义一个协程 IEnumerator UploadPNG () { // 因为"WaitForEndOfFrame"在OnGUI之后执行 // 所以我们只在渲染完成之后才读取屏幕上的画面 yield return new WaitForEndOfFrame(); int width = Screen.width; int height = Screen.height; // 创建一个屏幕大小的纹理,RGB24 位格(24位格没有透明通道,32位的有) Texture2D tex = new Texture2D (width, height, TextureFormat.RGB24, false); // 读取屏幕内容到我们自定义的纹理图片中 tex.ReadPixels (new Rect(0, 0, width, height), 0, 0); // 保存前面对纹理的修改 tex.Apply (); // 编码纹理为PNG格式 byte[] bytes = tex.EncodeToPNG(); // 销毁吴永的图片纹理 Destroy (tex); // 将字节保存成图片,这个路径只能在PC端对图片进行读写操作 File.WriteAllBytes(Application.dataPath + "/onPcSavedScreen.png", bytes); // 这个路径会将图片保存到手机的沙盒中,这样就可以在手机上对其进行读写操作了 File.WriteAllBytes(Application.persistentDataPath + "/onMobileSavedScreen.png", bytes); } }
相关文章推荐
- Unity基础—射线概念和API
- Unity LOD LODGroup (LOD Bias)
- unity真机调试输出log文件
- Unity融合计费接入(电信爱游戏)
- (十一年)unity4.6得知Ugui中国文献-------参考-UGUI Visual Components
- Unity游戏开发—休闲类(有源代码)
- Unity开发—简单的RPG游戏
- unity3d实现视频播放
- Unity3D研究院之Android使用ANT自动打包(七十九)
- Unity3D研究院之Assetbundle的实战(六十三)
- (转) unity 在移动平台中,文件操作路径详解
- unity3d 制造自己的水体water effect
- unity3d制作弧形血条,魔条
- Unity Shader概念描述
- Unity粒子系统参数解析(二)(发射器)
- unity3D竖版菜单界面,以及音效音乐的分别控制
- Unity3d实现相机的跟随缩放旋转
- Unity粒子系统参数解析(一)
- Unity3D vuforia SDK 预制物体各组件功能说明
- 【转载】Unity 优雅地管理资源,减少占用内存,优化游戏