gpt4 book ai didi

objective-c - renderInContext 在视网膜和非视网膜设备上

转载 作者:太空狗 更新时间:2023-10-30 03:37:49 25 4
gpt4 key购买 nike

我正在通过截取 UIView 的屏幕截图来创建 PDF,目前这在配备视网膜显示屏的 iPad3 上运行良好,但在具有较低分辨率屏幕的其他设备上进行测试时,我遇到了文本分辨率问题。

这是我的代码:

    //start a new page with default size and info
//this can be changed later to include extra info.
UIGraphicsBeginPDFPage();

//render the view's layer into an image context
//the last option specifies scale. If 0, it uses the devices scale.
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 2.0);

CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//render the screenshot into the pdf page CGContext
[screenShot drawInRect:view.bounds];

//close the pdf context (saves the pdf to the NSData object)
UIGraphicsEndPDFContext();

我还尝试将 UIGraphicsBeginImageContextWithOptions 比例设置为 2.0,但这没有任何变化。如何强制 iPad2 上的 View 以 2 倍分辨率呈现?

预期输出:

Imgur

实际输出:

Imgur

最佳答案

我最终通过将父 View 及其 subview 的 contentScaleFactor 属性设置为 2.0 来解决此问题。

UIImage 以正确的分辨率呈现,但在调用 renderInContext 时图层不是。

关于objective-c - renderInContext 在视网膜和非视网膜设备上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13225581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com