1

在此处输入图像描述我正在使用以下代码在屏幕上捕获视图,但它不像屏幕上那样清晰。imageView 大小为 200x200point,但比例为 2.0(使用视网膜屏幕)。保存的img尺寸为 200x200 像素。我怎样才能使img原来的一样锋利?任何帮助将不胜感激!

- (UIImage*)captureView:(UIView *)theView {

    CGRect rect = theView.frame;
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [theView.layer renderInContext:context];
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;
}
4

2 回答 2

3

试试这样:

     CGRect screenRect = [[UIScreen mainScreen] bounds];
    UIGraphicsBeginImageContextWithOptions(screenRect.size, NO, 0.0);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;
于 2012-12-12T04:44:27.937 回答
1

您正在使用创建图像上下文的旧方法。改用这个:

UIGraphicsBeginImageContextWithOptions(rect.size, YES, [UIScreen mainScreen].scale);

较旧的UIGraphicsBeginImageContext函数始终假定比例为 1.0。

如果您需要 Alpha 通道,请将“YES”替换为“NO”。

于 2012-12-12T04:42:41.240 回答