iphone 怎么使用图片选取器 UIImagePickerController
2013-05-01 16:34
447 查看
1。 定义 类变量:
UIImagePickerController* picker_library_;
2。实现 UIImagePickerControllerDelegate 这个delegate
3。 以模态的方式,显示 图片选取器
[cpp] view
plaincopy
picker_library_ = [[UIImagePickerController alloc] init];
picker_library_.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker_library_.allowsEditing = YES;
picker_camera_.allowsImageEditing=YES;
picker_library_.delegate = self;
[self presentModalViewController: picker_library_
animated: YES];
其中,sourceType 指定了 几种 图片的来源:
UIImagePickerControllerSourceTypePhotoLibrary:表示显示所有的照片
UIImagePickerControllerSourceTypeCamera:表示从摄像头选取照片
UIImagePickerControllerSourceTypeSavedPhotosAlbum:表示仅仅从相册中选取照片。
allowEditing和allowsImageEditing 设置为YES,表示 允许用户编辑图片,否则,不允许用户编辑。
4。 当用户选择一个图片以后,有可能调用两种不同的函数,根据版本的不同。所以,如果要同时支持高版本和低版本的兼容性,那么就
要处理两种函数。
//3.x 用户选中图片后的回调
- (void)imagePickerController: (UIImagePickerController *)picker
didFinishPickingMediaWithInfo: (NSDictionary *)info
//2.x 用户选中图片之后的回调
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
两种函数的处理代码如下:
[cpp] view
plaincopy
//3.x 用户选中图片后的回调
- (void)imagePickerController: (UIImagePickerController *)picker
didFinishPickingMediaWithInfo: (NSDictionary *)info
{
if (picker == picker_camera_)
{
//如果是 来自照相机的image,那么先保存
UIImage* original_image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImageWriteToSavedPhotosAlbum(original_image, self,
@selector(image:didFinishSavingWithError:contextInfo:),
nil);
}
//获得编辑过的图片
UIImage* image = [info objectForKey: @"UIImagePickerControllerEditedImage"];
[self dismissModalViewControllerAnimated:YES];
[picker release];
}
[cpp] view
plaincopy
//2.x 用户选中图片之后的回调
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
NSMutableDictionary * dict= [NSMutableDictionary dictionaryWithDictionary:editingInfo];
[dict setObject:image forKey:@"UIImagePickerControllerEditedImage"];
//直接调用3.x的处理函数
[self imagePickerController:picker didFinishPickingMediaWithInfo:dict];
}
5。 用户取消选择
[cpp] view
plaincopy
// 用户选择取消
- (void) imagePickerControllerDidCancel: (UIImagePickerController *)picker
{
[self dismissModalViewControllerAnimated:YES];
[picker release];
}
UIImagePickerController* picker_library_;
2。实现 UIImagePickerControllerDelegate 这个delegate
3。 以模态的方式,显示 图片选取器
[cpp] view
plaincopy
picker_library_ = [[UIImagePickerController alloc] init];
picker_library_.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker_library_.allowsEditing = YES;
picker_camera_.allowsImageEditing=YES;
picker_library_.delegate = self;
[self presentModalViewController: picker_library_
animated: YES];
其中,sourceType 指定了 几种 图片的来源:
UIImagePickerControllerSourceTypePhotoLibrary:表示显示所有的照片
UIImagePickerControllerSourceTypeCamera:表示从摄像头选取照片
UIImagePickerControllerSourceTypeSavedPhotosAlbum:表示仅仅从相册中选取照片。
allowEditing和allowsImageEditing 设置为YES,表示 允许用户编辑图片,否则,不允许用户编辑。
4。 当用户选择一个图片以后,有可能调用两种不同的函数,根据版本的不同。所以,如果要同时支持高版本和低版本的兼容性,那么就
要处理两种函数。
//3.x 用户选中图片后的回调
- (void)imagePickerController: (UIImagePickerController *)picker
didFinishPickingMediaWithInfo: (NSDictionary *)info
//2.x 用户选中图片之后的回调
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
两种函数的处理代码如下:
[cpp] view
plaincopy
//3.x 用户选中图片后的回调
- (void)imagePickerController: (UIImagePickerController *)picker
didFinishPickingMediaWithInfo: (NSDictionary *)info
{
if (picker == picker_camera_)
{
//如果是 来自照相机的image,那么先保存
UIImage* original_image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImageWriteToSavedPhotosAlbum(original_image, self,
@selector(image:didFinishSavingWithError:contextInfo:),
nil);
}
//获得编辑过的图片
UIImage* image = [info objectForKey: @"UIImagePickerControllerEditedImage"];
[self dismissModalViewControllerAnimated:YES];
[picker release];
}
[cpp] view
plaincopy
//2.x 用户选中图片之后的回调
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
NSMutableDictionary * dict= [NSMutableDictionary dictionaryWithDictionary:editingInfo];
[dict setObject:image forKey:@"UIImagePickerControllerEditedImage"];
//直接调用3.x的处理函数
[self imagePickerController:picker didFinishPickingMediaWithInfo:dict];
}
5。 用户取消选择
[cpp] view
plaincopy
// 用户选择取消
- (void) imagePickerControllerDidCancel: (UIImagePickerController *)picker
{
[self dismissModalViewControllerAnimated:YES];
[picker release];
}
相关文章推荐
- iphone 怎么使用图片选取器 UIImagePickerController
- iphone 怎么使用图片选取器 UIImagePickerController
- iphone 怎么使用图片选取器 UIImagePickerController
- Monotouch在IPAD与IPhone使用UIImagePickerController的图片选择不同的代码
- ios中UIImagePickerController 图片选取器的使用
- ios 使用UIImagePickerController 打开图片库和相机选择图片修改头像(iphone版本)
- ios 使用UIImagePickerController 打开图片库和相机选择图片修改头像(iphone版本)
- UIImagePickerController实现拍照录像或者选取选择图片和影像(Swift)
- UIPopverController,UIImagePickerController,图片选取。
- 不使用UIImagePickerController实现读取相册图片的方法
- iphone:使用UIImagePickerController从IPhone照片库或照相机获取图像
- UIImagePickerController本地图片视频,相机录像机使用
- UIImagePickerController 图像选取器--在iPhone中调用照相机、照片库
- UIImagePickerController 图像选取器--在iPhone中调用照相机、照片库—IOS开发
- UIImagePickerController---图片添加---初级使用
- 使用UIImagePickerController从IPhone照片库或照相机获取图像
- UIImagePickerController 图像选取器--在iPhone中调用照相机、照片库
- iOS - 使用QBImagePickerController选取图片
- ios 使用UIImagePickerController 打开图片库和相机选择图片修改头像
- 基于Swift的iOS应用程序开发:使用UIImagePickerController从相册选择图片