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

2016-09-24  本文已影响48人  saiGo
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)
    }
上一篇下一篇

猜你喜欢

热点阅读