[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

相关文章

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

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

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

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

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

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)

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文