画像とデバイス


よくある、モバイルデバイスのカメラで撮影した画像を取り込んで任意の矩形(四辺形)に切り取って保存する処理を考えてみる。
対象とするプラットホームはiOSとandroid、以下、同じ操作性を提供したい。

1. カメラで撮影した画像を画面にプレビュー表示する
2. スクリーン上をタップして切りとる領域を決定する
3. 領域に沿って画像を切り取る
4. 切り取った画像を保存する

ここまでだ。
両プラットホームで同じ機能を提供できたら、次に3.と4.の間に画像を加工する処理を入れる予定。

今解らないのは1.で撮影した画像を切り取る際の座標の取り扱いだ。

画像データはImageViewなりUIImageViewなりに読み込んで表示し、その後同ビュー上で切り取る矩形を選択する。ただし、選択した領域を形作る点の座標はビュー上の座標であり、実際に画像のを切り取る際に

画像(ビットマップ)座標 <-> デバイス(スクリーン)座標

の相互変換が必要になる。
処理としてぱっと浮かぶのは、ビューの描画領域の大きさとビットマップの大きさの比率を取り、点に比率を乗じることで座標を変換するやり方。
でも両プラットホームともそんなプリミティブなやり方はしないはずだよなぁ。