mtm*_*ock 5 cocoa nsimage nsbitmapimagerep nscolor
我有一个NSImage
.我想NSColor
在某些x和y 读取像素.Xcode似乎有一个colorAtX:y:
方法NSImage
,但这导致崩溃说NSImage没有这样的方法.我已经看到了一些示例,您可以在其中创建NSBitmapImageRep
并调用相同的方法,但我无法将NSImage成功转换为NSBitmapImageRep
.由于NSBitmapImageRep
某种原因,它上的像素是不同的.
必须有一个简单的方法来做到这一点.它不可能是这么复杂.
没有看到你的代码就很难知道出了什么问题.
您可以NSBitmapImageRep
使用该initWithData:
方法将图像绘制成图像并传入图像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];
Run Code Online (Sandbox Code Playgroud)
请注意,您必须对y
值进行调整,因为该colorAtX:y
方法使用从图像NSImage
左上角开始的坐标系,而坐标系从左下角开始.
或者,如果像素在屏幕上可见,则可以使用该NSReadPixel()
函数获取当前坐标系中像素的颜色.
归档时间: |
|
查看次数: |
4918 次 |
最近记录: |