网站备案要买备案号/灰色行业推广

网站备案要买备案号,灰色行业推广,潍坊住房和城乡建设厅网站,wordpress 在线客服代码Android 拍照、选择图片并裁剪 uCrop裁剪 uCrop裁剪2 uCrop裁剪3 1.权限检查 private static final int REQUEST_CAMERA_PERMISSION 333; private void requestCameraPermission() {if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)! …

Android 拍照、选择图片并裁剪 

uCrop裁剪

uCrop裁剪2

uCrop裁剪3

1.权限检查

private static final int REQUEST_CAMERA_PERMISSION = 333;
private void requestCameraPermission() {if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.CAMERA},REQUEST_CAMERA_PERMISSION);}if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE},REQUEST_CAMERA_PERMISSION);}if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CAMERA_PERMISSION);}}

 2.拍照 相册选择弹框

private void showMenuDialog() {List<String> data = new ArrayList<>();data.add("拍照");data.add("相册中获取");// 底部选择框new MenuDialog.Builder(this)// 设置 null 表示不显示取消按钮//.setCancel(getString(R.string.common_cancel))// 设置点击按钮后不关闭对话框//.setAutoDismiss(false).setList(data).setListener(new MenuDialog.OnListener<String>() {@Overridepublic void onSelected(BaseDialog dialog, int position, String string) {phoneArr = new JSONArray();phoneArray = new JSONArray();switch (position) {case 0:
//                              // 调本地相机camera();break;case 1:openSysAlbum();break;case 2:break;default:break;}}@Overridepublic void onCancel(BaseDialog dialog) {toast("取消了");}}).show();}
/*** 拍照*/private void camera() {File file = new File(SAVE_REAL_PATH, System.currentTimeMillis() + ".jpg");Log.e(TAG, "拍照路径:" + file.getPath());if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//Android7.0以上URIif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//通过FileProvider创建一个content类型的Uri  注意报名和大小写
//            mProviderUri = FileProvider.getUriForFile(getActivity(), "com.baijie.crm.fileProvider", file);mProviderUri = FileProvider.getUriForFile(this, AppConfig.getPackageName() + ".provider", file);intent.putExtra(MediaStore.EXTRA_OUTPUT, mProviderUri);//添加这一句表示对目标应用临时授权该Uri所代表的文件intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);} else {mUri = Uri.fromFile(file);intent.putExtra(MediaStore.EXTRA_OUTPUT, mUri);}try {startActivityForResult(intent, RESULT_CODE_1);} catch (ActivityNotFoundException anf) {Log.e(TAG, "摄像头未准备好!");}}/*** 打开系统相册*/private void openSysAlbum() {Intent innerIntent = new Intent();if (Build.VERSION.SDK_INT < 19) {innerIntent.setAction(Intent.ACTION_GET_CONTENT);} else {innerIntent.setAction(Intent.ACTION_OPEN_DOCUMENT);}innerIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");Intent wrapperIntent = Intent.createChooser(innerIntent, "");startActivityForResult(wrapperIntent, SELECT_IMAGE_REQUEST_CODE);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == UCrop.RESULT_ERROR) {LogUtil.d("--onActivityResult--:", UCrop.getError(data) + "");return;}if (resultCode == RESULT_OK) {switch (requestCode) {case RESULT_CODE_1:// 拍照if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {cropRawPhoto(mProviderUri);} else {cropRawPhoto(mUri);}break;case RESULT_CODE_2:Log.i(TAG, "onActivityResult: " + data.getData());cropRawPhoto(data.getData());break;case UCrop.REQUEST_CROP:// 裁剪后的图片进行识别LogUtil.d(TAG, "onActivityResult: " + UCrop.getOutput(data));LogUtil.d(TAG, UCrop.getOutput(data) + "");// 在这里使用imageBitmap进行文字识别Uri uri = UCrop.getOutput(data);if (uri != null) {try {// 使用MediaStore来获取Bitmap对象Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);// 使用bitmap对象...recognizeTextFromBitmap(bitmap);} catch (IOException e) {e.printStackTrace();}}break;case SELECT_IMAGE_REQUEST_CODE:// 相册中选择图片去识别Uri uri_ = data.getData();Bitmap bitmap = getBitmapFromUri(uri_, this);recognizeTextFromBitmap(bitmap);break;default:break;}}}

3.调用UCrop进行图片裁剪

/*** 使用UCrop进行图片剪裁** @param uri*/public void cropRawPhoto(Uri uri) {UCrop.Options options = new UCrop.Options();// 修改标题栏颜色options.setToolbarColor(getResources().getColor(R.color.teal_200));// 修改状态栏颜色options.setStatusBarColor(getResources().getColor(R.color.teal_700));// 隐藏底部工具options.setHideBottomControls(true);// 图片格式options.setCompressionFormat(Bitmap.CompressFormat.JPEG);// 设置图片压缩质量options.setCompressionQuality(100);// 是否让用户调整范围(默认false),如果开启,可能会造成剪切的图片的长宽比不是设定的// 如果不开启,用户不能拖动选框,只能缩放图片options.setFreeStyleCropEnabled(true);options.setAllowedGestures(UCropActivity.SCALE, UCropActivity.NONE, UCropActivity.NONE); // 只允许缩放// 设置图片压缩质量options.setCompressionQuality(100);// 圆options.setCircleDimmedLayer(false);// 不显示网格线options.setShowCropGrid(true);createOrExistsDir(SAVE_REAL_PATH);// 设置源uri及目标uriUCrop.of(uri, Uri.fromFile(new File(SAVE_REAL_PATH, System.currentTimeMillis() + ".jpg")))// 长宽比
//                .withAspectRatio(1, 1)// 图片大小
//                .withMaxResultSize(200, 200)// 配置参数.withOptions(options).start(this);}public boolean createOrExistsDir(String dirPath) {File dir = new File(dirPath);// 判断目录是否存在if (!dir.exists()) {// 尝试创建目录return dir.mkdirs();}return true; // 目录已存在,返回true}

4.裁剪后的图片进行文字内容的识别,这里是识别手机号码这种数字类型的内容

private void recognizeTextFromBitmap(Bitmap bitmap) {InputImage image = InputImage.fromBitmap(bitmap, 0);TextRecognizer myRecognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);myRecognizer.process(image).addOnSuccessListener(new OnSuccessListener<Text>() {@Overridepublic void onSuccess(com.google.mlkit.vision.text.Text text) {String identifyContent = text.getText();LogUtil.d(TAG, "识别结果为:" + identifyContent);
//                        phoneArr.put(identifyContent);etPhone.setText(identifyContent);myRecognizer.close();startActivity(new Intent(ctx, ConfirmCustomerActivity.class).putExtra("IdentifyContent", identifyContent));}}).addOnFailureListener(new OnFailureListener() {@Overridepublic void onFailure(@NonNull Exception e) {// 处理错误e.printStackTrace();// 释放资源myRecognizer.close();}});}public Bitmap getBitmapFromUri(Uri uri, Context context) {ContentResolver contentResolver = context.getContentResolver();InputStream inputStream = null;try {inputStream = contentResolver.openInputStream(uri);Bitmap bitmap = BitmapFactory.decodeStream(inputStream);return bitmap;} catch (FileNotFoundException e) {e.printStackTrace();} catch (OutOfMemoryError e) {e.printStackTrace();} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}return null;}
private String SAVE_REAL_PATH = "/sdcard/DCIM/Camera";Uri mProviderUri;Uri mUri;private final int RESULT_CODE_1 = 1;private final int RESULT_CODE_2 = 2;private final int SELECT_IMAGE_REQUEST_CODE = 999;
// 流式布局implementation 'com.github.AnJiaoDe:MultiFlowLayout:1.1.1'implementation 'com.google.mlkit:text-recognition:16.0.0'implementation 'com.github.yalantis:ucrop:2.2.6'implementation 'com.github.yalantis:ucrop:2.2.6-native'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32基础教程——输入捕获模式测量PWM频率

目录 前言 技术实现 原理图 连线图 代码实现 内容要点 PWM基本结构 开启外设时钟 配置GPIO端口 配置时基单元 初始化输出比较单元 输出比较通道重映射 输入捕获功能初始化 计算捕获PWM的频率 实验结果 问题记录 前言 IC&#xff08;Input Capture&#xff09;输…

基于网启PXE服务器的批量定制系统平台(详细版)

项目说明 该项目共分为2个子项目&#xff0c;由iventoy和定制安装两部分组成 该项目旨在复习巩固系统服务部署使用、shell编程等知识&#xff0c;旨在让学生增加知识面&#xff0c;提高项目实习经历&#xff0c;充实简历 项目背景&#xff1a; 公司新购了一批服务器和台式机…

旅游CMS选型:WordPress、Joomla与Drupal对比

内容概要 在旅游行业数字化转型进程中&#xff0c;内容管理系统&#xff08;CMS&#xff09;的选择直接影响网站运营效率与用户体验。WordPress、Joomla和Drupal作为全球主流的开源CMS平台&#xff0c;其功能特性与行业适配性存在显著差异。本文将从旅游企业核心需求出发&…

el-table下的复选框关联勾选

效果展示&#xff1a; <el-table style"height: 500px;" :data"tableData" border empty-text"暂无数据" v-loading"loading":header-cell-style"{ text-align: center }" :cell-style"{ text-align: center }"…

解决Cubemx生产的 .ioc文件不能外部打开的方法

正常来说&#xff0c;cubemx生成的文件会有图标 但是当图标白色的时候&#xff0c;无法通过直接点击这个文件进入cubemx 1.首先检查java环境是不是装的JAVA8&#xff0c;如果是的话进行第二步操作&#xff1b; 2.重新安装一次cubemx&#xff0c;在安装的时候选择为我安装&…

从零构建大语言模型全栈开发指南:第三部分:训练与优化技术-3.1.3分布式数据加载与并行处理(PyTorch DataLoader优化)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 3.1.3 分布式数据加载与并行处理(`PyTorch DataLoader`优化)1. 大规模数据加载的挑战与瓶颈分析1.1 数据加载流程的时间分解2. PyTorch DataLoader的深度优化策略2.1 核心参数调优2.2 分布式数据分片策…

K8S学习之基础五十七:部署代码扫描工具sonarqube

部署代码扫描工具sonarqube 拉取postgres、sonarqube镜像&#xff0c;在harbor上创建postgres、sonarqube项目&#xff0c;将镜像上传至harbordocker pull postgres docker pull sonarqube docker tat postgres:latest 172.16.80.140/postgres/postgres:latest docker tat sona…

RAG技术的进化:RQ-RAG查询优化/化繁为简Adaptive-RAG智能分类/精准出击

嘿,亲爱的算法探险家们!欢迎来到RAG技术的“奇幻冒险”之旅!🎢 今天,咱们要一起探索的是如何让大语言模型(LLM)从“呆萌小学生”进化成“机智博士生”的奇妙旅程! 想象一下,你正在和一个超级聪明的AI聊天,但它有时候会像个小迷糊,回答得让你哭笑不得。这时候,RAG…

11:00开始面试,11:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

渗透测试中发现ak/sk泄露时的验证工具

项目地址&#xff1a;https://github.com/libaibaia/cloudsec启动命令&#xff1a;java -jar cloudSec-1.2.2-SNAPSHOT.jar 访问&#xff1a;http://localhost:8000/#/admin/login 默认用户名密码&#xff1a;admin/admin123 注&#xff1a;8000 端口运行&#xff0c;如占用先…

游戏引擎学习第185天

回顾并计划今天的内容 我们完成了开始整理这些数据的工作&#xff0c;但我们还没有机会真正去查看这些数据的具体内容&#xff0c;因为我们只是刚刚开始了数据整理的基本工作。我们收集了大量的信息&#xff0c;但到目前为止&#xff0c;仍然没有足够的可视化工具来帮助我们理…

协议学习——1 NCDSSB

上次面试NCDssb, 今天特意学习下&#xff0c;除了物理层的定义&#xff0c;其实再很多物理层的书上都有&#xff0c;主要是讲下RRC曾怎么玩的。 配置在专用BWP上配置&#xff0c;切实BWP的专用部分

【解决】:VSCode 中识别不到电脑中的已安装的 Git

# 问题 自己电脑中明明已经安装了 git &#xff0c;但在 vscode 中确识别不到。——————————&#xff08;问题一样就看下去&#xff0c;不一样早早润。省流&#xff01;&#xff01;&#xff01;&#xff01;&#x1f680;&#xff09; # 【第一步】首先要确认你电脑中…

Java-servlet(九)前端会话,会话管理与Cookie和HttpSession全解析

Java-servlet&#xff08;九&#xff09;前端会话&#xff0c;会话管理与Cookie和HttpSession全解析 前言一、什么是会话二、会话管理1. 隐藏的表单域2. 网址重写3. 使用 Cookie3.1 Cookie 的工作流程3.2 Java 中的方法&#xff0c;Cookie 类 三、Cookie 的实现1. 创建 Cookie2…

手写数据库MYDB(一):项目启动效果展示和环境配置问题说明

1.项目概况 这个项目实际上就是一个轮子项目&#xff0c;现在我看到的这个市面上面比较火的就是这个首先RPC&#xff0c;好多的机构都在搞这个&#xff0c;还有这个消息队列之类的&#xff0c;但是这个是基于MYSQL的&#xff0c;我们知道这个MYSQL在八股盛宴里面是重点考察对象…

基于Spring Boot的电动车智能充电服务平台的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

【AI学习】人工神经网络

1,人工神经网络(Artificial Neural Networks,ANNs,连接模型,Connection Model) 模仿动物神经网络行为特征(突触联接的结构),进行分布式并行信息处理的算法数学模型。依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。 2,前馈神…

场馆预约小程序的设计与实现

摘 要 时代在进步&#xff0c;人们对日常生活质量的要求不再受限于衣食住行。现代人不仅想要一个健康的身体&#xff0c;还想拥有一身宛如黄金比例的身材。但是人们平常除了上下班和上下学的时间&#xff0c;其余空余时间寥寥无几&#xff0c;所以我们需要用体育场馆预约来节省…

笔记:纯真IP库

最近需要使用到ip解析成对应的地域&#xff0c;查找了一些资料&#xff0c;发现纯真ip库&#xff0c;这个比较好用&#xff0c;而且社区版可以获得免费授权。 纯真ip库官网地址&#xff1a;https://www.cz88.net/ python版本git地址&#xff1a;https://github.com/tagphi/cz…

骨密度以及骨密度测量,测量方案,意义;提高;实现方案

骨密度及骨密度测量 骨密度&#xff08;Bone Mineral Density, BMD&#xff09; 是指骨骼单位体积或单位面积内矿物质&#xff08;主要是钙和磷&#xff09;的含量&#xff0c;是评估骨骼强度的重要指标。骨密度降低可能导致骨质疏松&#xff0c;增加骨折风险。 简单分析效果&…