iOS:Coregraphics图像质量差
我不确定是否可以提高图像质量,但下面的代码在PDF中显示了非常差的图像质量。我知道从视图生成图像的标准代码,但我能做些什么来指定图像质量或改进它吗iOS:Coregraphics图像质量差,ios,uiview,uiimage,core-graphics,uigraphicscontext,Ios,Uiview,Uiimage,Core Graphics,Uigraphicscontext,我不确定是否可以提高图像质量,但下面的代码在PDF中显示了非常差的图像质量。我知道从视图生成图像的标准代码,但我能做些什么来指定图像质量或改进它吗 - (void)renderView:(UIView*)view { UIGraphicsBeginImageContext(view.frame.size); [view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *viewAsImage =
- (void)renderView:(UIView*)view {
UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewAsImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[viewAsImage drawInRect:rect];
}
您可能需要创建比例为2(视网膜)的图形上下文,而不是默认的1。为此,请使用
UIGraphicsBeginImageContextWithOptions(view.frame.size,YES,0.0)代码>。这将创建一个具有不透明目标的图像上下文(如果渲染透明图像,可以将第二个参数设置为NO
),并具有设备主屏幕的比例因子。大小加倍
- (void)renderView:(UIView*)view {
CGSize newSize = view.frame.size;
newSize.width = newSize.width * [UIScreen mainScreen].nativeScale;
newSize.height = newSize.height * [UIScreen mainScreen].nativeScale;
UIGraphicsBeginImageContext(newSize);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewAsImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[viewAsImage drawInRect:rect];
}
感谢它确实提高了视图的图像质量,但不确定TableVIEWS的图像质量仍然很差!我的大小调整代码可能有问题。无论如何,谢谢。对于UIBarButtonItem
,第二个参数必须是false
。