Android 图像系列: 图片的裁剪与相机调用

Android 调用相机APP获取拍照图片和从相册选择图片 源码部分分析 Camera.java → 点我定位,注意研究1134行与2023行的两个方法。 通过源码可以发现,输出的图片有2个分支 如果你没有指定Intent里面的Extra参数,它就返回一个序列化(putExtra(“data”, bitmap))的Bitmap,从理论上来说,这样的代码写的很烂,属于Magic Number。 如果你指定了Intent里面的Extra参数MediaS 阅读详情

  有时候我们需要的图片并不适合我们想要的大小, 那么我们就可以用到系统自带的图片裁剪功能, 把规定范围的图像给剪出来。

 

  贴上部分代码:

 

//调用图库
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra("crop", "true");	// crop=true 有这句才能出来最后的裁剪页面.
intent.putExtra("aspectX", 5);		// 这两项为裁剪框的比例.
intent.putExtra("aspectY", 4);
//输出地址
intent.putExtra("output", Uri.fromFile(new File("SDCard/1.jpg")
intent.putExtra("outputFormat", "JPEG");//返回格式						
startActivityForResult(Intent.createChooser(intent, "选择图片"), 1);


 

//调用相机
Intent intent = new Intent(
	MediaStore.ACTION_IMAGE_CAPTURE, null);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
	"SDCard/1.jpg")));
startActivityForResult(intent, 2);


在调用了以上任意一种方法后, 系统会返回onActivityResult, 我们在这个方法中处理就可以了

 

	/**
	 * 获取返回的相片
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
	{
		if (resultCode == 0)
			return;

		if (requestCode == 2)//调用系统裁剪
  		{
			File picture = new File("SDCard/1.jpg");     
            			startPhotoZoom(Uri.fromFile(picture)); 
		} else if (requestCode == PHOTO_CODE)//得到裁剪后的图片
		{
			try
			{
				BitmapFactory.Options options = new BitmapFactory.Options();
				options.inSampleSize = 2;
				Bitmap bitmap = BitmapFactory.decodeFile("SDCard/1.jpg", options);

				if (bitmap != null)//保存图片
				{
					mCacheBitmap = bitmap;

					FileOutputStream fos = null;
					fos = new FileOutputStream("SDCard/1.jpg");
					mCacheBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
				}

				
			} catch (Exception e)
			{
				// TODO: handle exception
			}
		}

		super.onActivityResult(requestCode, resultCode, data);
	}
	
	/**
	 * 裁剪图片
	 * @param uri
	 */
    public void startPhotoZoom(Uri uri) {     
        Intent intent = new Intent("com.android.camera.action.CROP");     
        intent.setDataAndType(uri, "image/*");
		intent.putExtra("crop", "true");// crop=true 有这句才能出来最后的裁剪页面.
		intent.putExtra("aspectX", 5);// 这两项为裁剪框的比例.
		intent.putExtra("aspectY", 4);// x:y=1:2
		intent.putExtra("output", Uri.fromFile(new File("SDCard/1.jpg")));
		intent.putExtra("outputFormat", "JPEG");//返回格式   
        startActivityForResult(intent, PHOTO_CODE);     
} 


 

Android头像选择与裁剪实战指南 在移动应用开发中,相机拍摄接口是获取实时图像数据的直接手段。为了能够利用相机接口,开发者需要关注几个关键参数,并通过合适的使用方法调用这些接口。参数说明cameraId: 通常用来指定使用设备上的哪一个相机,例如前置或后置。width和height: 定义拍摄图片的分辨率。quality: 定义图片质量的参数,它可以通过调整压缩比例来平衡图片的大小和清晰度。使用方法1. 首先需要检查设备是否支持相机功能,并请求必要的权限。 阅读详情

相关推荐

Android图片裁剪与人脸识别实战示例项目

在Android图像处理场景中,系统级的裁剪服务虽然便捷,但其高度依赖设备厂商预装应用的支持,导致在多品牌碎片化环境下表现极不稳定。为确保用户体验的一致性与功能完整性,越来越多的应用选择构建自定义图片裁剪界面,以完全掌控裁剪流程、交互方式和视觉呈现。本章将深入探讨如何从零开始设计并实现一个高性能、高可用性的自定义裁剪组件,涵盖UI架构搭建、触摸逻辑控制、坐标变换建模、内存优化策略以及结果输出机制。

weixin_34725745的博客 1071

Intent的用法(3):Intent的setType()以及相关setData()和setDataAndType()

intent.setType()... Type(数据类型) 显示的指定Intent的数据类型,而跳过了通过Uri进行推导判断的步骤。 如:Vedio、Image、Voice等。 intent.setType(“image/*”); //intent.setType(“audio/*”); //选择音频 //intent.setType(“video/*”); //选择视频 (mp4 3gp...

qq_32534441的博客 7129

十一、机器学习进阶知识:径向基神经网络(RBFNN)的实现(Python,附源码及数据集)

本文对径向基神经网络(RBFNN)的理论基础及建模步骤进行介绍,之后使用Python实现基于RBFNN的数据预测,通俗易懂,适合新手学习,附源码及实验数据集。

weixin_42051846的博客 1万+

intent调用 只选择图片的方式

Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, code);

JIEJUNPING的博客 771

OpenCv案例(七): 基于OpenCvSharp计算图像的清晰度(自动对焦)

自动对焦,其实是对相机成像的清晰值得计算,若对焦不清晰,成像的清晰度低,视觉效果模糊。若是在工业检测行业,对焦不准确,可能会造成严重后果;对焦准确的图像,其清晰度高,对比度鲜明,层次明显。

qq_37835727的博客 7114

esxi8.0.3如何添加USB外置硬盘

本文介绍了在ESXi系统中配置外置USB硬盘作为数据存储的完整步骤:1)通过SSH禁用USB仲裁服务并关闭自启;2)识别已连接的USB硬盘设备路径;3)使用partedUtil创建GPT分区表并计算扇区范围;4)设置VMFS6分区并格式化。关键命令包括停止usbarbitrator服务、partedUtil分区操作以及vmkfstools格式化命令。整个过程需通过SSH执行,最终将USB硬盘配置为名为"USB_Datastore"的VMFS6存储设备。

qq_41683719的博客 1546

android intent.setType指定浏览本地多种类型的文件

try { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); activity.startActivi...

1万+

前端监控性能指标

文章目录前端监控性能指标性能指标阶段性指标关键性能指标小程序W3C Level 1兼容性常规用法注意事项1、计算HTML文档请求使用 Nav Timing2、计算静态资源使用 getEntriesByType('resource') 代替 getEntries()3、secureConnectionStart 问题4、跨域资源设置响应头 Timing-Allow-Origin5、注意属性值为 0 ...

foolbird 1348

【Android_Image】选择相册中的图片,并获取图片的path

上传图片到服务器的时候,通常要先调出选择框选择图片,这里要说的就是这个选择图片的动作。 一般来说,选择照片这个动作的过程的代码大致是这样的: Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(in...

weixin_30885111的博客 384

什么是无人机电源管理模块?电源管理模块有什么用处?

我来描述一下我的问题情景,电源管理模块的定义是,这里给出这个PX4官方对于电源管理模块的一些介绍,补充一下锂电池的放电原理大家就可以更好理解为什么需要电源管理模块

HRWVY0725的博客 2273

银河麒麟系统下VSCode安装全攻略:从下载到桌面快捷方式(附常见问题解决)

本文详细介绍了在银河麒麟系统下安装和优化VSCode的全流程,包括环境准备、安装策略、权限管理、桌面快捷方式创建以及系统级性能调优。特别针对国产系统环境提供了常见问题解决方案和必备插件推荐,帮助开发者高效配置开发环境。

v6b7n8m9q0的博客 1135

android Intent.setType() 过滤图片,返回所有的文件类型

我想在我的app中通过Intent从启动的应用程序中刚抓取图片 我尝试使用如下代码:   Intent intent = new Intent("android.intent.action.GET_CONTENT"); intent.addCategory("android.intent.category.OPENABLE"); intent.setType("ima

love android 7227

【ARM CoreLink 系列 4 -- NIC-400 控制器详细介绍】

正常情况下,一个NIC的实现,可以包含一百多个master和几十个slave,每个master和每个slave都会有一些寄存器,这些寄存器可以被 programming,实际实践中就会对 AMIB 或者 ASIB 或者 IB,当它需要具有 programming的时候,给它指定一个node number。为什么指定Node Number呢?首先,从CPU的角度,它需要有一个1M对齐的地址空间,在这1M地址空间上,对每个ASIB或者AMIB这样的接口给它一个node number以后,

CodingCos的博客 5242

从Android上的相机裁剪图像

目录 介绍 使用代码 下载源代码 - 1 MB 介绍 基本思路非常简单: 显示相机预览 添加矩形视图到相机预览(新裁剪图像的边界) 裁剪图像并将结果保存到文件中 使用代码 让我们开始吧!在Android studio中创建一个新项目(我使用的是3.2.1版),或者您可以下载源文件并选择:File-New-Import项目。添加到build.gradle应用程序级别: imple...

寒冰屋的专栏 1092

43_AI短片实战第十六弹:AIGC补充特写镜头——首尾帧衔接与多图抽卡技巧

本文介绍了使用Templa AI平台生成"怪兽爬车"特写镜头并衔接"甩尾摔下"动作的完整流程。首先通过AI生成4张怪兽趴在车顶的特写画面,重点选择展示怪兽与车顶关系的构图(16:9比例)。然后将选定的首帧图与已有尾帧图输入AI,生成7秒左右的过渡视频,实现从"稳定趴车"到"开始摔落"的自然衔接。整个过程展示了单图抽卡策略、首尾帧选择标准,以及如何利用AI生成时间进行其他剪辑任务的并行处理方法。最终产出包括特写首帧图、过渡视频文件和更新后的剪辑项目。

Open 79

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android之调用系统照相机并裁剪

Android调用系统照相机、相片并裁剪图片并不是很难,网上也有很多资料,但是在实现的过程中我还是遇到了一些问题,现在做个总结。 一、 声明系统权限 因为调用的是系统照相机并且需要对sd卡进行读写操作所以需要用的的权限有: //请求访问使用照相设备 <uses-perm...

choutoutun9356的博客 373

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android百度相机裁剪,Android之调用系统照相机并裁剪

Android调用系统照相机、相片并裁剪图片并非很难,网上也有不少资料,可是在实现的过程当中我仍是遇到了一些问题,如今作个总结。java1、 声明系统权限由于调用的是系统照相机而且须要对sd卡进行读写操做因此须要用的的权限有:python//请求访问使用照相设备//移动存储2、 调用系统照相机如下出现的CameraUtil是我封装的一个照相机工具类,但愿不会看晕了,固然你能够把全部操做所有写在ac...

weixin_31613447的博客 286

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android自定义相机模糊解决方案,Android调用系统拍照裁剪图片模糊的解决方法

在Android中,调用系统相机拍照时,将会接收到返回的图像数据,但是这些图片并不是全尺寸的图像,而是系统给的缩略图,当对拍照的图片进行裁切后显示时,得到的却是模糊的图片。下面针对这个问题提出解决的方法。首先,我们知道调用系统的裁切是通过Intent intent = new Intent(“com.android.camera.action.CROP”);但是intent到底能够携带哪些数据呢,...

weixin_42360905的博客 1038

Android-Image-Cropper实战:从相机和图库获取图片进行裁剪的终极指南

Android-Image-Cropper是一个功能强大的Android图片裁剪库,专门为相机和图库图片裁剪场景进行了优化。这个开源库提供了完整的解决方案,让开发者能够轻松实现从多种来源获取图片并进行专业级裁剪的功能。无论你是开发社交应用、图片编辑器还是需要用户上传头像的应用,这个库都能为你节省大量开发时间。 ## 📱 为什么选择Android-Image-Cropper? Android-

gitblog_00882的博客 1065

推荐使用Android Image Cropper:高效、灵活的图像裁剪库

在移动应用开发中,图像处理是一个常见且重要的需求。无论是社交应用中的头像编辑,还是电商应用中的商品图片处理,一个强大且易用的图像裁剪工具都是不可或缺的。今天,我们要介绍的是一款专为Android开发者设计的图像裁剪库——Android Image Cropper。 ## 项目介绍 Android Image Cropper是一款功能强大的图像裁剪库,它提供了丰富的功能和灵活的定制选项,使得开发...

gitblog_00490的博客 1418

Android开发常用开源框架:图片处理

1、图片加载,缓存,处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时 Picasso 一个强大的图片下载与缓存的库 Fresco 一个用于管理图像和他们使用的内存的库 Glide 一个图片加载和缓存的库,使用的App有:网易新闻 GlidePalette Androi

JackChan 3万+

调用相机,相册裁剪

//监听使用intent,隐式跳转,调用系统相册 xiangce.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent2 = new Intent(Intent.ACTION_PICK, null); ...

qq_41698131的博客 329

Android 图片裁剪库使用指南

本篇文章将详细介绍如何使用名为 `Android-Image-Cropper` 的开源图片裁剪库,该库适用于Android应用中处理从相机或图库获取的图像裁剪需求。 ## 1. 项目目录结构及介绍 由于未提供具体的目录结构,我们通常可以推测一个Android开源项目的常见结构: - `app`: 示例应用程序代码 - `library`: 图片裁剪库的核心代码 - `build.gradle...

gitblog_00569的博客 771

Android图片裁剪终极指南:使用Android Image Cropper实现专业级裁剪功能

想要为你的Android应用添加专业级的图片裁剪功能吗?Android Image Cropper是一个专门为相机和相册优化的图片裁剪库,能够让你的应用具备与Instagram、Snapseed等专业应用相媲美的裁剪体验。这个开源库提供了丰富的配置选项和流畅的用户交互,是Android开发者的必备工具。 ## 🎯 为什么选择Android Image Cropper? Android Ima

gitblog_00766的博客 740

Android 图片裁剪终极指南:快速实现专业级图像处理

想要在Android应用中实现专业的图片裁剪功能吗?Android-Image-Cropper库为你提供了一站式解决方案!这个强大的图像裁剪库经过优化,专门针对相机和相册场景,让你能够轻松添加裁剪功能到任何Android应用中。😊 ## 📱 为什么选择Android-Image-Cropper? Android图片裁剪库具备四大核心优势: - **功能强大** - 支持缩放、旋转、多来源

gitblog_00615的博客 1111
上一篇: Android 写入配置信息.
下一篇: android widget 桌面插件的简单事例讲解
克雷斯
博客等级 码龄17年 36粉丝 42原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值