保存后UIImage质量差

时间:2014-01-15 23:44:50

标签: ios objective-c uiimage

我正在处理我的照片应用程序,并且最终保存的图像出现质量较差的问题。我不知道该怎么做才能使图像质量与我在屏幕上看到的相匹配(在保存到相机胶卷之前)。当我打开保存的图像时,它会像素化/模糊。这是我的代码,任何见解将不胜感激:

CGRect grabRect ;    
    if (self.view.frame.size.height==460) {
        grabRect = CGRectMake(30,50,260,257);
    }
    else{
        grabRect = CGRectMake(3,50,314,315);
    }
    //for retina displays
    NSLog(@"save......");
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
        UIGraphicsBeginImageContextWithOptions(grabRect.size, NO, [UIScreen mainScreen].scale);
    } else {
        UIGraphicsBeginImageContext(grabRect.size);
    }
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(ctx, -grabRect.origin.x, -grabRect.origin.y);
    [self.view.layer renderInContext:ctx];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

1 个答案:

答案 0 :(得分:0)

我认为这一行是问题。

UIGraphicsBeginImageContextWithOptions(grabRect.size,NO,[UIScreen mainScreen] .scale);

应该是 UIGraphicsBeginImageContextWithOptions(grabRect.size,NO,0);

我可能错了,但我认为,只需将比例设置为0,或0.0使用屏幕的默认比例。