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;
- }
Create a UIImage from a part of another UIImage
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];
- CGImageRelease(newImageRef);
- return newImage;
- }
Save UIImage to Photo Album
This is just a one-liner:
- 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];
- }
No comments:
Post a Comment