iOS打开照相机与本地相册选择图片

2024-01-20 19:48

本文主要是介绍iOS打开照相机与本地相册选择图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近正好项目里面要集成“打开照相机与本地相册选择图片”的功能,今天就在这边给大家写一个演示程序;打开相机拍摄后或者在相册中选择一张照片,然后将它显示在界面上。好了废话不多说,因为比较简单直接上源码。

首先,我们在头文件中添加需要用到的actionSheet控件,显示图片的UIImageView控件,并且加上所需要的协议

[objc]  view plain copy
在CODE上查看代码片 派生到我的代码片
  1. #import <UIKit/UIKit.h>  
  2.   
  3. @interface ImagePickerViewController : UIViewController<UIImagePickerControllerDelegate,UIActionSheetDelegate,UINavigationControllerDelegate>  
  4.   
  5. @property (strongnonatomic) IBOutlet UIImageView *headImage;  
  6.   
  7. @property (strongnonatomicUIActionSheet *actionSheet;  
  8.   
  9. - (IBAction)clickPickImage:(id)sender;  
  10. @end  

通过点击我设置在界面中的按钮来呼出actionSheet控件,来选择相应的操作拍照或是在相册中选择相片,代码如下:

[objc]  view plain copy
在CODE上查看代码片 派生到我的代码片
  1. //  
  2. //  ImagePickerViewController.m  
  3. //  testAuto  
  4. //  
  5. //  Created by silicon on 15/5/9.  
  6. //  Copyright (c) 2015年 silicon. All rights reserved.  
  7. //  
  8.   
  9. #import "ImagePickerViewController.h"  
  10.   
  11. @interface ImagePickerViewController ()  
  12.   
  13. @end  
  14.   
  15. @implementation ImagePickerViewController  
  16.   
  17. @synthesize actionSheet = _actionSheet;  
  18.   
  19. - (void)viewDidLoad {  
  20.     [super viewDidLoad];  
  21.     // Do any additional setup after loading the view from its nib.  
  22.       
  23. }  
  24.   
  25. - (void)didReceiveMemoryWarning {  
  26.     [super didReceiveMemoryWarning];  
  27.     // Dispose of any resources that can be recreated.  
  28. }  
  29.   
  30.   
  31. /** 
  32.  @ 调用ActionSheet 
  33.  */  
  34. - (void)callActionSheetFunc{  
  35.     if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){  
  36.         self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照"@"从相册选择", nil nil];  
  37.     }else{  
  38.         self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消"destructiveButtonTitle:nil otherButtonTitles:@"从相册选择", nil nil];  
  39.     }  
  40.       
  41.     self.actionSheet.tag = 1000;  
  42.     [self.actionSheet showInView:self.view];  
  43. }  
  44.   
  45. // Called when a button is clicked. The view will be automatically dismissed after this call returns  
  46. - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{  
  47.     if (actionSheet.tag == 1000) {  
  48.         NSUInteger sourceType = UIImagePickerControllerSourceTypePhotoLibrary;  
  49.         // 判断是否支持相机  
  50.         if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {  
  51.             switch (buttonIndex) {  
  52.                 case 0:  
  53.                     //来源:相机  
  54.                     sourceType = UIImagePickerControllerSourceTypeCamera;  
  55.                     break;  
  56.                 case 1:  
  57.                     //来源:相册  
  58.                     sourceType = UIImagePickerControllerSourceTypePhotoLibrary;  
  59.                     break;  
  60.                 case 2:  
  61.                     return;  
  62.             }  
  63.         }  
  64.         else {  
  65.             if (buttonIndex == 2) {  
  66.                 return;  
  67.             } else {  
  68.                 sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;  
  69.             }  
  70.         }  
  71.         // 跳转到相机或相册页面  
  72.         UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];  
  73.         imagePickerController.delegate = self;  
  74.         imagePickerController.allowsEditing = YES;  
  75.         imagePickerController.sourceType = sourceType;  
  76.           
  77.         [self presentViewController:imagePickerController animated:YES completion:^{  
  78.           
  79.         }];  
  80.     }  
  81. }  
  82.   
  83. - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info  
  84. {  
  85.     [picker dismissViewControllerAnimated:YES completion:^{  
  86.       
  87.     }];  
  88.       
  89.     UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];  
  90.     self.headImage.image = image;  
  91. }  
  92.   
  93. /* 
  94. #pragma mark - Navigation 
  95.  
  96. // In a storyboard-based application, you will often want to do a little preparation before navigation 
  97. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
  98.     // Get the new view controller using [segue destinationViewController]. 
  99.     // Pass the selected object to the new view controller. 
  100. } 
  101. */  
  102.   
  103. - (IBAction)clickPickImage:(id)sender {  
  104.       
  105.     [self callActionSheetFunc];  
  106. }  
  107. @end  

代码比较简单,也容易理解,运行的效果如下:













这篇关于iOS打开照相机与本地相册选择图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/627134

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安