gpt4 book ai didi

cocoa:读取 NSImage 的像素颜色

转载 作者:行者123 更新时间:2023-12-03 16:10:25 26 4
gpt4 key购买 nike

我有一个NSImage。我想读取某个 x 和 y 处像素的 NSColor 。 Xcode 似乎认为 NSImage 上有一个 colorAtX:y: 方法,但这会导致崩溃,说 NSImage 没有这样的方法。我见过一些创建 NSBitmapImageRep 并调用相同方法的示例,但我无法成功将 NSImage 转换为 NSBitmapImageRep。由于某种原因,NSBitmapImageRep 上的像素有所不同。

必须有一个简单的方法来做到这一点。事情不可能这么复杂。

最佳答案

如果不查看代码,就很难知道出了什么问题。

您可以使用 initWithData: 方法将图像绘制到 NSBitmapImageRep,并传入图像的 TIFFRepresentation

然后,您可以使用方法 colorAtX:y: 获取像素值,该方法是 NSBitmapImageRep 的方法,而不是 NSImage:

NSBitmapImageRep* imageRep = [[NSBitmapImageRep alloc] initWithData:[yourImage TIFFRepresentation]];
NSSize imageSize = [yourImage size];
CGFloat y = imageSize.height - 100.0;
NSColor* color = [imageRep colorAtX:100.0 y:y];
[imageRep release];

请注意,您必须调整 y 值,因为 colorAtX:y 方法使用从图像左上角开始的坐标系,而NSImage 坐标系从左下角开始。

或者,如果像素在屏幕上可见,那么您可以使用 NSReadPixel()函数获取当前坐标系中像素的颜色。

关于cocoa:读取 NSImage 的像素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com