首页 > 解决方案 > CGContextDrawImage 渲染模糊的文本和图像

问题描述

我正在将 PDF 内容渲染到 UIView 中,并且我看到 PDF 提供的文本在缩放时是模糊的。

我渲染文本的方式如下

CGSize size = CGSizeMake(96, 9); // These numbers come from the PDF
NSString* text = @"Text to render";
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[text drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

这个 UIImage 有正确的大小,当我通过 XCode 检查它时它很清晰。

当我CGContextDrawImage在下面打电话时

CGRect widgetRect = CGRectMake(0,0,180,90);
CGContextDrawImage(mainContext, size, image.CGImage);

结果很模糊。

备注

  1. 上面的原点位于mainContext左下方,这就是为什么我将文本渲染到单独的上下文中并绘制图像的原因。

  2. UIView 的 contentScaleFactor 为 3,并且mainContext具有与该比例匹配的大小。

  3. 我看着CGContextDrawImage 绘制了非常模糊的大图像,它并没有解决我的问题。

  4. 我无法在我自己的应用程序之外重现此问题。

最后一部分向我展示了问题出在应用程序代码中的某个地方,因此我希望获得有关在渲染管道中的何处查找以及如何调试的提示和想法。

编辑:将 calll 更新CGContextDrawImage为使用正确的大小。

标签: iphonepdfcore-graphics

解决方案


推荐阅读