2010-10-07 162 views

回答

1

如果其圖形端口是CGBitmapContext,則可以從中創建圖像。

但這不是你想要依賴的東西。如果上下文的圖形端口不是 CGBitmapContext,那就搞定了。此外,沒有安全的方法來判斷它是否是CGBitmapContext。

所以,實際上,您不能從NSGraphicsContext創建圖像。

這會導致替代問題。

如果是繪製到上下文中的NSView,則可以解決問題:您可以ask the view for a PDF of what it draws和(如有必要)從中創建圖像。或者,將焦點鎖定在視圖上,並從焦點視圖創建一個NSBitmapImageRep。這兩個都不會在drawRect:(後者可以工作,但我不會相信它不叫drawRect:)內工作。

如果您認爲在drawRect:的範圍內需要此圖像才能將一些圖形橡皮戳到多個位置,有兩個更好的解決方案:將該圖形代碼移動到另一個方法中,並在每次需要繪製該方法時調用它,或創建一個CGLayer,將圖像一次繪製到其中,然後根據需要繪製CGLayer。重複繪製相同的事物是CGLayers的存在。

+0

感謝您的建議,任何我已經將它從NSBitmapImageRep轉換爲NSImage的方式... – boom 2010-10-08 12:30:38