热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

使用Java代码在Android中实现图片裁剪功能

这篇文章主要介绍了使用Java代码在Android中实现图片裁剪功能,许多应用都需要此类从相册中选取图片然后编辑的功能,需要的朋友可以参考下

前言
Android应用中经常会遇到上传相册图片的需求,这里记录一下如何进行相册图片的选取和裁剪。

相册选取图片
1. 激活相册或是文件管理器,来获取相片,代码如下:

 private static final int TAKE_PICTURE_FROM_ALBUM = 1; 
 private void takePictureFromAlbum() { 
  Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
  intent.setType("image/*"); 
  startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM); 
 } 

2. 通过startAcitivityForResult()方法,我们可以在onAcitivityResult()中来获取图片的URI,然后将图片的URI传递给图片裁剪函数,代码如下:

 @Override 
 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
  if (resultCode == Activity.RESULT_OK) { 
   switch (requestCode) { 
   case TAKE_PICTURE_FROM_ALBUM: 
    if (data != null) { 
     cropPictureFromAlbum(data.getData()); 
    } 
    break; 
   case PICTURE_CROP_CODE: 
    if (data != null) { 
     // 这是裁剪后图片的bitmap 
     Bitmap bitmap = data.getParcelableExtra("data"); 
    } 
    break; 
   default: 
    break; 
   } 
  } 
 } 
  
 private static final int TAKE_PICTURE_FROM_ALBUM = 1; 
  
 private void takePictureFromAlbum() { 
  Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
  intent.setType("image/*"); 
  startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM); 
 } 
  
 private static final int PICTURE_CROP_CODE = 2; 
  
 private void cropPictureFromAlbum(Uri pictureUri) { 
  Intent intent = new Intent("com.android.camera.action.CROP"); 
  intent.setDataAndType(pictureUri, "image/*"); 
  intent.putExtra("crop", "true"); 
  // 裁剪框比例 
  intent.putExtra("aspectX", 1); 
  intent.putExtra("aspectY", 2); 
  
  // 裁剪后输入图片的尺寸大小 
  intent.putExtra("outputX", 300); 
  intent.putExtra("outputY", 300); 
  
  // 取消人脸识别 
  intent.putExtra("noFaceDetection", true); 
  
  intent.putExtra("return-data", true); 
  
  startActivityForResult(intent, PICTURE_CROP_CODE); 
 } 

3. 在onActivityResult里,通过data.getParcelableExtra("data")可以获取图片裁剪之后的bitmap,之后就可以将bitmap赋值给图片控件了。


推荐阅读
  • 本文详细解释了vivo Y97是否支持OTG(On-The-Go)功能及其设置方法。 ... [详细]
  • Android平台下的人脸识别应用:FaceU的深度解析与技术探讨
    FaceU是一款由今日头条脸萌团队开发的拍照相机应用,支持iOS和Android平台。自2014年底启动开发以来,FaceU通过其创新的人脸识别技术和丰富的滤镜效果,在2015年9月迅速获得了用户的广泛认可。本文将深入解析FaceU的技术架构和实现方法,探讨其在Android平台下的应用前景和优化策略。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 京东AI创新之路:周伯文解析京东AI战略的独特之处
    2018年4月15日,京东在北京举办了人工智能创新峰会,会上首次公开了京东AI的整体布局和发展方向。此次峰会不仅展示了京东在AI领域的最新成果,还标志着京东AI团队的首次集体亮相。本文将深入探讨京东AI的发展策略及其与BAT等公司的不同之处。 ... [详细]
  • 近期,我们的研究团队专注于人脸检测技术,特别是Adaboost算法的应用,该算法在OpenCV中的实现为人脸检测提供了高效解决方案。基于此,我们开始探索如何通过改进PCA(主成分分析)方法来提高人脸识别的准确性和效率。 ... [详细]
  • 《计算机视觉:算法与应用》第二版初稿上线,全面更新迎接未来
    经典计算机视觉教材《计算机视觉:算法与应用》迎来了其第二版,现已开放初稿下载。本书由Facebook研究科学家Richard Szeliski撰写,自2010年首版以来,一直是该领域的标准参考书。 ... [详细]
  • 利用Dlib进行高效的人脸特征提取与识别
    本文介绍了Dlib库,一个集成了多种机器学习算法的C++工具包,特别适用于需要处理复杂任务的应用场景。Dlib不仅支持机器人技术、嵌入式系统开发、移动应用及高性能计算环境,还提供了强大的人脸检测与特征提取功能。 ... [详细]
  • 专注于模式识别与机器学习的研究生,对于该领域内的就业方向及具体职位要求有着浓厚的兴趣。本文将探讨智能图像/视频处理工程师的岗位要求,并为相关专业的学生提供学习建议。 ... [详细]
  • 手机遗失时如何保护支付宝与微信账户安全?6大策略确保资金无忧
    在手机不慎丢失的情况下,如何有效保护支付宝和微信账户中的资金安全?本文提供六大实用策略,帮助用户在手机丢失后迅速采取行动,防止财产损失。 ... [详细]
  • 北京某小区引入‘人脸识别’技术助力垃圾分类
    近日,北京市西城区德胜街道的新风街1号院引入了一项创新举措——通过‘人脸识别’技术来促进垃圾分类。这项技术不仅提高了垃圾分类的效率,还增强了居民的环保意识。 ... [详细]
  • 本文源自Coursera平台吴恩达教授的深度学习课程,重点探讨了卷积神经网络(ConvNets)从二维图像处理向一维信号及三维数据处理的拓展应用。 ... [详细]
  • 自动驾驶中的9种传感器融合算法
    来源丨AI修炼之路在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的 ... [详细]
  • 你可能还记得,在《真实谎言》、《偷天陷阱》、《查理的天使》、《少数派报告》等好莱坞科幻电影中,经常出现一个类似的场景:角色将眼睛靠近某个识别设备,以完成身份验证。这种基于眼睛的生物识别技术,即指静脉识别,曾在过去近二十年间逐渐淡出公众视野。然而,随着技术的不断进步和多模态生物识别系统的兴起,指静脉识别技术正迎来新的发展机遇。该技术通过检测手指内部的静脉图案,具有高安全性、难以伪造的特点,有望在未来成为生物识别领域的重要组成部分。 ... [详细]
  • 如何在 Angular 4 中实现跨域调用百度人脸识别 API? ... [详细]
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
author-avatar
123AJAgjt
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有