HOME > UIImageの色情報を抜き出す
UIImageに含まれるピクセル色データを取得します。この画像にはどんな色が含まれているんだときになる方はご利用くださいませ。
参考:How do I get the color of a pixel in a UIImage with Swift?
以下の画像を読み込んで色情報をランダムで30ピクセル分取得してみる
override func viewDidLoad() {
super.viewDidLoad()
//ネットワークから画像読み込みUIImage作成
let url = NSURL(string:"http://swift-salaryman.com/files/image/page_top.gif");
var err: NSError?;
var imageData :NSData = NSData(contentsOfURL:url!,options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)!;
var img = UIImage(data:imageData);
//上記イメージのサイズが71pxicel x 145 pixcelの画像
for (var i=0; i < 30; i++){
var ranx = arc4random_uniform(UInt32(71));
var rany = arc4random_uniform(UInt32(145));
println(getPixelColorFromUIImage(img!,pos: CGPointMake(CGFloat(ranx), CGFloat(rany))).debugDescription);
}
}
//CGPointに含まれる色データをUIImageから取得して返す
func getPixelColorFromUIImage(myUIImage:UIImage, pos: CGPoint) -> UIColor {
//ピクセルデータ取得してバイナリ化
var pixelData = CGDataProviderCopyData(CGImageGetDataProvider(myUIImage.CGImage))
var data: UnsafePointer = CFDataGetBytePtr(pixelData)
//RGBおよびアルファ値を取得します
var pixelInfo: Int = ((Int(myUIImage.size.width) * Int(pos.y)) + Int(pos.x)) * 4
var r = CGFloat(data[pixelInfo]) / CGFloat(255.0)
var g = CGFloat(data[pixelInfo+1]) / CGFloat(255.0)
var b = CGFloat(data[pixelInfo+2]) / CGFloat(255.0)
var a = CGFloat(data[pixelInfo+3]) / CGFloat(255.0)
return UIColor(red: r, green: g, blue: b, alpha: a)
}
出力結果
//色のある箇所は数値がはいっています。無い箇所は透明のRGB = 0 0 0 0が含まれています。
UIDeviceRGBColorSpace 0.635294 0.6 0.564706 1
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0.745098 0.713725 0.690196 1
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0.996078 0.941176 0.882353 1
UIDeviceRGBColorSpace 0.705882 0.678431 0.658824 1
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0.909804 0.854902 0.803922 1
UIDeviceRGBColorSpace 0 0 0 0
UIDeviceRGBColorSpace 0 0 0 0
UIColorの取得を見やすいようにする処理はこちらから。
関連記事:UIColor - UIColor全般の情報
関連記事:UIColorを16進から取得 - カラーコードで取得する方法
2021-05-14 14:21:41 | WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。
AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、
昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は... |
2021-05-06 14:04:37 | LINEのアニメーションスタンプ制作の落とし穴、、、失敗談
ゴールデンウィークにLINEスタンプを作成してみました。
作り切って申請も通したんですが、意図したアニメーションと違う、、、、
LINEクリエーターの画面だと、アニメーションのプレビュー... |
2021-05-01 18:05:35 | 久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。
忘れないようにメモ
エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。
ターゲット→ex... |
Tweet | |||
|