我想定期缓存PDFView
中NSImage
的可见边界。我稍后会将图像绘制到屏幕上,所以我希望它看起来与原始PDFView
完全相同。但是,在图像上下文中绘制PDFView
的文本时,我无法让Cocoa使用子像素消除锯齿。它确实使用普通(即非LCD)抗锯齿,但这会产生明显更轻的文本。
有没有可移植的方法来解决这个问题?也就是说,当监视器支持子像素消除锯齿时,有没有办法在NSView
中缓存NSImage
?
我的代码:
PDFView *pdfView = ...
NSBitmapImageRep *rep = [pdfView bitmapImageRepForCachingDisplayInRect:[pdfView bounds]];
[pdfView cacheDisplayInRect:[pdfView bounds] toBitmapImageRep:rep];
NSImage *image = [[NSImage alloc] initWithSize:[rep size]];
[image addRepresentation:rep];