UIImagePickerController 拍照
2016-02-17 16:24
387 查看
-(void)photo:(UIButton *)buton { UIImagePickerController *picker =[[UIImagePickerController alloc]init]; picker.delegate=self; picker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary; picker.mediaTypes=[NSArray arrayWithObject:@"public.image"]; [self presentViewController:picker animated:YES completion:nil]; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [picker dismissViewControllerAnimated:NO completion:nil]; } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info { NSString *mediaType =[info objectForKey:UIImagePickerControllerMediaType]; if ([mediaType isEqualToString:@"public.image"]) { UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; NSDateFormatter *format =[[NSDateFormatter alloc]init]; [format setDateFormat:@"yyyyMMddHHmmss"]; NSString *now =[NSString stringWithFormat:@"%@",[format stringFromDate:[NSDate date]]]; NSArray *path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSFileManager *manager =[NSFileManager defaultManager]; NSString *mcPaths =[[path objectAtIndex:0]stringByAppendingString:@"/"]; NSError *erro; [manager createDirectoryAtPath:mcPaths withIntermediateDirectories:YES attributes:nil error:&erro]; //文件名字 NSString *nameString =[NSString stringWithFormat:@"%@.jpg",now]; //文件存储路径 NSString *fullPathToFile =[NSString stringWithFormat:@"%@%@",mcPaths,nameString]; NSData* imageData = UIImageJPEGRepresentation(image, 0.5); [imageData writeToFile:fullPathToFile atomically:NO]; NSMutableDictionary *dic =[[NSMutableDictionary alloc]init]; [dic setObject:nameString forKey:@"fileName"]; [dic setObject:fullPathToFile forKey:@"fileUrl"]; photoArray =[[NSMutableArray alloc]initWithObjects:dic, nil]; NSData *data = [NSData dataWithContentsOfFile:[[photoArray objectAtIndex:0] objectForKey:@"fileUrl"]]; [btn setBackgroundImage:[UIImage imageWithData:data] forState:UIControlStateNormal]; //将照片保存到相册 // UIImageWriteToSavedPhotosAlbum(image, self, // @selector(image:didFinishSavingWithError:contextInfo:), nil); [picker dismissViewControllerAnimated:YES completion:nil]; } }
最后,需要说的是,UIImagePickerControllerDelegate协议中
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info方法,中的info值,会根据我们操作的类型不同,而产生了不同的数据信息:
当操作的为图片时::
{
UIImagePickerControllerCropRect = "NSRect: {{0, 405}, {2448, 2449}}";
UIImagePickerControllerEditedImage = "";
UIImagePickerControllerMediaMetadata = {
DPIHeight = 72;
DPIWidth = 72;
Orientation = 6;
"{Exif}" = {
ApertureValue = "2.526068811667588";
BrightnessValue = "-0.0709875088566263";
ColorSpace = 1;
DateTimeDigitized = "2013:04:05 16:43:00";
DateTimeOriginal = "2013:04:05 16:43:00";
ExposureMode = 0;
ExposureProgram = 2;
ExposureTime = "0.05882352941176471";
FNumber = "2.4";
Flash = 24;
FocalLenIn35mmFilm = 35;
FocalLength = "4.28";
ISOSpeedRatings = (
400
);
MeteringMode = 5;
PixelXDimension = 3264;
PixelYDimension = 2448;
SceneType = 1;
SensingMethod = 2;
Sharpness = 0;
ShutterSpeedValue = "4.099543917546131";
SubjectArea = (
1631,
1223,
881,
881
);
WhiteBalance = 0;
};
"{TIFF}" = {
DateTime = "2013:04:05 16:43:00";
Make = Apple;
Model = "iPhone 4S";
Software = "5.1.1";
XResolution = 72;
YResolution = 72;
};
};
UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerOriginalImage = "";
}
当我们操作的为视频时:
{
UIImagePickerControllerMediaType = "public.movie";
UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/22A14825-DD7E-48E1-A1D5-2D85B82095B5/tmp/capture-T0x1363a0.tmp.etXfD4/capturedvideo.MOV";
}
相关文章推荐
- sublime text 3(Build 3103)最新注册码
- 职乐UI界面DESIGN开发任务招募
- Arduino连接HMC5883L三轴电子罗盘传感器
- 集训队专题(5.1)1001 Maximum Clique
- Missing iOS Distribution signing identity for ... Xcode can request one for you.
- LeetCode Increasing Triplet Subsequence
- [置顶] Android UI顶部导航栏模板
- 1101. Quick Sort (25)
- 使用Java的BlockingQueue实现生产者-消费者
- ZooKeeper实现分布式队列Queue
- iOS开发:设置UITextView的placeholder
- 分治法(divide & conquer algorithm)的理解
- invalidate()与postInvalidate()
- UIImagePickerController全面使用详解
- ios UIColor 自定义颜色
- 消息队列(Message Queue)基本概念
- Easyui下关于propertygrid中的批量check
- 获取UITableView指定行在指定视图中的位置
- spoj1182Sorted bit squence【数位dp】
- UITableViewCell左右侧滑动出现多个按钮