2012-02-29 145 views
1

我已经花费了很多时间和精力来使用Quartz Composition绘制某些3D图和曲面。我的(可可)应用程序的QCView中一切都很美妙。但是,为了打印,我拍摄了QCView的快照以生成一个NSImage,并将其放入NSView中作为我的打印选项屏幕。但是,快照中的线条和颜色看起来非常怪异。有没有其他方法可以直接从我的QCView打印,或绕过/重写拍摄快照,以便NSImage看起来和QCView中的一样好? QCView继承自NSView,但内置的打印方法似乎不起作用。打印QCView的正确方法

谢谢!

+0

您可以附上它应该是什么样子的截图,以及它在快照后的样子吗? – smokris 2012-03-01 18:15:54

回答

0

感谢smokris,但我发现这样做的方式是采取CGImage快照。我认为我可以将这个快照放在IKImageView中,它保留了抗锯齿功能,但是IKImageView会遇到同样的问题QCView,因为当打印被调用时,您在打印窗口中什么都不会得到。

因此,最后工作的方法是使用CGPDFContext从CGImage快照创建pdf数据,使用从此pdf数据生成的NSImage加载NSImageView,并且当这转到打印窗口时,所有的抗锯齿保存!非常迂回,但是很有魅力!

0

抗锯齿消除可能与alpha透明度有关。作为构图中的最底层,您是否将Clear补丁设置为不透明的黑色? (它默认为透明黑色,这可能导致这里的问题。)

+0

感谢您的建议,但不幸的是这并没有帮助。这似乎与我的Clear补丁的参数无关。我注意到,将线条改为纯黑色(它们是灰色阴影)略微提高了图像的逼真度,如果这可能是线索的话。 – user1238705 2012-03-01 14:47:18