用UIImagePickerViewController自定义相机界面

网友投稿 300 2022-09-14

用UIImagePickerViewController自定义相机界面

1.设定imagePacker参数

// Transform values for full screen support:#define CAMERA_TRANSFORM_X 1// this works for iOS 4.x#define CAMERA_TRANSFORM_Y 1.24299 -(void)viewWillAppear:(BOOL)animated{ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];imagePickerController.delegate = self; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;imagePickerController.showsCameraControls = NO;imagePickerController.navigationBarHidden = YES;imagePickerController.wantsFullScreenLayout = YES;imagePickerController.cameraViewTransform =CGAffineTransformScale(imagePickerController.cameraViewTransform, CAMERA_TRANSFORM_X,CAMERA_TRANSFORM_Y); cameraViewController = [[CameraOverlayViewControlleralloc]initWithNibName:@"CameraOverlayViewController" bundle:nil]; imagePickerController.cameraOverlayView = cameraViewController.view; cameraViewController.pickerController = imagePickerController; [self presentModalViewController:imagePickerController animated:NO];release];} 2.代理方法 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary [picker dismissModalViewControllerAnimated:NO]; UIImage* image = [info valueForKey:UIImagePickerControllerOriginalImage]; BeautifyPhotoViewController* beautifyPhotoViewController = [[BeautifyPhotoViewControlleralloc]initWithNibName:@"BeautifyPhotoViewController" bundle:nil];photoImage [self.navigationController pushViewController:beautifyPhotoViewController animated:YES];release];} 3.overlayView对应的controller #import @interface CameraOverlayViewController () @end @implementation @synthesize@synthesize@synthesize@synthesize@synthesize@synthesize photoBtn; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle{self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];if (self) { [self getAllPhotoImages]; } return self;} - (void)viewDidLoad{ [super viewDidLoad]; isOneToOne = YES; imageArray = [[NSMutableArray alloc]init]; shadowView = [[ShadowView alloc]initWithRect:CGRectMake(0, 80, 320, 320)]; [self.view addSubview:shadowView]; [self.view sendSubviewToBack:shadowView]; [shadowView release]; } - (void)viewDidUnload{ [super viewDidUnload]; }//闪光灯-(IBAction)cameraTorchOn:(id)sender{ if (pickerController.cameraFlashMode ==UIImagePickerControllerCameraFlashModeAuto) { pickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;else pickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff; }} //前后摄像头- (IBAction)swapFrontAndBackCameras:(id)sender { if (pickerController.cameraDevice ==UIImagePickerControllerCameraDeviceRear ) { pickerController.cameraDevice = UIImagePickerControllerCameraDeviceFront;else pickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear; }}//改变拍摄比例-(IBAction)changeCameraScale:(id)sender{ if (isOneToOne) { [shadowView changeRect:CGRectMake(0, 0, 320, 428)]; [cameraScaleBtn setImage:[UIImage imageNamed:@"font_-scale43.png"]forState:UIControlStateNormal]; titleImageView.alpha = 0.2; flashModeBtn.alpha = 0.5; deviceModeBtn.alpha = 0.5;isOneToOne = NO;else [shadowView changeRect:CGRectMake(0, 80, 320, 320)]; [cameraScaleBtn setImage:[UIImage imageNamed:@"font_-scale11.png"]forState:UIControlStateNormal]; titleImageView.alpha = 1; flashModeBtn.alpha = 1; deviceModeBtn.alpha = 1;isOneToOne = YES; }} - (IBAction)enterPhotoAlbum:(id)sender { PhotoAlbumViewController* photoAlbumViewController = [[PhotoAlbumViewControlleralloc]initWithNibName:@"PhotoAlbumViewController" bundle:nil];self presentModalViewController:photoAlbumViewController animated:YES]; } //拍摄照片-(IBAction)takeThePic:(id)sender{ [pickerController takePicture];} -(IBAction)backToHome:(id)sender{ [pickerController dismissModalViewControllerAnimated:NO]; [[NSNotificationCenter defaultCenter] postNotificationName:@"backToHome" object:nil];} - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{return (interfaceOrientation == UIInterfaceOrientationPortrait);} - (void)dealloc{ [cameraScaleBtn release]; [flashModeBtn release]; [deviceModeBtn release]; [titleImageView release];super dealloc];} -(void)getAllPhotoImages{ ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror){ NSLog(@"error occour =%@", [myerror localizedDescription]); }; ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset *result, NSUInteger index,BOOL *stop){if (result!=NULL) { if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {imageArray addObject:result];UIImage *img=[UIImage imageWithCGImage:result.thumbnail]; [photoBtn setImage:img forState:UIControlStateNormal]; } } }; ALAssetsGroup* group, BOOL* stop){ if (group == nil) {return; }if (group!=nil) {enumerateAssetsUsingBlock:groupEnumerAtion]; } }; ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init]; [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:libraryGroupsEnumeration failureBlock:failureblock];release];}@end

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:云游四方|隈研吾设计的安徒生博物馆,带你走进童话梦境!
下一篇:篮网签下格里芬,昔日悍将一年多没扣篮了!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~