【问题标题】:Cocoa + Quartz Newbie: Getting the color of pixels in an NSImage & drawing offscreenCocoa + Quartz Newbie:获取 NSImage 中像素的颜色并在屏幕外绘图
【发布时间】:2011-02-20 01:23:56
【问题描述】:

我正在尝试为我的 Cocoa(Mac,而不是 iOS)应用程序创建自定义颜色选择器,但遇到了一些问题。我对计算机图形和绘图的各种模式已经足够熟悉了,但我是 Cocoa 的新手,我认为问题基本上在于迷失在其多层图形技术中。

我正在尝试实现的是一个颜色选择器,它停靠在一个更大的侧边栏视图中,所以我认为最好自己绘制它而不是使用标准浮动面板。 (我有充分的理由;不必提及与 Apple 的 HIG 不同的警告。)在研究检索 NSImage(在本例中为 colorWheel.PNG)上单击的像素颜色的最佳方法时,我发现它是最好的进入核心图形并将图像绘制到我自己的位图上下文中。

...就我而言,这就是成功的。我已经成功地创建了上下文,但我不确定从这里去哪里以及这是否是矫枉过正。我想我正在寻找的是对这些类链接在一起的层次结构的可靠解释,以及如何最好地创建我正在寻找的效果。在此应用程序的许多部分中,离屏绘图都会很有用,我很想更好地理解它。

提前致谢。

【问题讨论】:

    标签: cocoa drawing quartz-graphics cgbitmapcontext


    【解决方案1】:

    快速解决方案:

    无需将其绘制到屏幕外。
    只需从 NSImage 创建一个 NSBitmapImageRep。
    并使用 colorAtX:y: 检索 NSColor。

    当然你只需要创建一次 NSBitmapImageRep。
    然后每次用户点击移动鼠标时查找颜色。
    在我的应用中,这根本不会导致任何性能问题。

    使用 NSView 显示 PNG 并检索坐标。

    【讨论】:

      猜你喜欢
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 2014-04-08
      • 2015-02-08
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多