首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速测点像素的颜色

快速测点像素的颜色
EN

Stack Overflow用户
提问于 2015-01-02 17:37:53
回答 1查看 3.1K关注 0票数 2

我发现了一个目标C代码的例子,它在这里获取像素的颜色:How to get the pixel color on touch?

我需要帮助的代码的特定部分是使用CGColorSpaceCreateDeviceRGB创建上下文的位置:

-这就是目标-C代码

代码语言:javascript
复制
unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel,
            1, 1, 8, 4, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);

我最好的尝试如下(我还没有返回任何内容,我正在尝试首先正确地获取上下文):

-这是我最好的尝试

代码语言:javascript
复制
func getPixelColorAtPoint()
    {
        let pixel = UnsafeMutablePointer<CUnsignedChar>.alloc(1)
        var colorSpace:CGColorSpaceRef = CGColorSpaceCreateDeviceRGB()
        let context = CGBitmapContextCreate(pixel, width: 1, height: 1, bitsPerComponent: 8, bytesPerRow: 4, space: nil, bitmapInfo: CGImageAlphaInfo.PremultipliedLast)

    }

然而,这给了我一个错误。

代码语言:javascript
复制
Cannot convert the expression's type '(UnsafeMutablePointer<CUnsignedChar>, width: IntegerLiteralConvertible, height: IntegerLiteralConvertible, bitsPerComponent: IntegerLiteralConvertible, bytesPerRow: IntegerLiteralConvertible, space: NilLiteralConvertible, bitmapInfo: CGImageAlphaInfo)' to type 'IntegerLiteralConvertible'

如果您能建议我如何修改上面的代码,以便正确地输入上下文函数参数,我将非常感谢您!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-02 17:53:34

有两个不同的问题:

因此,这应该汇编如下:

代码语言:javascript
复制
let pixel = UnsafeMutablePointer<CUnsignedChar>.alloc(4)
var colorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.PremultipliedLast.rawValue)
let context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, bitmapInfo)

// ...

pixel.dealloc(4)

注意,您应该为4个字节分配空间,而不是1字节。

另一种选择是:

代码语言:javascript
复制
var pixel : [UInt8] = [0, 0, 0, 0]
var colorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.PremultipliedLast.rawValue)
let context = CGBitmapContextCreate(UnsafeMutablePointer(pixel), 1, 1, 8, 4, colorSpace, bitmapInfo)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27746185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档