4

我不确定是否可以提高图像质量,但以下代码在 PDF 中显示的图像质量非常差。我知道从视图生成图像的标准代码,但是我能做些什么来指定图像质量或改进它吗?

- (void)renderView:(UIView*)view {
    UIGraphicsBeginImageContext(view.frame.size);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewAsImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    [viewAsImage drawInRect:rect];
}
4

2 回答 2

8

您可能需要创建比例为 2(视网膜)而不是默认值 1 的图形上下文。为此,请使用UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, 0.0);. 这将创建一个带有不透明目标的图像上下文(NO如果要渲染透明图像,您可以将第二个参数设置为)和设备主屏幕的比例因子。

于 2013-07-23T17:53:25.813 回答
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];
}
于 2014-10-30T18:24:28.640 回答