iphone - 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);
结果很模糊。
备注:
上面的原点位于
mainContext
左下方,这就是为什么我将文本渲染到单独的上下文中并绘制图像的原因。UIView 的 contentScaleFactor 为 3,并且
mainContext
具有与该比例匹配的大小。我看着CGContextDrawImage 绘制了非常模糊的大图像,它并没有解决我的问题。
我无法在我自己的应用程序之外重现此问题。
最后一部分向我展示了问题出在应用程序代码中的某个地方,因此我希望获得有关在渲染管道中的何处查找以及如何调试的提示和想法。
编辑:将 calll 更新CGContextDrawImage
为使用正确的大小。
解决方案
推荐阅读
- javascript - 将来自异步请求的响应保存到值(节点 js)
- r - 通过 Quasiquotation & render 函数评估 R Markdown 参数
- rust - 为什么允许在一个表达式中同时使用数字类型向量的不可变和可变借用?
- ios - 将 UIView (Overlay) 与应用背景混合
- c - CS50 CAESAR PSET2 通过命令行参数 argv[] 的密钥加密文本的问题
- windows - 为Windows文件夹中的每个文件运行命令的NPM脚本?
- c# - 无法翻译 LINQ 表达式
- database - 如何使用学说解决架构更新错误?
- c++ - 如何解压未知大小的元组?
- authentication - 为什么我会使用 NestJS 获得 JWTStrategy 需要密钥或密钥?