2011-07-05 93 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