关于摄像机截屏

方案一:

void CameraCapture(Camera m_Camera, string filename)
{
RenderTexture rt = new RenderTexture(Screen.width, Screen.height, 16);
m_Camera.targetTexture = rt;
m_Camera.Render();
RenderTexture.active = rt;
Texture2D t = new Texture2D(Screen.width, Screen.height);
t.ReadPixels(new Rect(0, 0, t.width, t.height), 0, 0);
t.Apply();
string path = Application.streamingAssetsPath + “/” + filename;
System.IO.File.WriteAllBytes(path, t.EncodeToJPG());
m_Camera.targetTexture = null;

}

方案二:
`public class GetImage : MonoBehaviour
{

public Camera mainCam; //待截图的目标摄像机
RenderTexture rt;  //声明一个截图时候用的中间变量 
Texture2D t2d;  //目标纹理
int num = 0;  //截图计数

public int W;
public int H;
void Start()
{
    t2d = new Texture2D(W, H, TextureFormat.RGB24, false);
    rt = new RenderTexture(W, H, 24);
    mainCam.targetTexture = rt
        ;
}

void Update()
{
    //按下空格键来截图
    if (Input.GetKeyDown(KeyCode.Space))
    {
        //截图到t2d中
        RenderTexture.active = rt;
        t2d.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
        t2d.Apply();
        RenderTexture.active = null;

        //将图片保存起来
        byte[] byt = t2d.EncodeToJPG(); //转成jpg格式
        File.WriteAllBytes(Application.dataPath + "//" + transform.name + ".jpg", byt); //文件写入

        Debug.Log("当前截图序号为:" + transform.name.ToString());
        num++;  //文件序号
    }
}

}`
具体的清晰度由相机的画面决定,如果不清晰可以尝试提升分辨率,模型精度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值