我不确定是否可以提高图像质量,但是代码在PDF中显示非常差的图像质量。我知道它的标准代码可以从视图中生成图像,但是我可以做些什么来指定图像质量或改进它?
- (void)renderView:(UIView*)view {
UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewAsImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[viewAsImage drawInRect:rect];
}
答案 0 :(得分:7)
您可能需要创建一个比例为2(视网膜)而不是默认值1的图形上下文。为此,请使用UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, 0.0);
。这将创建一个带有不透明目标的图像上下文(如果要渲染透明图像,则可以将第二个参数设置为NO
)并使用设备主屏幕的比例因子。
答案 1 :(得分:0)
加倍大小!
- (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];
}