这是给你的答案stitch picture in iphone
根据我的经验,我可以给你一些注意事项:
比例尺
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
{
UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize);
[图像drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
返回缩放图像;
}
调整大小
- (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize
{
UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height));
[图像 drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
返回调整大小图像;
}
处理特定视图
你必须先导入 QuzrtzCore.framework
-(UIImage*)captureView:(UIView *)theView
{
CGRect rect = theView.frame;
UIGraphicsBeginImageContext(rect.size);
CGContextRef 上下文 = UIGraphicsGetCurrentContext();
[theView.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
返回图片;
}
处理范围表单图像
CGRect captureRect = yourRect
CGRect viewRect = self.view.frame;
UIImage *viewImg;
UIImage *captureImg;
UIGraphicsBeginImageContext(viewRect.size);
CGContextRef 上下文 = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
viewImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
captureImg = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(viewImg.CGImage, captureRect)];
保存图片
保存在应用中
NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"image.png"];
[UIImagePNGRepresentation(image) writeToFile:path atomically:YES];
保存在相册中
CGImageRef screen = UIGetScreenImage();
UIImage* 图像 = [UIImage imageWithCGImage:screen];
CGImageRelease(屏幕);
UIImageWriteToSavedPhotosAlbum(图像,自我,无,无);