UIImage拉伸、合成、截取、保存到相册、截屏

一.拉伸

- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {

    UIGraphicsBeginImageContext(newSize);

    [image drawInRect:CGRectMake(0,0, newSize.width, newSize.height)];

    UIImage *newImage =UIGraphicsGetImageFromCurrentImageContext();    

    UIGraphicsEndImageContext();

    return newImage;

}

 

二.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;

}

三.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];

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];

}

 

五.截屏

- (UIImage *)screenShotsImage
{
 UIGraphicsBeginImageContext(self.view.bounds.size);
 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
 UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 
 return image;
}

 

你可能感兴趣的:(UIImage拉伸、合成、截取、保存到相册、截屏)