画像の切り抜き


キッチンタイマーアプリの売りの機能である画像選択は、
選択された画像をテンキーの画面サイズに合わせて切り抜くようにしています。
切り抜きは自前で用意せず、Androidのトリミング機能をIntentで呼び出しています。

Android標準のトリミング機能を呼び出す方法は、以下のブログを参考しました。
インテントでAndroid標準のトリミング機能(アプリ)を呼び出す方法
Capture and Crop an Image with the Device Camera

実際のソースです。
各種データを引数で受け取りIntentを返してます。
切り抜いたデータは、サイズが大きいのでストレージに保存するようにしてます。

苦戦したのはアスペクト比(引数のaspectX, aspectY)をどうやって計算したら良いかでした。
正方形ではなく、画面サイズに合わせてテンキーサイズが異なるため計算する必要があります。
参考にしたのは以下のブログです。
Crop Image keeping the Aspect Ratio & without Stretch

テンキーのViewサイズをユークリッドの互除法を使って最大公約数を求めて
アスペクト比を計算しました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA