我正在制作与图像相关的应用程序。 我的屏幕上有多个图像。 我拍了那个屏幕截图。 但我想拍一些有限区域的屏幕截图, 所以基本上我想限制屏幕截图的框架。 下面是我的截屏代码。
-(UIImage *) screenshot
{
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, [UIScreen mainScreen].scale);
[self.view drawViewHierarchyInRect:self.view.frame afterScreenUpdates:YES];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
拍摄屏幕截图后,我通过facebook分享方法中的以下代码使用它,
UIImage *image12 = [self screenshot];
[mySLComposerSheet addImage:image12];
答案 0 :(得分:0)
类似的东西:
-(UIImage *)ConvertToImage:(UIView *)view
{
UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
答案 1 :(得分:0)
如果我理解正确,你想拍摄截图并裁剪它。有很多选择,这是其中之一:
UIGraphicsBeginImageContext(self.view.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); /* this is the full capture */
CGRect r = (CGRect){{image.size.width * 0.25, image.size.height * 0.25}, {image.size.width / 2, image.size.height / 2}};
CGImageRef ref = CGImageCreateWithImageInRect(image.CGImage, r);
UIImage *cropped = [UIImage imageWithCGImage:ref]; /* this is the center area */
CGImageRelease(ref);
UIGraphicsEndImageContext();
只需捕捉正确的视图并计算出正确的矩形。
在iOS 7中,您可以更快UIView
使用drawViewHierarchyInRect:afterScreenUpdates:
代替renderInContext
。