美文网首页
iOS获取imageView某一个像素点的RGBA值

iOS获取imageView某一个像素点的RGBA值

作者: saiGo | 来源:发表于2016-09-24 12:06 被阅读48次
    func getPixelColorAtLocation(point : CGPoint){
            let cgImage = self.image?.CGImage
            let pointX = trunc(point.x)
            let pointY = trunc(point.y)
            
            let width = self.frame.width
            let height = self.frame.height
            let colorSpace = CGColorSpaceCreateDeviceRGB()
            let bytesPerPixel = 4
            let bytesPerRow = bytesPerPixel * 1
            let bitsPerComponent = 8
            var pixelData : [UInt8] = [0,0,0,0]
            let context = CGBitmapContextCreate(&pixelData,
                                  1,
                                  1,
                                  bitsPerComponent,
                                  bytesPerRow,
                                  colorSpace,
                                  CGImageAlphaInfo.PremultipliedFirst.rawValue | CGBitmapInfo.ByteOrder32Big.rawValue)
            CGContextSetBlendMode(context!, CGBlendMode.Copy)
            CGContextTranslateCTM(context!, -pointX, pointY-height);
            CGContextDrawImage(context!, CGRectMake(0, 0, width, height), cgImage!)
            CGContextDrawImage(context!, CGRectMake(0, 0, width, height), cgImage!)
    //        print("A:%f R:%f G:%f B:%f",pixelData[0],pixelData[1],pixelData[2], pixelData[3])
            print(pixelData)
        }
    

    相关文章

      网友评论

          本文标题:iOS获取imageView某一个像素点的RGBA值

          本文链接:https://www.haomeiwen.com/subject/kusxyttx.html