【发布时间】:2014-02-18 00:38:19
【问题描述】:
在我们的应用程序中,我们正在创建 PDF NSImage(因此可扩展),然后使用 CGImage 例程将该数据写入 TIFF 文件。这在非视网膜显示器 Macintoshes 上运行良好,但在视网膜机器上,返回的数据是我们期望的分辨率的两倍(就像屏幕一样)。
我们使用的代码可以使用一个新形成的NSView 子类,将要绘制的数据(不是原始屏幕视图)引用为printingMapView。
NSData *pdfData = [printingMapView dataWithPDFInsideRect: frame];
NSImage *image = [[NSImage alloc] initWithData: pdfData];
[image setSize: size];
NSRect pRect = NSMakeRect( 0, 0, [image size].width, [image size].height);
CGImageRef cgImage = [image CGImageForProposedRect: &pRect context: NULL hints:NULL];
我四处寻找可以传递给CGImageForProposedRect:context:hints 调用的任何提示,但 Apple 文档中没有与内容规模相关的任何内容。
除了创建一个完整大小的NSBitmapImageRep 并将其作为context 参数传递给CGImageForProposedRect:context:hints 之外,还有其他方法吗?
看来在操作过程中可能会占用大量内存。
【问题讨论】:
-
运气好吗?
-
@PeterLapisu 不。我继续使用上一段中描述的 NSBitmapImageRep。