• ベストアンサー

タッチした座標の色取得

Xcodeでタッチした座標の色(UIColor)が取得したいと思います。 このような機能のあるメソッドはあるのでしょうか? Xcodeは最新のものを使用しています。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#177743
noname#177743
回答No.2

基本的には処理に違いはないと思いますが……。アルファチャンネルは、存在している場合とない場合でデータ構造が変わるので、この点はややこしそうです。やったことないのですが、そのへんの処理についてのページを見つけました。CGDataProviderCopyDataでNSDataを取得した後、繰り返しで1ピクセルずつバイトデータを取り出して処理しています。CGImageGetBitsPerPixel / CGImageGetBitsPerComponentで1ピクセルあたりのバイト数を計算し処理を行なっているようですね。そういうバイトごとの地道なデータ処理を行うことになるようです。 http://stackoverflow.com/questions/6073259/getting-rgb-pixel-data-from-cgimage

nyatama
質問者

お礼

すみません。だいぶまえの記事になってしまいましたが回答ありがとうございました。 回答のチェックを見落としておりました。申し訳ございません。 後で試してみます。但し私は英語が苦手なのでURLは私にはハードルが高いです。 英語勉強せねば(´・ω・`)

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#177743
noname#177743
回答No.1

表示イメージのCGImageRefを取得し、そこからCGDataProviderRefを取得してCFDataRefを作成し、CFDataGetBytePtrでUInt8ポインタの形でバイトデータを取り出します。そこから各ピクセルのデータを探して取り出す形になると思います。 // cgImageRef = CGImageRef CGDataProviderRef dataProvider = CGImageGetDataProvider(cgImageRef); CFDataRef data = CGDataProviderCopyData(dataProvider); UInt8* buffer = (UInt8*)CFDataGetBytePtr(data); 参考アドレス http://news.mynavi.jp/column/iphone/004/index.html

nyatama
質問者

補足

回答ありがとうございます。 書き忘れていたのですが実はアルファチャンネルの値が知りたかったです。 アルファチャンネルがわかると画像のアルファチャンネルがかかってない場所で hitTest判定して細かい衝突判定ができると思ったからです。 参考アドレスのページにはアルファチャンネルの取得までは書いてなかったので よろしければアルファチャンネルの取得方法も教えて頂くことは可能でしょうか? それではお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C#で、画像の、指定した座標の色情報を取得し

    C#、Visual Studio2008を使用しています。 ピクチャーボックスに画像を読み込み、その画像の、指定した座標の色情報を取得したいです(RGB値)。 画像の読み込みまではできました。 その次の指定した座標の色情報を取得するようなメソッド?コマンド?は存在するのでしょうか? 検索しても出てこないため、ご存知でしたら教えていただけると助かります。よろしくお願いします。

  • ボタンがタッチされた時、他のボタンの背景色を変える

    iPhoneアプリ開発の勉強のためObjectiveCを用いてカレンダーアプリを作っています。 ある日付ボタンがタッチされた時、他のボタンの背景色を変える処理を組みたいのですが、うまくいきません。 よくあるカレンダーアプリにあるような、タッチされた日付のボタンの色が変わり、もともとタッチされていた日付のボタンの色が元に戻るようにしたいです。 dayOfTagメソッドで今日の日付のボタンのタグを取得し_dayTagに代入し、 [self.view viewWithTag:_dayTag].backgroundcolor = [UIColor yellowColor]; として背景色を変えるようにしているのですが、画面の全体が黄色になってしまいます。 これらはViewDidLoadの下部の方に書いてあります。 また、他の日付をクリックしたときに、もともと色が変わっていたボタンの色を元のグレーに戻すことはできるのですが、こちらも全体がグレーに戻ってしまいます。 [self.view viewWithTag:_dayTag].backgroundcolor = [UIColor yellowColor]; という書き方に問題があるように思うのですが、どのように対処すれば良いのか分かりません。 以下にコードをさらします。 ■ViewController.h http://www.dotup.org/uploda/www.dotup.org4902374.txt ■ViewController.m http://www.dotup.org/uploda/www.dotup.org4902376.txt _dayTagは初回以降はbtnTapメソッド内にてタップされたボタンのタグを入れています。 よろしくお願いします。

  • ブラウザ上でクリックされた座標に表示されている色を取得したいです。

    ブラウザ上でクリックされた座標に表示されている色を取得したいです。 画像を表示し、クリックした部分に表示されている色によってその後実行される動作を振り分けたいと思っています。 そこで質問なのですが、JavaScriptを用いて画像の指定された座標に表示されている色情報を取得することは可能でしょうか? また、JavaScriptで無理だった場合はどのような方法がありますでしょうか? 分かる方がおりましたら知恵をお貸しいただければうれしく思います。 よろしくお願いします。

  • 画像の座標取得

    c言語を使って, 画像を読み込んできて, 画像上のクリックした画像の座標を取得する プログラムを作りたいのですが, どうすればよいでしょうか. 画像の読み込み→画像の表示→画像をクリック→画像の座標を取得 といった流れのものを作りたいです. 最初は保存されている静止画像を読み込んで座標を取得することをやり, 最終的にはUSBカメラなどを使って動画の座標の取得を目指しています. 使用OSはWindows7, コンパイラはVisual Studio 2008をつかっております.

  • 最小化されたウインドウの任意の座標の色

    最小化されてないウインドウの任意の座標上の色を取得するには、APIのGetPixel関数を使って出来たのですが、そのウインドウが最小化されている場合は-1という値が返ってきて色を取得できませんでした。 最小化されたウインドウの任意の座標の色を取得すにはどうすればいいのでしょうか? よろしくお願い致します。

  • 指定した座標の色を得るためには

    Java初心者で、いろいろ調べてみたのですが、わからなかったので質問します。 現在、物体にボールが当たったときの衝突モデルを作っているのですが、その当たる場合の衝突判定ができないで困っています。 物体の形状は円と矩形を組み合わせた少し複雑な形状で、すべて黒色で表しています。 また、その物体は回転もさせるようにしているので、「ボールの座標が黒色の部分に位置しているか」で当たり判定ができないかと考えています。 もしそういうメソッドがあるのであれば、そのクラスと簡単な例を教えてもらえないでしょうか?よろしくお願いします。

    • ベストアンサー
    • Java
  • nodejsで画像の色を取得

    緊急地震速報などを自動で投稿するものをnodejsで作っているんですが、 画像の特定の座標の部分の色を特定したいのですが、どうやって取得すればよいでしょうか。 そして、その取得した色から震度を紐づける(?)にはどうすればよいですか。 色取得の方だけでも良いのでお応えいただけると幸いです。

  • IEに表示されるウェブ画像のある座標の色を取得したい。

    IEである画像を表示すると、その中の一部の色が時間とともに変化するのでプログラムで座標指定して色を取得したいのですがIEに表示するところまではできたのですが、そこから進めません。 みようみまねのGetpixelもうまくいかないし・・。 画像のURLは http://mt9.jp/images/users/8253/168253/p.gif です。 ヒントをいただけないでしょうか

  • 抽出した特徴点の座標を取得したいのですが…

    OpenCVの特徴点を抽出するサンプルプログラム http://opencv.jp/sample/gradient_edge_corner.html#goodfeaturesを使用して, 特徴点の座標をx,y座標として取得したいと思っているのですが, 関数cvFindCornerSubPix()の2番目の引数cornersに, 「コーナーの初期座標が入力され,高精度化された座標が出力される」 とあったので,出力してみたところ,5~6桁の数字がズラーッと表示されました. この数字が高精度化された座標なのでしょうが, 特徴点座標をx,y座標として取得する方法はないのでしょうか? ご存知の方がいらっしゃれば,ご教授いただけると幸いです. よろしくお願いいたします.

  • 背景画像の色を取得

    背景画像に使った画像のRGB値を取得したいのですが可能でしょうか。 やりたいこと 背景画像をランダムに変更し 背景画像の色に合わせてフォント色などを変えること たとえば背景画像の座標400,400のRGB値を取得など できますでしょうか。