本地生成图片两种方法
2018-01-19 17:27
302 查看
一种sprite变为Textrue2d,存在本地 ,博客已经说过
一种相机截图 需要引入 System.Drawing.dll:
public void CaptureCamera(Camera camera)
{
Rect rect=new Rect(Screen.width * 0f, Screen.height * 0f, Screen.width * 1f, Screen.height * 1f);
// 创建一个RenderTexture对象
RenderTexture rt = new RenderTexture((int)rect.width, (int)rect.height, 0);
camera.targetTexture = rt;
camera.Render();
RenderTexture.active = rt;
//Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height);
screenShot.ReadPixels(rect,0, 0);// 注:这个时候,它是从RenderTexture.active中读取像素
screenShot.Compress(true);
screenShot.Apply();
ui.TakePhoto.SetActive(true);
Sprite pic = Sprite.Create(screenShot, new Rect(0, 0, screenShot.width, screenShot.height), new Vector2(0.5f, 0.5f));//后面Vector2就是你Anchors的Pivot的x/y属性值
ui.Photo.GetComponent<UnityEngine.UI.Image>().sprite = pic;
camera.targetTexture = null;
//ps: camera2.targetTexture = null;
RenderTexture.active = null; // JC: added to avoid errors
Destroy(rt);
byte[] bytes = screenShot.EncodeToPNG();
i++;
//filename = Application.persistentDataPath + "/Screenshot" + i.ToString()+".png";
//创建一个新文件夹
path = "/storage/emulated/0/AR课本";
Directory.CreateDirectory(path);
pathpic = "/storage/emulated/0/AR课本/截图";
Directory.CreateDirectory(pathpic);
filenameOld = pathpic + "/IMG_" + i.ToString() + ".png";
File.WriteAllBytes(filenameOld, bytes);
}
一种相机截图 需要引入 System.Drawing.dll:
public void CaptureCamera(Camera camera)
{
Rect rect=new Rect(Screen.width * 0f, Screen.height * 0f, Screen.width * 1f, Screen.height * 1f);
// 创建一个RenderTexture对象
RenderTexture rt = new RenderTexture((int)rect.width, (int)rect.height, 0);
camera.targetTexture = rt;
camera.Render();
RenderTexture.active = rt;
//Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height);
screenShot.ReadPixels(rect,0, 0);// 注:这个时候,它是从RenderTexture.active中读取像素
screenShot.Compress(true);
screenShot.Apply();
ui.TakePhoto.SetActive(true);
Sprite pic = Sprite.Create(screenShot, new Rect(0, 0, screenShot.width, screenShot.height), new Vector2(0.5f, 0.5f));//后面Vector2就是你Anchors的Pivot的x/y属性值
ui.Photo.GetComponent<UnityEngine.UI.Image>().sprite = pic;
camera.targetTexture = null;
//ps: camera2.targetTexture = null;
RenderTexture.active = null; // JC: added to avoid errors
Destroy(rt);
byte[] bytes = screenShot.EncodeToPNG();
i++;
//filename = Application.persistentDataPath + "/Screenshot" + i.ToString()+".png";
//创建一个新文件夹
path = "/storage/emulated/0/AR课本";
Directory.CreateDirectory(path);
pathpic = "/storage/emulated/0/AR课本/截图";
Directory.CreateDirectory(pathpic);
filenameOld = pathpic + "/IMG_" + i.ToString() + ".png";
File.WriteAllBytes(filenameOld, bytes);
}
相关文章推荐
- 生成黑白画笔,android使用系统浏览器打开网页,将Bitmap图片存储在本地JPG文件的方法
- 在ASP.NET页面中显示自动生成图片的两种方法
- PHP根据图片url下载图片到本地的两种方法
- html生成图片并保存到本地方法(Windows)
- jquery生成二维码怎么添加图片(两种方法)
- PHP 生成一张图片的两种方法
- ASPX保存远程图片到本地的两种方法的函数
- ASPX保存远程图片到本地的两种方法的函数
- ASPX保存远程图片到本地的两种方法的函数
- JFreeChart生成折线图(生成图片本地保存,有解决中文乱码的通用方法)
- 最简单的JavaScript图片轮播代码(两种方法)
- 两种方法上传本地文件到github
- PHP文件生成的图片无法使用CDN缓存的解决方法
- 没有ID的验证码图片,调用方法将图片保存到本地
- 微信小程序加载本地图片方法
- JAVA用http协议GET方法从服务器获取图片保存到本地
- 将图片保存到系统相冊的两种方法
- 生成随机图片的方法----图片背景色的设置
- ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片
- 用ps给图片添加一些马赛克效果(两种方法)