http://iphoneincubator.com/blog/tag/uiimage
Recently there have been some interesting developer news related to working with images on the iPhone.
So, I thought I’d contribute a few UIImage routines that I’ve found useful.
Combine two UIImages
To add two UIImages together you need to make use of Graphics Context.- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 { UIGraphicsBeginImageContext(image1.size); // Draw image1 [image1 drawInRect:CGRectMake(0, 0, image1.size.width, image1.size.height)]; // Draw image2 [image2 drawInRect:CGRectMake(0, 0, image2.size.width, image2.size.height)]; UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return resultingImage; }
This requires a round-trip to Core Graphics land:
- (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect { CGImageRef sourceImageRef = [image CGImage]; CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect); UIImage *newImage = [UIImage imageWithCGImage:newImageRef]; return newImage; }
Save UIImage to Photo Album
UIImageWriteToSavedPhotosAlbum(image, self, @selector(imageSavedToPhotosAlbum: didFinishSavingWithError: contextInfo:), context);
And to know if the save was successful:
- ( void )imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:( void *)contextInfo { NSString *message; NSString *title; if (!error) { title = NSLocalizedString(@"SaveSuccessTitle" , @ "" ); message = NSLocalizedString(@"SaveSuccessMessage" , @ "" ); } else { title = NSLocalizedString(@"SaveFailedTitle" , @ "" ); message = [error description]; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:NSLocalizedString(@"ButtonOK" , @ "" ) otherButtonTitles:nil]; [alert show]; [alert release]; }