画像のピクセル値を求めるコードを探し見つけて、編集したのが以下のコードとなるのですが、この戻り値をUIColorではなく、Int型に変更することはできるのでしょうか?戻り値として最後の方に記載してある配列を得たいのです。
swift
1func getPixelColorFromUIImage(myUIImage:UIImage, pos: CGPoint) -> UIColor { 2 3 //ピクセルデータ取得 4 let pixelData = myUIImage.cgImage!.dataProvider!.data 5 let data: UnsafePointer = CFDataGetBytePtr(pixelData) 6 7 //RGBを取得 8 let pixelInfo: Int = ((Int(myUIImage.size.width) * Int(pos.y)) + Int(pos.x)) * 4 9 let r = CGFloat(data[pixelInfo]) 10 let g = CGFloat(data[pixelInfo+1]) 11 let b = CGFloat(data[pixelInfo+2]) 12 let a = CGFloat(data[pixelInfo+3]) 13 14 //ピクセル値を階調値に変換 15 let R = pow(Double(r),2.2)*0.222015 16 let G = pow(Double(g),2.2)*0.706655 17 let B = pow(Double(b),2.2)*0.071330 18 19 let y = pow((R+G+B),(1/2.2)) 20 21 //階調値を格納する配列を作る 22 let Y: Int = Int(y) 23 let gradiationValue = [Y] 24 print (gradiationValue) 25 26 return UIColor(red: r, green: g, blue: b, alpha: a) 27 }
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー