#import #import "GPUImageOutput.h" @interface GPUImagePicture : GPUImageOutput { CGSize pixelSizeOfImage; BOOL hasProcessedImage; dispatch_semaphore_t imageUpdateSemaphore; } // Initialization and teardown - (id)initWithURL:(NSURL *)url; - (id)initWithImage:(UIImage *)newImageSource; - (id)initWithCGImage:(CGImageRef)newImageSource; - (id)initWithImage:(UIImage *)newImageSource smoothlyScaleOutput:(BOOL)smoothlyScaleOutput; - (id)initWithCGImage:(CGImageRef)newImageSource smoothlyScaleOutput:(BOOL)smoothlyScaleOutput; // Image rendering - (void)processImage; - (CGSize)outputImageSize; /** * Process image with all targets and filters asynchronously * The completion handler is called after processing finished in the * GPU's dispatch queue - and only if this method did not return NO. * * @returns NO if resource is blocked and processing is discarded, YES otherwise */ - (BOOL)processImageWithCompletionHandler:(void (^)(void))completion; - (void)processImageUpToFilter:(GPUImageOutput *)finalFilterInChain withCompletionHandler:(void (^)(UIImage *processedImage))block; @end