[iOS]从相册或相机获取图片

2024-08-20 23:58
文章标签 图片 ios 获取 相机 相册

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

从相册或相机获取图片

Demo:http://download.csdn.net/detail/u012881779/8659199

拍照要使用真机测试,iPhone和iPad打开相册方式会有所区别:

for iphone:

#import "IPhoneViewController.h"@interface IPhoneViewController () <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
// 从相册获取图片
@property (strong, nonatomic) UIImagePickerController *ymImagePickerAlbum;
// 从相机获取图片
@property (strong, nonatomic) UIImagePickerController *ymImagePickerCamera;
// 显示图片
@property (weak, nonatomic) IBOutlet UIImageView *accordingImageView;@end@implementation IPhoneViewController
@synthesize ymImagePickerAlbum  = _ymImagePickerAlbum;
@synthesize ymImagePickerCamera = _ymImagePickerCamera;- (void)viewDidLoad {[super viewDidLoad];[_accordingImageView.layer setBorderWidth:2.0];[_accordingImageView.layer setBorderColor:[[UIColor colorWithRed:0/255.0 green:89/255.0 blue:185/255.0 alpha:1] CGColor]];
}- (IBAction)returnAction:(id)sender {[self.navigationController popViewControllerAnimated:YES];
}- (IBAction)cameraAction:(id)sender {[self pickImageFromCamera];
}- (IBAction)photoAction:(id)sender {[self pickImageFromAlbum];
}// 清空显示图片
- (IBAction)cleanAction:(id)sender {[_accordingImageView setImage:nil];
}// 从用户相册获取图片
- (void)pickImageFromAlbum {_ymImagePickerAlbum = nil;_ymImagePickerAlbum = [[UIImagePickerController alloc] init];_ymImagePickerAlbum.delegate = self;_ymImagePickerAlbum.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // 途径_ymImagePickerAlbum.modalTransitionStyle = UIModalTransitionStyleCoverVertical;_ymImagePickerAlbum.allowsEditing = YES;[self presentViewController:_ymImagePickerAlbum animated:YES completion:^{}];
}// 从摄像头获取图片
- (void)pickImageFromCamera {_ymImagePickerCamera = nil;_ymImagePickerCamera = [[UIImagePickerController alloc] init];_ymImagePickerCamera.delegate = self;_ymImagePickerCamera.sourceType = UIImagePickerControllerSourceTypeCamera;_ymImagePickerCamera.modalTransitionStyle = UIModalTransitionStyleCoverVertical;_ymImagePickerCamera.allowsEditing = YES;[self presentViewController:_ymImagePickerCamera animated:YES completion:^{}];
}#pragma mark UIImagePickerControllerDelegate
// 完成图片选择后执行
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {UIImage *img = [info objectForKey:@"UIImagePickerControllerOriginalImage"];// 若是从相机取图片if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {[_accordingImageView setImage:img];} else { // 相册[_accordingImageView setImage:img];}[self dismissViewControllerAnimated:YES completion:^{}];
}// 不选择图片,点击取消后执行
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {[self dismissViewControllerAnimated:YES completion:^{}];
}@end
for ipad:
#import "IPadViewController.h"@interface IPadViewController () <UIImagePickerControllerDelegate, UINavigationControllerDelegate ,UIPopoverControllerDelegate>{}
@property (strong, nonatomic) UIImagePickerController *pickerController;
@property (strong, nonatomic) UIPopoverController     *poverController;
// 显示图片
@property (weak, nonatomic) IBOutlet UIImageView *accordingImageView;@end@implementation IPadViewController
@synthesize pickerController = _pickerController;
@synthesize poverController  = _poverController;- (void)viewDidLoad {[super viewDidLoad];[_accordingImageView.layer setBorderWidth:2.0];[_accordingImageView.layer setBorderColor:[[UIColor colorWithRed:0/255.0 green:89/255.0 blue:185/255.0 alpha:1] CGColor]];
}- (IBAction)returnPageAction:(id)sender {[self.navigationController popViewControllerAnimated:YES];
}// 清空显示图片
- (IBAction)cleanAction:(id)sender {[_accordingImageView setImage:nil];
}// 响应点击事件
- (IBAction)saveAction:(id)sender {_pickerController = nil;_poverController  = nil;[self gPlot:sender];
}- (void)gPlot:(id)sender {NSInteger tag = [sender tag];[UIView animateWithDuration:0.2 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{} completion:^(BOOL finished) {if (finished) {if (tag == 13) { // 拍照[self presentImageViewControllerWithCameraAvailable:1];} else if (tag == 12) {  // 手机相册[self presentImageViewControllerWithCameraAvailable:0];}}}];
}- (void)presentImageViewControllerWithCameraAvailable:(NSUInteger)isAvaiable {if (!_pickerController) {_pickerController = [[UIImagePickerController alloc] init];_pickerController.delegate = self;}if (isAvaiable == 1) {if (![UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]) {UIAlertView* alertView =[[UIAlertView alloc] initWithTitle:nilmessage:@"设备不支持拍照"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles: nil];[alertView show];return;}_pickerController.view.tag = 123 + 1;_pickerController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;_pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;[self presentViewController:_pickerController animated:YES completion:nil];} else {_pickerController.view.tag = 123 + 2;_pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;_pickerController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;_pickerController.allowsEditing = YES;// 所以我们必须通过UIPopoverController来实现才行。具体实现如下:_poverController = [[UIPopoverController alloc] initWithContentViewController:_pickerController];_poverController.popoverContentSize = self.view.frame.size;// contentSize[_poverController presentPopoverFromRect:CGRectMake(95, 235, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown|UIPopoverArrowDirectionLeft animated:YES];}
}#pragma mark - UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{UIImage *sourceImage = (UIImage *)[info valueForKey:UIImagePickerControllerOriginalImage];if (sourceImage != nil) {[_accordingImageView setImage:sourceImage];} else {[_accordingImageView setImage:sourceImage];}// 拍照if (_pickerController.view.tag == 123 + 1) {[picker dismissViewControllerAnimated:NO completion:NULL];} else {[_poverController dismissPopoverAnimated:NO];}
}- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {[picker dismissViewControllerAnimated:YES completion:NULL];
}@end
示图:






这篇关于[iOS]从相册或相机获取图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式