使い、タッチでフォーカスと露出を決められるカスタムカメラを作る。今日の主題はタッチフォーカス&露出なのでプレビューを表示するだけで撮影(画像の保存)は実装していない。サンプルまずはサンプルから。起動すると真ん中に四角が表示される。この状態で任意の場所をタッチするとそこにフォーカスと露出が合う。プレビューカメラ入力をプレビュー表示する部分の説明は今回割愛する。この辺りは下記のドキュメントが詳しい。ひと通り読めば簡単に実装できる。プログラミングガイドもしくはなど。十分に役立つ情報が掲載されている。任意の点にフォーカスと露出をあわせるプロパティが用意されている。exposurePointOfInterest;基本的にはここにフォーカスもしくは露出を合わせたい座標を入れればいい。このプロパティに設定する値は次のルールに従う必要がある。プログラミングガイド(PDF)」によれば次のように解説されている。ホームボタンが右側になる横長モードでは、{0,0}が画像領域の左上を表し、{1,1}が右下を表します。これは、デバイスが縦長モードであっても同じです。通常のポートレイト(縦向き/ホームボタン下)の状態の時に画面上のタッチ位置をこれらに反映させるには、(1)の正規化と(2)の座標系への変換が必要になる。(1)の正規化は単純に大きさで位置座標を割ってやれば良い。y/height)ポートレイトの座標系(左上が原点)を使っている時のそれぞれの座標系の関係はこんな感じ。y軸の方向に反転してやればいい。これは(1)の正規化が済んでいれば簡単にできる。サンプルでのコードはこんな感じ。