2012-02-29 36 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