unity 利用相机截图,可以截取UI,保存png格式,可用于签名抠图
2024-10-21 11:37:36
public Camera cam;
void Start()
{
StartCoroutine(CaptureAlphaCamera(cam,new Rect(0,0,1920,1080)));
} #region 截取透明图
/// <summary>
/// 3.对相机截图。
/// </summary>
IEnumerator CaptureAlphaCamera(Camera camera,Rect rect) {
yield return new WaitForEndOfFrame(); // 创建一个RenderTexture对象
RenderTexture rt = new RenderTexture((int)Screen.width,(int)Screen.height,0);
// 临时设置相关相机的targetTexture为rt, 并手动渲染相关相机
camera.targetTexture = rt;
camera.Render(); RenderTexture.active = rt;
Texture2D screenShot = new Texture2D((int)rect.width,(int)rect.height,TextureFormat.ARGB32,false);
screenShot.ReadPixels(rect,0,0);
screenShot.Apply(); // 重置相关参数,以使用camera继续在屏幕上显示
camera.targetTexture = null;
RenderTexture.active = null; // JC: added to avoid errors
GameObject.Destroy(rt); // 最后将这些纹理数据,成一个png图片文件
byte[] bytes = screenShot.EncodeToPNG();
string filename = Application.dataPath + "/Screenshot.png";
System.IO.File.WriteAllBytes(filename,bytes);
Debug.Log(string.Format("截屏了一张照片: {0}",filename)); //及时垃圾清理
System.GC.Collect();
//return screenShot;
}
最新文章
- 【原】聊聊js代码异常监控
- 如何实现能像windows 窗体一样改变大小的控件 Silverlight
- Java蛇形数组的简单实现代码
- javascript --- 再谈词法分析
- php--group_concat()函数总结
- sencha touch之模型(model)
- TX Textcontrol 使用总结六——常用属性设置
- MD5Encoder加密支持utf-8
- 《Linear Algebra and Its Applications》-chaper6-正交性和最小二乘法-基本概念与定理
- vuex构建笔记本应用学习
- thinkphp第二天
- kvm之三:本地安装虚拟机
- 在Hyper-V上安装RemixOS 的Android模拟器
- [Swift]LeetCode712. 两个字符串的最小ASCII删除和 | Minimum ASCII Delete Sum for Two Strings
- Html+css学习笔记二 标题
- 学习小片段——thymeleaf入门
- HDOJ5551 Huatuo&#39;s Medicine
- 实现定时器定时 1 秒钟,LED 亮灭显示
- Go 定长的数组
- CodeForces 4A