相机Camera
Camera需与SurfaceView配合使用
Camera类常用方法:
Camera.open() 创建Camera实例,打开相机 getParameters() 获取相机参数 release() 释放相机资源 setParameters(Camera.Parameters parameters) 设置相机参数 setPreviewDisplay(SurfaceHolder holder) 设置用于预览的SurfaceView setDisplayOrientation(int i) 设置默认角度,值为度数,如值为90即90° startPreview() 开始预览 stopPreview() 停止预览 takePicture(Camera.ShutterCallback shutter,Camera.PictureCallback raw, Camera.PictureCallback jepg) 用于拍摄,参数shutter为快门回调函数常用于音效等;参数raw为拍摄后回调提供照片数据;参数jpeg为拍摄后回调提供无损照片数据
相机参数常用方法
setPictureSize(int width,int height) 设置图片尺寸
setPictureFormat(int pixelFormat) 设置图片格式,如PixelFormat.JPEG
set("jpeg-quality",int quality) 设置图片质量,quality值标准为65,一般为75左右,不超过100
setFocusMode(String focusMode) 设置对焦模式,如FOCUS_MODE_CONTINUOUS_PICTURE为连续图片对焦
//设置相机camera= Camera.open();Camera.Parameters parameters =camera.getParameters();parameters.setPictureSize(640*3,480*3);parameters.setPictureFormat(PixelFormat.JPEG);parameters.set("jpeg-quality",80);parameters.setFocusMode(FOCUS_MODE_CONTINUOUS_PICTURE);camera.setParameters(parameters);camera.setDisplayOrientation(90);
//绑定SurfaceViewSurfaceHolder surfaceHolder=surfaceView.getHolder();surfaceHolder.addCallback(new SurfaceHolder.Callback() {public void surfaceCreated(@NonNull SurfaceHolder surfaceHolder) {try {camera.setPreviewDisplay(surfaceHolder);//启动预览camera.startPreview();} catch (IOException e) {throw new RuntimeException(e);}}public void surfaceChanged(@NonNull SurfaceHolder surfaceHolder, int i, int i1, int i2) {try {camera.setPreviewDisplay(surfaceHolder);//启动预览camera.startPreview();} catch (IOException e) {throw new RuntimeException(e);}}public void surfaceDestroyed(@NonNull SurfaceHolder surfaceHolder) {try {camera.setPreviewDisplay(surfaceHolder);//启动预览camera.startPreview();} catch (IOException e) {throw new RuntimeException(e);}}});//设置拍摄按钮监听器putButton.setOnClickListener(new View.OnClickListener() {public void onClick(View view) {camera.takePicture(null, null, new Camera.PictureCallback() {public void onPictureTaken(byte[] bytes, Camera camera) {camera.stopPreview();Bitmap bitmap_base=BitmapFactory.decodeByteArray(bytes,0,bytes.length);String sdPath= String.valueOf(Environment.getExternalStorageDirectory());//API29以上已不允许在SD卡目录下创建文件夹或文件,需在已有(自带)文件夹下创建文件夹或文件File file=new File(sdPath+"/DCIM/myCamera");boolean fileExists=false;if(!file.exists()){fileExists=file.mkdirs();}else {fileExists=true;}Log.d("OK","文件夹是否存在"+fileExists);int num=1;while (true){String imageName="image"+num+".jpeg";File imageFile=new File(file.getAbsolutePath()+"/"+imageName);if(!imageFile.exists()){//不存在,进行创建imageFile.getParentFile().mkdirs();try {imageFile.createNewFile();} catch (IOException e) {throw new RuntimeException(e+"地址"+imageFile.getAbsolutePath());}try {FileOutputStream outputStream = new FileOutputStream(imageFile);bitmap_base.compress(Bitmap.CompressFormat.JPEG,100,outputStream);Log.d("OK","保存完成"+imageFile.getAbsolutePath());outputStream.flush();outputStream.close();} catch (FileNotFoundException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}camera.startPreview();break;}else {num++;}}}});}});
//要记得释放相机资源protected void onDestroy() {super.onDestroy();if(camera!=null){camera.release();}}protected void onPause() {super.onPause();camera.stopPreview();}protected void onRestart() {super.onRestart();camera.startPreview();}
相关文章:
相机Camera
Camera需与SurfaceView配合使用 Camera类常用方法: Camera.open() 创建Camera实例,打开相机 getParameters() 获取相机参数 release() 释放相机资源 setParameters(Camera.Parameters parameters) 设置相机参数 setPreviewDisplay(SurfaceHolder holde…...
洛谷P8815:逻辑表达式 ← CSP-J 2022 复赛第3题
【题目来源】https://www.luogu.com.cn/problem/P8815https://www.acwing.com/problem/content/4733/【题目描述】 逻辑表达式是计算机科学中的重要概念和工具,包含逻辑值、逻辑运算、逻辑运算优先级等内容。 在一个逻辑表达式中,元素的值只有两种可能&a…...
ElementUI实现登录注册+axios全局配置+CORS跨域
一、搭建项目 1.1 安装 Element-UI 先确保是否安装了vue-cli脚手架工具 !!! 安装vue脚手架可以看看我的上一篇博客 构建好项目后通过npm安装element-ui cd 项目根路径 #进入新建项目的根目录 npm install element-ui -S #安装…...
Vue 07 Vue中的数据代理
通过数据代理,我可以方便的使用vm.属性,修改data中的属性 什么是数据代理 数据代理:通过一个对象代理对另一个对象中属性的操作(读/写) 我们修改obj2的x属性,其实修改的是obj的x属性 <!DOCTYPE html&…...
Foxit PDF SDK Windows 9.1 Crack
Foxit PDF SDK 变更日志 Windows/Linux/Mac 2023 年 8 月 新功能/增强功能 在开始签名之前设置外观。支持使用共享字典添加签名。允许在调用 Signature::StartSign() 之前增量保存文档。在签名前修改现有未签名分页印章签名的外观。支持使用共享字典添加分页签名。忽略全角…...
UG NX二次开发(C++)-采用NXOpen方法计算体的质心
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、创建一个part文件3、测量质心的NXOpen方法3.1 方法说明3.2 质心测量的代码3.3 测试结果1、前言 在UG NX二次开发过程中,测量是一个很必要的功能,比如测量距离、角度、面的体积、边长、…...
Java代码审计17之fastjson反序列化漏洞(2)
文章目录 1、类加载与反射调用1.1、类加载1.2、测试代码1.3、通过类的加载和反射调用evil类 2、Fastjson TemplatesImpl链调试2.1、链路总览2.2、调试构造利用链 3、fastjson反序列化TemplatesImpl 利⽤3.1、开启 Feature.SupportNonPublicField 得作用3.2、构造利用payload3.3…...
Fork/Join 框架是干什么的?
Fork/Join框架是Java中用于并行计算的一个重要工具,它旨在简化多线程编程,特别适用于分治任务的并行执行。Fork/Join框架的主要目标是提高多核处理器上任务的并行性,从而加速计算。 Fork/Join框架的核心概念包括以下几个要点: 分治策略:Fork/Join框架基于分治策略,将一个…...
电子信息工程专业课复习知识点总结:(五)通信原理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 第一章通信系统概述——通信系统的构成、各部分性质、性能指标1.通信系统的组成?2.通信系统的分类?3.调制、解调是什么?有什么用…...
LeetCode算法二叉树—二叉树的中序遍历
目录 94. 二叉树的中序遍历 - 力扣(LeetCode) 代码: 运行结果: 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2&am…...
ubuntu 18.04 中 eBPF samples/bpf 编译
1. history 信息 一次成功编译 bpf 后执行 history 得到的信息: yingzhiyingzhi-Host:~/ex/ex_kernel/linux-5.4$ history1 ls2 mkdir ex3 cd ex4 mkdir ex_kernel5 ls /boot/6 sudo apt install linux-source7 ls /usr/src/8 uname -r9 cd ex_kernel/10…...
新版Chromedriver在哪下载(Chromedriver 116.0.5845.188的寻找之旅)
不知道什么时候Chrome自动升级到116.0.5845.188了,害得我原来的Chromedriver 114无法使用了,无奈之下只好重新去下载。 可寻遍网络,都没找到Chromedriver116的版本。网上大多网友给的下载网址是chromedriver.storage.googleapis.com/index.ht…...
React基础知识点
1、简述什么是React(概念)? React是Facebook开发的一款用于构建用户界面的JS库。React一般被采用作为MVC中的V层,它不依赖其他任何的库,因此在开发中,可以与任何其他的库集成使用,包括Jquery等…...
linux用户和权限命令学习记录
文章目录 版权声明root用户(超级管理员)su和exit命令sudo命令为普通用户配置sudo认证 用户、用户组管理用户组管理getent命令 查看权限控制认知权限信息 修改权限控制chmod修改文件、文件夹的权限权限的数字序号chown修改所属用户、用户组 版权声明 本博…...
React(react18)中组件通信05——redux ➕ react-redux(含数据共享)
React(react18)中组件通信05——redux ➕ react-redux(含数据共享) 1. 前言1.1 React中组件通信的其他方式1.2 介绍React-Redux1.2.1 简单介绍React-Redux1.2.2 官网 1.3 安装react-redux 2. 简单改写redux的例子2.1 提供store2.2…...
字符函数和字符串函数(1)
前言 C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串 中或者 字符数组 中。 字符串常量 适用于那些对它不做修改的字符串函数. 1.求字符串长度 strlen 1.1 strlen size_t strlen ( const char * s…...
Visual Studio Code从GIT拉取vue项目并运行
安装Visual Studio Code 安装GIT 安装node.js,配置好环境变量 拉取项目 文章一 文章二 运行项目 文章一 提交代码 文章一...
【知识分享】Java获取全年每个月的有几周且每周是几号到几号
加哥本周给大家分享一期怎么用java把全年每个月有几周,本周是几号到几号的工具类。便于大家根据需求获取想要的形式进行改造。话不多说,直接给大家上代码。 package com.techfantasy.common.utils; import com.techfantasy.common.entity.DateRange; i…...
学信息系统项目管理师第4版系列11_信息安全管理
1. 信息安全基础 1.1. 保密性(Confidentiality) 1.1.1. 信息不被未授权者知晓的属性 1.1.2. 确保信息不暴露给未授权的实体或进程 1.2. 完整性(Integrity) 1.2.1. 信息是正确的、真实的、未被篡改的、完整无缺的属性 1.2.2. 只有得到允许的人才能修改数据&…...
sql注入原理分析
...
避坑指南:将π0模型从仿真迁移到Aubo真实机械臂,我踩过的那些‘坑’
从仿真到真实机械臂:π0模型迁移Aubo实战避坑手册 当我在实验室第一次看到π0模型在仿真环境中流畅地操控虚拟机械臂完成复杂抓取任务时,内心充满了将它部署到真实Aubo机械臂上的期待。然而,从仿真环境到真实硬件的迁移之路远比想象中坎坷——…...
智能能耗管理系统如何助力轨道交通实现绿色低碳运营
1. 轨道交通能耗管理的痛点与转型机遇 每天早高峰的地铁站里,黑压压的人群挤满站台,列车一趟接一趟地运送乘客。很少有人注意到,这些看似平常的运营背后,隐藏着惊人的能源消耗。以某一线城市地铁系统为例,单条线路年用…...
风光负荷不同鲁棒性对系统总成本的影响研究(考虑上下备用容量)(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
OpenClaw技能共享:将自研SecGPT-14B检测模块发布到ClawHub
OpenClaw技能共享:将自研SecGPT-14B检测模块发布到ClawHub 1. 为什么需要共享安全检测技能 去年我在做安全日志分析时,经常需要手动编写正则表达式匹配攻击特征。直到发现OpenClaw可以通过自然语言描述自动生成检测规则,才意识到AI自动化在…...
fa‘s‘d‘f
fa’s’d’fa’d...
千问3.5-9B镜像一键调用:OpenClaw自动化办公实战
千问3.5-9B镜像一键调用:OpenClaw自动化办公实战 1. 为什么选择OpenClaw千问3.5-9B组合? 去年冬天,我发现自己每天要花2小时处理邮件归档和会议记录整理。当我尝试用传统RPA工具时,发现它们对非结构化文本的处理能力有限——直到…...
Linux IO调度器详解与性能优化指南
1. Linux IO调度器概述作为一名长期从事Linux系统调优的工程师,我经常需要面对磁盘IO性能优化的问题。今天我想和大家深入探讨Linux内核中的四大IO调度算法,这些算法直接影响着系统的IO性能表现。现代计算机系统中,磁盘IO往往是性能瓶颈所在。…...
别再只会apt autoremove了!dpkg报错Sub-process returned error code (1)的5种修复姿势全解析
深度解析dpkg报错Sub-process returned error code (1)的5种专业修复策略 当你正在Ubuntu或Debian系统上安装某个关键软件包时,突然终端弹出一条刺眼的错误信息:"Sub-process /usr/bin/dpkg returned an error code (1)"。这不是普通的警告&am…...
华泰证券2027届校招启动|提前批+国际管培+金融科技,三个专场一次说清
导读很多同学还在等“春招后半场捡漏”,但现实已经变了。头部企业的优质岗位,正在通过提前批 专项项目提前锁定人选。如果你现在才开始准备,很可能连入场资格都拿不到。这次华泰证券的校招,就是一个非常典型的信号:提…...
突破企业AI应用开发瓶颈:Awesome-Dify-Workflow无代码解决方案深度剖析
突破企业AI应用开发瓶颈:Awesome-Dify-Workflow无代码解决方案深度剖析 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/…...
