###Swift 特定のピクセルからRGBデータを取り出したい
Swift初心者です。特定のピクセルからRGBの情報を取り出したいのですが、全然わかりません。インターネットで検索し、類似の記述を発見し、試してみたのですが、特定のピクセルを指定するやり方がまずわからず、行き詰まってしまいました。
特に以下のコードのlet address ... のところの意味がわかりません。なぜpixcelDataByteSizeをかけるのでしょうか?
誠に申し訳ございませんが、どなたか以下のコードと特定のピクセルからRGBデータを取り出すやり方ついて教えていただけませんか?
###発生している問題・エラーメッセージ
###該当のソースコード
import UIKit
let pixelDataByteSize = 4
extension UIImage {
func getColor(pos: CGPoint) -> UIColor { let imageData = CGDataProviderCopyData(CGImageGetDataProvider(self.CGImage)) let data : UnsafePointer = CFDataGetBytePtr(imageData) let scale = UIScreen.mainScreen().scale let address : Int = ((Int(self.size.width) * Int(pos.y * scale)) + Int(pos.x * scale)) * pixelDataByteSize let r = CGFloat(data[address]) let g = CGFloat(data[address+1]) let b = CGFloat(data[address+2]) let a = CGFloat(data[address+3]) return UIColor(red: r, green: g, blue: b, alpha: a) }
}
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
Swift3.0です。
コードは ``` で囲って下さい。 https://teratail.com/help#about-markdown
回答1件
あなたの回答
tips
プレビュー