From eea52fe32665469ea0d178f3778a7d641c586b26 Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Thu, 22 May 2014 11:23:00 -0400 Subject: [PATCH 1/6] Updating GPUImage to latest Version --- GPUImage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GPUImage b/GPUImage index 49fcf22..9f95bc9 160000 --- a/GPUImage +++ b/GPUImage @@ -1 +1 @@ -Subproject commit 49fcf22d00910f5439392881839cf1d6fed729c1 +Subproject commit 9f95bc95e2efb62524efbf1d2e65fe682c9757c3 From 85ab4efa79d226954d7e480fb5cb73605209dc43 Mon Sep 17 00:00:00 2001 From: Wil Ferrel Date: Tue, 7 Jan 2014 02:23:32 -0500 Subject: [PATCH 2/6] iOS7 Compatability with AutoLayout -Added AutoLayout Constraint for effects Viewer Signed-off-by: Wil Ferrel --- Classes/DLCImagePickerController.h | 3 +- Classes/DLCImagePickerController.m | 40 +- Resources/DLCImagePicker.xib | 1230 +++++++--------------------- 3 files changed, 299 insertions(+), 974 deletions(-) diff --git a/Classes/DLCImagePickerController.h b/Classes/DLCImagePickerController.h index dc1d256..e3eace5 100644 --- a/Classes/DLCImagePickerController.h +++ b/Classes/DLCImagePickerController.h @@ -7,7 +7,7 @@ // #import -#import "GPUImage.h" +#import #import "DLCBlurOverlayView.h" @class DLCImagePickerController; @@ -20,6 +20,7 @@ @interface DLCImagePickerController : UIViewController +@property (weak, nonatomic) IBOutlet NSLayoutConstraint *filterViewBottomConstraint; @property (nonatomic, weak) IBOutlet GPUImageView *imageView; @property (nonatomic, weak) id delegate; @property (nonatomic, weak) IBOutlet UIButton *photoCaptureButton; diff --git a/Classes/DLCImagePickerController.m b/Classes/DLCImagePickerController.m index 1e0628f..65ad7ee 100644 --- a/Classes/DLCImagePickerController.m +++ b/Classes/DLCImagePickerController.m @@ -70,7 +70,8 @@ -(id) init { -(void)viewDidLoad { [super viewDidLoad]; - self.wantsFullScreenLayout = YES; + self.extendedLayoutIncludesOpaqueBars = YES; + //set background color self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"micro_carbon"]]; @@ -88,7 +89,7 @@ -(void)viewDidLoad { self.focusView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"focus-crosshair"]]; [self.view addSubview:self.focusView]; self.focusView.alpha = 0; - + [self.imageView setFillMode:kGPUImageFillModeStretch]; self.blurOverlayView = [[DLCBlurOverlayView alloc] initWithFrame:CGRectMake(0, 0, self.imageView.frame.size.width, @@ -353,7 +354,6 @@ -(IBAction) toggleBlur:(UIButton*)blurButton { blurFilter = [[GPUImageGaussianSelectiveBlurFilter alloc] init]; [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setExcludeCircleRadius:80.0/320.0]; [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setExcludeCirclePoint:CGPointMake(0.5f, 0.5f)]; - [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setBlurRadiusInPixels:kStaticBlurSize]; [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setAspectRatio:1.0f]; } hasBlur = YES; @@ -410,7 +410,7 @@ -(void)captureImage { [self prepareFilter]; [self.retakeButton setHidden:NO]; - [self.photoCaptureButton setTitle:@"Done" forState:UIControlStateNormal]; + [self.photoCaptureButton setTitle:@"Finish" forState:UIControlStateNormal]; [self.photoCaptureButton setImage:nil forState:UIControlStateNormal]; [self.photoCaptureButton setEnabled:YES]; if(![self.filtersToggleButton isSelected]){ @@ -518,20 +518,17 @@ -(IBAction) handlePan:(UIGestureRecognizer *) sender { if ([sender state] == UIGestureRecognizerStateBegan) { [self showBlurOverlay:YES]; - [gpu setBlurRadiusInPixels:0.0f]; if (isStatic) { [staticPicture processImage]; } } if ([sender state] == UIGestureRecognizerStateBegan || [sender state] == UIGestureRecognizerStateChanged) { - [gpu setBlurRadiusInPixels:0.0f]; [self.blurOverlayView setCircleCenter:tapPoint]; [gpu setExcludeCirclePoint:CGPointMake(tapPoint.x/320.0f, tapPoint.y/320.0f)]; } if([sender state] == UIGestureRecognizerStateEnded){ - [gpu setBlurRadiusInPixels:kStaticBlurSize]; [self showBlurOverlay:NO]; if (isStatic) { [staticPicture processImage]; @@ -585,14 +582,12 @@ -(IBAction) handlePinch:(UIPinchGestureRecognizer *) sender { if ([sender state] == UIGestureRecognizerStateBegan) { [self showBlurOverlay:YES]; - [gpu setBlurRadiusInPixels:0.0f]; if (isStatic) { [staticPicture processImage]; } } if ([sender state] == UIGestureRecognizerStateBegan || [sender state] == UIGestureRecognizerStateChanged) { - [gpu setBlurRadiusInPixels:0.0f]; [gpu setExcludeCirclePoint:CGPointMake(midpoint.x/320.0f, midpoint.y/320.0f)]; self.blurOverlayView.circleCenter = CGPointMake(midpoint.x, midpoint.y); CGFloat radius = MAX(MIN(sender.scale*[gpu excludeCircleRadius], 0.6f), 0.15f); @@ -602,7 +597,6 @@ -(IBAction) handlePinch:(UIPinchGestureRecognizer *) sender { } if ([sender state] == UIGestureRecognizerStateEnded) { - [gpu setBlurRadiusInPixels:kStaticBlurSize]; [self showBlurOverlay:NO]; if (isStatic) { [staticPicture processImage]; @@ -614,23 +608,14 @@ -(IBAction) handlePinch:(UIPinchGestureRecognizer *) sender { -(void) showFilters { [self.filtersToggleButton setSelected:YES]; self.filtersToggleButton.enabled = NO; - CGRect imageRect = self.imageView.frame; - imageRect.origin.y -= 34; - CGRect sliderScrollFrame = self.filterScrollView.frame; - sliderScrollFrame.origin.y -= self.filterScrollView.frame.size.height; - CGRect sliderScrollFrameBackground = self.filtersBackgroundImageView.frame; - sliderScrollFrameBackground.origin.y -= - self.filtersBackgroundImageView.frame.size.height-3; - self.filterScrollView.hidden = NO; self.filtersBackgroundImageView.hidden = NO; [UIView animateWithDuration:0.10 delay:0.05 options: UIViewAnimationOptionCurveEaseOut animations:^{ - self.imageView.frame = imageRect; - self.filterScrollView.frame = sliderScrollFrame; - self.filtersBackgroundImageView.frame = sliderScrollFrameBackground; + _filterViewBottomConstraint.constant=42; + [self.view layoutIfNeeded]; } completion:^(BOOL finished){ self.filtersToggleButton.enabled = YES; @@ -639,21 +624,12 @@ -(void) showFilters { -(void) hideFilters { [self.filtersToggleButton setSelected:NO]; - CGRect imageRect = self.imageView.frame; - imageRect.origin.y += 34; - CGRect sliderScrollFrame = self.filterScrollView.frame; - sliderScrollFrame.origin.y += self.filterScrollView.frame.size.height; - - CGRect sliderScrollFrameBackground = self.filtersBackgroundImageView.frame; - sliderScrollFrameBackground.origin.y += self.filtersBackgroundImageView.frame.size.height-3; - [UIView animateWithDuration:0.10 delay:0.05 options: UIViewAnimationOptionCurveEaseOut animations:^{ - self.imageView.frame = imageRect; - self.filterScrollView.frame = sliderScrollFrame; - self.filtersBackgroundImageView.frame = sliderScrollFrameBackground; + _filterViewBottomConstraint.constant=-31; + [self.view layoutIfNeeded]; } completion:^(BOOL finished){ diff --git a/Resources/DLCImagePicker.xib b/Resources/DLCImagePicker.xib index 8f96625..1397468 100644 --- a/Resources/DLCImagePicker.xib +++ b/Resources/DLCImagePicker.xib @@ -1,941 +1,289 @@ - - - - 1552 - 12E55 - 3084 - 1187.39 - 626.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 2083 - - - IBProxyObject - IBUIButton - IBUIImageView - IBUIPanGestureRecognizer - IBUIPinchGestureRecognizer - IBUIScrollView - IBUITapGestureRecognizer - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 301 - {{0, 78}, {320, 320}} - - - - _NS:9 - - 3 - MAA - - 2 - - IBCocoaTouchFramework - - - - 266 - {{-12, 435}, {344, 75}} - - - - _NS:9 - NO - IBCocoaTouchFramework - - NSImage - dock_bg.png - - - - - 266 - {{0, 437}, {320, 75}} - - - - _NS:9 - YES - YES - IBCocoaTouchFramework - NO - NO - NO - - - - 266 - - - - 292 - {{115, 3}, {90, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - - 3 - MQA - - - 1 - MC4xMzc1NzQxMzMyIDAuMTM2ODMyODAxMSAwLjE0MjIyMTcxNTMAA - - - 3 - MC41AA - - - NSImage - camera-icon.png - - - NSImage - camera-button.png - - - 2 - 2 - - - Helvetica-Bold - 18 - 16 - - - - - 292 - {{263, 3}, {65, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - filter-close.png - - - NSImage - filter-open.png - - - 2 - 15 - - - Helvetica-Bold - 15 - 16 - - - - - 292 - {{-8, 3}, {65, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - NSImage - library.png - - - - - - - -2147483356 - {{11, 7}, {71, 29}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - Retake - - - 1 - MC4xMzcyNTQ5MDIgMC4xMzcyNTQ5MDIgMC4xNDUwOTgwMzkyAA - - - - - 2 - 14 - - - Helvetica-Bold - 14 - 16 - - - - {{0, 437}, {320, 44}} - - - - _NS:9 - - 3 - MC42NjY2NjY2NjY3AA - - IBCocoaTouchFramework - - - - 290 - {320, 44} - - - - _NS:9 - - 3 - MC4zMzMzMzMzMzMzAA - - IBCocoaTouchFramework - - - - 292 - {{277, 3}, {40, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - close.png - - - - - - - 292 - {{136, 3}, {50, 41}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - front-camera.png - - - - - - - 292 - {{213, 0}, {44, 44}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - blur-on.png - - - NSImage - blur.png - - - - - - - 292 - {{57, 0}, {44, 44}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - flash.png - - - NSImage - flash-off.png - - - - - - {320, 480} - - - - _NS:9 - - IBCocoaTouchFramework - - - - - - - - - - filtersToggleButton - - - - 64 - - - - blurToggleButton - - - - 61 - - - - photoCaptureButton - - - - 45 - - - - filtersBackgroundImageView - - - - 72 - - - - topBar - - - - 74 - - - - flashToggleButton - - - - 78 - - - - filterScrollView - - - - 69 - - - - cameraToggleButton - - - - 48 - - - - photoBar - - - - 73 - - - - view - - - - 42 - - - - imageView - - - - 43 - - - - retakeButton - - - - 81 - - - - cancelButton - - - - 44 - - - - libraryToggleButton - - - - 88 - - - - gestureRecognizers - - - NSArray - YES - - 52 - - - - gestureRecognizers - - - NSArray - YES - - 66 - - - - gestureRecognizers - - - NSArray - YES - - 90 - - - - takePhoto: - - - 7 - - 46 - - - - toggleFilters: - - - 7 - - 68 - - - - cancel: - - - 7 - - 47 - - - - switchCamera - - - 7 - - 49 - - - - toggleBlur: - - - 7 - - 62 - - - - handlePinch: - - - - 63 - - - - handlePan: - - - - 67 - - - - toggleFlash: - - - 7 - - 79 - - - - retakePhoto: - - - 7 - - 82 - - - - switchToLibrary: - - - 7 - - 87 - - - - handleTapToFocus: - - - - 91 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 51 - - - - - 65 - - - - - 4 - - - - - - - - - - - - - - - - 37 - - - - - 77 - - - - - 50 - - - - - 34 - - - - - 36 - - - - - 71 - - - - - 7 - - - - - 31 - - - - - - - - - - - 16 - - - - - 83 - - - - - 80 - - - - - 32 - - - - - 35 - - - - - 89 - - - - - - - DLCImagePickerController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - GPUImageView - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 91 - - - - - DLCImagePickerController - UIViewController - - id - UIGestureRecognizer - UIPinchGestureRecognizer - UITapGestureRecognizer - UIButton - id - id - UIButton - UIButton - UIButton - - - - cancel: - id - - - handlePan: - UIGestureRecognizer - - - handlePinch: - UIPinchGestureRecognizer - - - handleTapToFocus: - UITapGestureRecognizer - - - retakePhoto: - UIButton - - - switchToLibrary: - id - - - takePhoto: - id - - - toggleBlur: - UIButton - - - toggleFilters: - UIButton - - - toggleFlash: - UIButton - - - - UIButton - UIButton - UIButton - UIScrollView - UIImageView - UIButton - UIButton - GPUImageView - UIButton - UIView - UIButton - UIButton - UIView - - - - blurToggleButton - UIButton - - - cameraToggleButton - UIButton - - - cancelButton - UIButton - - - filterScrollView - UIScrollView - - - filtersBackgroundImageView - UIImageView - - - filtersToggleButton - UIButton - - - flashToggleButton - UIButton - - - imageView - GPUImageView - - - libraryToggleButton - UIButton - - - photoBar - UIView - - - photoCaptureButton - UIButton - - - retakeButton - UIButton - - - topBar - UIView - - - - IBProjectSource - ./Classes/DLCImagePickerController.h - - - - GPUImageView - UIView - - IBProjectSource - ./Classes/GPUImageView.h - - - - - 0 - IBCocoaTouchFramework - YES - 3 - - {15, 22} - {16, 23} - {101, 41} - {26, 21} - {22, 21} - {320, 75} - {29, 28} - {28, 28} - {22, 26} - {22, 26} - {48, 24} - {28, 28} - - 2083 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From cc3b7ecd66deacd05e09a8e99f42bc9db333d79a Mon Sep 17 00:00:00 2001 From: Hang Chen Date: Mon, 1 Apr 2013 03:55:38 +0800 Subject: [PATCH 3/6] migrated the project to universal Fixed the crash bug in iPad Conflicts: Classes/DLCImagePickerController.h Classes/DLCImagePickerController.m --- Classes/DLCImagePickerController.h | 10 ++++++- Classes/DLCImagePickerController.m | 26 +++++++++++++++++-- .../project.pbxproj | 2 ++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/Classes/DLCImagePickerController.h b/Classes/DLCImagePickerController.h index e3eace5..99500aa 100644 --- a/Classes/DLCImagePickerController.h +++ b/Classes/DLCImagePickerController.h @@ -18,7 +18,15 @@ - (void)imagePickerControllerDidCancel:(DLCImagePickerController *)picker; @end -@interface DLCImagePickerController : UIViewController +@interface DLCImagePickerController : UIViewController { + GPUImageStillCamera *stillCamera; + GPUImageOutput *filter; + GPUImageOutput *blurFilter; + GPUImageCropFilter *cropFilter; + GPUImagePicture *staticPicture; + UIImageOrientation staticPictureOriginalOrientation; + +} @property (weak, nonatomic) IBOutlet NSLayoutConstraint *filterViewBottomConstraint; @property (nonatomic, weak) IBOutlet GPUImageView *imageView; diff --git a/Classes/DLCImagePickerController.m b/Classes/DLCImagePickerController.m index 65ad7ee..26fac2f 100644 --- a/Classes/DLCImagePickerController.m +++ b/Classes/DLCImagePickerController.m @@ -22,6 +22,7 @@ @implementation DLCImagePickerController { BOOL hasBlur; int selectedFilter; dispatch_once_t showLibraryOnceToken; + UIPopoverController *popover; } @synthesize delegate, @@ -333,7 +334,15 @@ -(IBAction)switchToLibrary:(id)sender { imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES; - [self presentViewController:imagePickerController animated:YES completion:NULL]; + + if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { + [popover dismissPopoverAnimated:YES]; + popover = [[UIPopoverController alloc] initWithContentViewController:imagePickerController]; + popover.delegate = self; + [popover presentPopoverFromRect:self.libraryToggleButton.bounds inView:self.libraryToggleButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; + } else { + [self presentViewController:imagePickerController animated:YES completion:NULL]; + } } -(IBAction)toggleFlash:(UIButton *)button{ @@ -383,6 +392,13 @@ -(IBAction) switchCamera { } } +#pragma mark - UIPopoverControllerDelegate +- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController { + if (!isStatic) { + [self retakePhoto:nil]; + } +} + -(void) prepareForCapture { [stillCamera.inputCamera lockForConfiguration:nil]; if(self.flashToggleButton.selected && @@ -708,7 +724,13 @@ - (void)imagePickerController:(UIImagePickerController *)picker didFinishPicking staticPicture = [[GPUImagePicture alloc] initWithImage:outputImage smoothlyScaleOutput:YES]; staticPictureOriginalOrientation = outputImage.imageOrientation; isStatic = YES; - [self dismissViewControllerAnimated:YES completion:nil]; + if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { + [popover dismissPopoverAnimated:YES]; + } + else { + [self dismissViewControllerAnimated:YES completion:nil]; + } + [self.cameraToggleButton setEnabled:NO]; [self.flashToggleButton setEnabled:NO]; [self prepareStaticFilter]; diff --git a/DLCImagePickerController.xcodeproj/project.pbxproj b/DLCImagePickerController.xcodeproj/project.pbxproj index 09203f4..eab3c11 100644 --- a/DLCImagePickerController.xcodeproj/project.pbxproj +++ b/DLCImagePickerController.xcodeproj/project.pbxproj @@ -696,6 +696,7 @@ INFOPLIST_FILE = "DLCImagePickerController/DLCImagePickerController-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; }; name = Debug; @@ -708,6 +709,7 @@ INFOPLIST_FILE = "DLCImagePickerController/DLCImagePickerController-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; }; name = Release; From 74569cd0a5326a3b1b65f76af0e1884f35480d40 Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Thu, 22 May 2014 15:58:53 -0400 Subject: [PATCH 4/6] Cherry pick the universal change --- Classes/DLCImagePickerController.h | 12 ++----- Classes/DLCImagePickerController.m | 8 ++--- Classes/PhotoViewController.m | 6 ++-- .../project.pbxproj | 31 ++++++++++++------- 4 files changed, 29 insertions(+), 28 deletions(-) diff --git a/Classes/DLCImagePickerController.h b/Classes/DLCImagePickerController.h index 99500aa..8279719 100644 --- a/Classes/DLCImagePickerController.h +++ b/Classes/DLCImagePickerController.h @@ -7,7 +7,7 @@ // #import -#import +#import "GPUImage.h" #import "DLCBlurOverlayView.h" @class DLCImagePickerController; @@ -18,15 +18,7 @@ - (void)imagePickerControllerDidCancel:(DLCImagePickerController *)picker; @end -@interface DLCImagePickerController : UIViewController { - GPUImageStillCamera *stillCamera; - GPUImageOutput *filter; - GPUImageOutput *blurFilter; - GPUImageCropFilter *cropFilter; - GPUImagePicture *staticPicture; - UIImageOrientation staticPictureOriginalOrientation; - -} +@interface DLCImagePickerController : UIViewController @property (weak, nonatomic) IBOutlet NSLayoutConstraint *filterViewBottomConstraint; @property (nonatomic, weak) IBOutlet GPUImageView *imageView; diff --git a/Classes/DLCImagePickerController.m b/Classes/DLCImagePickerController.m index 26fac2f..07facc4 100644 --- a/Classes/DLCImagePickerController.m +++ b/Classes/DLCImagePickerController.m @@ -270,7 +270,7 @@ -(void) prepareLiveFilter { [filter addTarget:self.imageView]; } - [filter prepareForImageCapture]; + [filter useNextFrameForImageCapture]; } @@ -453,13 +453,13 @@ -(void)captureImage { finalFilter = captureResize; } - [finalFilter prepareForImageCapture]; + [finalFilter useNextFrameForImageCapture]; [stillCamera capturePhotoAsImageProcessedUpToFilter:finalFilter withCompletionHandler:completion]; } else { // A workaround inside capturePhotoProcessedUpToFilter:withImageOnGPUHandler: would cause the above method to fail, // so we just grap the current crop filter output as an aproximation (the size won't match trough) - UIImage *img = [cropFilter imageFromCurrentlyProcessedOutput]; + UIImage *img = [cropFilter imageFromCurrentFramebuffer]; completion(img, nil); } } @@ -487,7 +487,7 @@ -(IBAction) takePhoto:(id)sender{ [staticPicture processImage]; - UIImage *currentFilteredVideoFrame = [processUpTo imageFromCurrentlyProcessedOutputWithOrientation:staticPictureOriginalOrientation]; + UIImage *currentFilteredVideoFrame = [processUpTo imageFromCurrentFramebufferWithOrientation:staticPictureOriginalOrientation]; NSDictionary *info = [[NSDictionary alloc] initWithObjectsAndKeys: UIImageJPEGRepresentation(currentFilteredVideoFrame, self.outputJPEGQuality), @"data", nil]; diff --git a/Classes/PhotoViewController.m b/Classes/PhotoViewController.m index cafe369..6529f37 100644 --- a/Classes/PhotoViewController.m +++ b/Classes/PhotoViewController.m @@ -46,17 +46,17 @@ - (void)loadView -(void) takePhoto:(id)sender{ DLCImagePickerController *picker = [[DLCImagePickerController alloc] init]; picker.delegate = self; - [self presentModalViewController:picker animated:YES]; + [self presentViewController:picker animated:YES completion:nil]; } -(void) imagePickerControllerDidCancel:(DLCImagePickerController *)picker{ - [self dismissModalViewControllerAnimated:YES]; + [self dismissViewControllerAnimated:YES completion:nil]; } -(void) imagePickerController:(DLCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; - [self dismissModalViewControllerAnimated:YES]; + [self dismissViewControllerAnimated:YES completion:nil]; if (info) { ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; diff --git a/DLCImagePickerController.xcodeproj/project.pbxproj b/DLCImagePickerController.xcodeproj/project.pbxproj index eab3c11..94a801e 100644 --- a/DLCImagePickerController.xcodeproj/project.pbxproj +++ b/DLCImagePickerController.xcodeproj/project.pbxproj @@ -107,7 +107,7 @@ remoteGlobalIDString = BCF1A34414DDB1EC00852800; remoteInfo = GPUImageTests; }; - 6A5D9A5515E01BC2001FAD14 /* PBXContainerItemProxy */ = { + 84F1BAF5192E4F54000E0685 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6A5D9A4815E01B72001FAD14 /* GPUImage.xcodeproj */; proxyType = 1; @@ -464,7 +464,7 @@ buildRules = ( ); dependencies = ( - 6A5D9A5615E01BC2001FAD14 /* PBXTargetDependency */, + 84F1BAF6192E4F54000E0685 /* PBXTargetDependency */, ); name = DLCImagePickerController; productName = DLCImagePickerController; @@ -477,7 +477,7 @@ 6A5D9A0715E0152D001FAD14 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0460; + LastUpgradeCheck = 0510; ORGANIZATIONNAME = "Backspaces Inc"; }; buildConfigurationList = 6A5D9A0A15E0152D001FAD14 /* Build configuration list for PBXProject "DLCImagePickerController" */; @@ -614,10 +614,10 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 6A5D9A5615E01BC2001FAD14 /* PBXTargetDependency */ = { + 84F1BAF6192E4F54000E0685 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = GPUImage; - targetProxy = 6A5D9A5515E01BC2001FAD14 /* PBXContainerItemProxy */; + targetProxy = 84F1BAF5192E4F54000E0685 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -637,9 +637,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -654,11 +655,15 @@ ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = "GPUImage/framework/**"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; name = Debug; @@ -667,9 +672,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -677,11 +683,14 @@ COPY_PHASE_STRIP = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = "GPUImage/framework/**"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; @@ -694,7 +703,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "DLCImagePickerController/DLCImagePickerController-Prefix.pch"; INFOPLIST_FILE = "DLCImagePickerController/DLCImagePickerController-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; @@ -707,7 +716,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "DLCImagePickerController/DLCImagePickerController-Prefix.pch"; INFOPLIST_FILE = "DLCImagePickerController/DLCImagePickerController-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = app; From e6d67cb67d69a7ba97c57dd4813536ee7bed0d6b Mon Sep 17 00:00:00 2001 From: Jack Wu Date: Fri, 23 May 2014 14:20:44 -0400 Subject: [PATCH 5/6] =?UTF-8?q?Fix=20auto=20layout=20constraints=20to=20wo?= =?UTF-8?q?rk=20on=20both=20iPad,=203.5=E2=80=9D=20and=204=E2=80=9D=20scre?= =?UTF-8?q?ens.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Classes/DLCImagePickerController.m | 10 ++-- Resources/DLCImagePicker.xib | 76 +++++++++++++++--------------- 2 files changed, 44 insertions(+), 42 deletions(-) diff --git a/Classes/DLCImagePickerController.m b/Classes/DLCImagePickerController.m index 07facc4..f0ed869 100644 --- a/Classes/DLCImagePickerController.m +++ b/Classes/DLCImagePickerController.m @@ -74,11 +74,9 @@ -(void)viewDidLoad { self.extendedLayoutIncludesOpaqueBars = YES; //set background color - self.view.backgroundColor = [UIColor colorWithPatternImage: - [UIImage imageNamed:@"micro_carbon"]]; + self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"micro_carbon"]]; - self.photoBar.backgroundColor = [UIColor colorWithPatternImage: - [UIImage imageNamed:@"photo_bar"]]; + self.photoBar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"photo_bar"]]; self.topBar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"photo_bar"]]; //button states @@ -758,6 +756,10 @@ - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } +- (BOOL)prefersStatusBarHidden { + return YES; +} + #endif @end diff --git a/Resources/DLCImagePicker.xib b/Resources/DLCImagePicker.xib index 1397468..8a0bf01 100644 --- a/Resources/DLCImagePicker.xib +++ b/Resources/DLCImagePicker.xib @@ -1,8 +1,8 @@ - + - - + + @@ -29,7 +29,7 @@ - + @@ -51,11 +51,10 @@