2011-07-05 132 views
0

我不知道我應該如何處理它,但如果我(在我的Mac應用程序中)有一個NSViews網格,用戶可以改變它們的顏色,是否可以翻譯這個,所以現在我已被用戶賦予每個像素的顏色,使其成爲可導出的圖像?將顏色轉換爲圖像?

我真的不能想到如何做到這一點。我不想繼續意識到我走了一條相當愚蠢的道路。

這個想法是,我將有一個用戶可以繪製的正方形網格,每個正方形中的顏色,代表最終圖像中像素的正方形。因此,他們用油漆桶填充每個油漆桶,然後將其導出爲實際圖像文件。

任何幫助非常感謝,謝謝。

回答

3

網格NSViews聽起來真的很沉重,你正在做的事情。爲什麼不寫一個自定義視圖來檢查鼠標位置並適當修改數據?然後,您將編寫自定義繪圖方法來填充自定義視圖,並且可以使用相同的精確繪圖方法寫入您可以導出的NSImage

你需要做點數學。對於每個「像素」,請在相應的NSColor上調用-set,然後使用NSBezierPath-fillRect方法。它可以幫助你拿出鉛筆&紙來找出矩形的原點&大小的數學。

如果您之前從未完成自定義繪圖,請檢查http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaDrawingGuide/Introduction/Introduction.html以獲取幫助。這真的不是那麼糟糕,只需要一點點閱讀。 :)

+0

我在想這可能是矯枉過正有一個NSView的每個像素。我如何去在單個NSView中顯示一個像素值的顏色值? (當被繪畫時,最終圖像中的每個像素當然不是字面像素,而是在屏幕上以大約30x30像素表示)有意義嗎? –

+0

你會用正確的顏色填充正確大小的盒子。 (是的,你需要做一些數學計算。)我相信你要做的是在相應的NSColor上調用'-set',然後使用'NSBezierPath'的'-fillRect'方法。它可以幫助你拿出鉛筆和紙張來找出矩形的起源和大小的數學。 – andyvn22

+0

另外,如果你之前從未做過自定義繪圖,那麼http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaDrawingGuide/Introduction/Introduction.html將有助於查看座標。這真的不是那麼糟糕,只需要一點點閱讀。 :) – andyvn22