TakePhotoX

news/2025/1/15 18:12:49/

Demo下载

TakePhotoXDemo Android 版本 APK 下载 - PGYER.COM 安装密码:123456

GitHub - yijiebuyi/TakePhotoX: 基于CameraX 实现拍照,二维码扫描,录像 

功能

  • 支持前后摄像头切换
  • 支持4:3 16:9 1:1 图片拍摄
  • 支持二维码扫描识别
  • 支持灯光控制

使用

  • 1.在project的build.gradle添加如下代码
allprojects {repositories {...maven { url "https://jitpack.io" }}
}
  • 2.依赖androidx
dependencies {implementation 'com.github.yijiebuyi:TakePhotoX:v1.2.2'
}

拍照基本用法:

  • 使用CameraView,自己实现相机ui
//CameraView对外提供的功能,详细见ICamera,IFlashLight//CameraView使用
private CameraView mCameraView;
//================常用的功能如下=================
//拍照
mCameraView.take();
//对焦
mCameraView.focus(float x, float y, float rawX, float rawY);
//切换前置后置
mCameraView.switchFace();
//相机切换预览比例和拍照比例
mCameraView.switchAspect(@ExAspectRatio.ExRatio int ratio);//================设置回调======================
//设置拍照回调
mCameraView.setOnCameraListener(OnCameraListener l);
//设置对焦回调
mCameraView.setOnFocusListener(OnFocusListener l);    
//设置图片分析回调
mCameraView.setOnImgAnalysisListener(OnImgAnalysisListener l);
//设置前后摄像头切换回调
mCameraView.setOnCameraFaceListener(OnCameraFaceListener l);
//设置相机预览view的布局和尺寸变化回调
mCameraView.setOnPreviewLayoutListener(OnPreviewLayoutListener l);
  • 也可以使用CameraFragment,使用默认的提供的ui效果
   FragmentManager fm = getSupportFragmentManager();FragmentTransaction ft = fm.beginTransaction();final CameraFragment cfg = new CameraFragment();CameraOption option = new CameraOption.Builder(ExAspectRatio.RATIO_16_9).faceFront(false).build();Bundle data = new Bundle();data.putSerializable(CameraFragment.KEY_CAMERA_OPTION, option);cfg.setArguments(data);cfg.setOnCameraListener(new OnCameraListener() {@Overridepublic void onTaken(Uri uri) {//返回拍照图片uri}@Overridepublic void onCancel() {finish();}});
  • 直接使用CameraXActivity
startActivityForResult(new Intent(MainActivity.this, CameraXActivity.class), 1000);@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK && data != null) {//返回拍照的图片地址Uri uri = data.getData();}}

二维码扫描基本用法:

注:需要依赖zxing的包

  • 二维码扫描 直接使用QrCodeFragment
setWrapQrCodeCallback
  • 二维码扫描 使用QRCodeView
    mQRCodeView = new QRCodeView(mContext);mQRCodeView.setOnQrCodeCallback(QrCodeCallback callback);mQRCodeView.setScannerFrameOption(new ScannerFrameOption.Builder().frameMode(ScannerFrameOption.FrameMode.MODE_FRAME_SQUARE).frameRatio(0.6f).build());//add mQRCodeView

http://www.ppmy.cn/news/1526596.html

相关文章

Git 提取和拉取的区别在哪

1. 提取(Fetch) 操作说明:Fetch 操作会从远程仓库下载最新的提交、分支信息等,但不会将这些更改合并到你当前的分支中。它只是将远程仓库的更新信息存储在本地,并不会自动修改你当前的工作区。 使用场景: …

数据库(DB、DBMS、SQL)

今天我来讲解一下数据库和可视化数据库管理系统的使用 数据库概述 数据库 存储数据的仓库,数据是有组织的存储 DataBase (DB) 数据库管理系统 操纵和管理数据库的大型软件 DataBaseMangement System (DBMS) SQL 操作关系型数据库的编程语言,定义…

复现OpenVLA:开源的视觉-语言-动作模型及原理详解

复现OpenVLA:开源的视觉-语言-动作模型及原理详解 1. 摘要2. 引言3. 相关工作4. 模型结构4.1 模视觉-语言模型VLM4.2 训练流程4.3 图像分辨率4.4 微调视觉编码器4.5 训练轮数4.6 学习率4.7 训练细节4.8 参数高效微调 5. 复现5.1 下拉代码5.2 安装环境依赖5.2.1 创建…

大数据之Spark(二)

9.4.3、RDD持久化 RDD之间进行相互迭代计算(Transformation的转换),当执行开启,新RDD的生成代表旧RDD消失。如果有的rdd需要重复使用就需要将rdd缓存,rdd.cache()或rdd.persist()。清理缓存rdd.unpersist() 缓存特点&…

C++ 11新特性(1)

文章目录 C11新特性之auto和decltype知识点autoauto推导规则什么时候使用auto? decltypedecltype推导规则 auto和decltype的配合使用 C11新特性之左值引用、右值引用、移动语义、完美转发左值、右值纯右值、将亡值纯右值将亡值左值引用、右值引用 移动语义深拷贝、浅…

如何使用Chainlit让所有网站快速嵌入一个AI聊天助手Copilot

Copilot 副驾驶 Software Copilot 是嵌入到您的应用/产品中的一种新型助手。它们旨在通过提供情境指导并代表用户采取行动来帮助用户充分利用您的应用。 支持的功能 信息流媒体元素声音的询问用户聊天记录聊天资料反馈✅✅✅✅✅❌✅✅ 嵌入 Copilot 首先,确保您…

centos7安装MySQL5.7.44

下载压缩文件 命令: #放到在/usr/local目录下 cd /usr/local #上传命令选择安装包 rz #解压缩包 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz #给包重命名为mysql mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql #查看mysql目录下有什么东西 [rootlocal…

QT界面中的区域以及图像大小,想随着QT界面的放大缩小变化,如何实现?

原始界面 原始界面ui文本长这样&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>MainWindow</class><widget class"QMainWindow" name"MainWindow"><prope…