0

UIKit 的 contentScaleFactor 的 CoreGraphics 等价物是什么?

我正在使用 UKit PDF 创建功能创建 PDF,它允许渲染到 PDF 上下文。但是,我需要降低生成的 PDF 的质量。我们已经使用 UIKit 的 contentScaleFactor 属性实现了这一点(渲染到 UIView),它是图形空间和像素空间之间的转换因子。但是,我需要在没有 UIView 的情况下将这种魔法和巫术应用于 CGContextRef,但我不知道我应该做什么。

任何其他关于如何降低 PDF 质量的建议将不胜感激。

谢谢

编辑:我的输入是 PDF 文档。我正在使用 CoreGraphics 从另一个 PDF 重新创建 PDF,但该过程可能会很慢,具体取决于某些 PDF 页面的图形强度。

4

1 回答 1

0

创建上下文时,请指定原始 PDF 的一小部分的宽度和高度:

    CGContextRef context = CGBitmapContextCreate(NULL, 
                                    pdfSize.width / 4, 
                                    pdfSize.height/4, 
                                    8,                      
                                    0,   
                                    colorSpace, 
                                    kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);

然后在此处根据需要将其缩小。然后你可以这样做:

CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
UIImage *reflectionImage = [UIImage imageWithCGImage:cgImage scale:4.0 orientation:up];

或者您可以在新的放大上下文中绘制 cgImage 图像,这取决于您要执行的操作。

于 2013-03-05T16:32:31.567 回答