我正在处理我的照片应用程序,并且最终保存的图像出现质量较差的问题。我不知道该怎么做才能使图像质量与我在屏幕上看到的相匹配(在保存到相机胶卷之前)。当我打开保存的图像时,它会像素化/模糊。这是我的代码,任何见解将不胜感激:
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();
答案 0 :(得分:0)
我认为这一行是问题。
UIGraphicsBeginImageContextWithOptions(grabRect.size,NO,[UIScreen mainScreen] .scale);
应该是 UIGraphicsBeginImageContextWithOptions(grabRect.size,NO,0);
我可能错了,但我认为,只需将比例设置为0,或0.0使用屏幕的默认比例。