iOS:CoreGraphics图像质量差

4

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

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

    [viewAsImage drawInRect:rect];
}
2个回答

8

您可能需要创建一个比默认值1更高的缩放比例2的图形上下文。要做到这一点,请使用UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, 0.0);。这将创建一个带有不透明目标(如果您正在渲染透明图像,则可以将第二个参数设置为NO)和与设备主屏幕的比例因子的图像上下文。


谢谢,它确实提高了视图图像的质量,但对于表格视图仍然存在质量差的问题!也许我的调整大小代码有问题。无论如何还是非常感谢。 - Paresh Masani
对于 UIBarButtonItem,第二个参数必须为 false - Bartłomiej Semańczyk

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];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接