プロが教えるわが家の防犯対策術!

皆様の力をおかしください。
Androidで例えば一つの画像があるとします。

それである部分を選択して切り抜きたいとします。このときどうやって処理をしていけばいいのかが解らなくて困っています。


用件は範囲の大きい画像をある部分だけ切り抜く処理をしたいのですがどうやってやればよいでしょうか?よろしくお願いいたします。

A 回答 (2件)

既に画面表示などはどう実装するか決めていますか? それによって対処は変わるとは思いますが……。



一般的な形として、Viiewを継承したクラスを実装して、その中でイメージを描画するとします。この場合、クラスにonTouchEventを用意し、画面タッチのイベントを取得して処理をします。メソッドで渡されるMotionEventインスタンスからgetX/getYを呼び出せば、イベント発生時の縦横位置が取得できます。

class ○○ extends View {

@Override
protected void onDraw(Canvas canvas){
……表示するイメージの処理……
}

@Override
public boolean onTouchEvent(MotionEvent event){
……タッチイベント処理……
}
}

onTouchEventで、指先が触れた時と離れた時の位置をそれぞれインスタンスフィールドなどに保管しておき、描画するイメージからその部分を切り抜けばいいでしょう。切り抜きの処理は、新たにBitmapインスタンスを作成し、そこに元のイメージから指定の領域を切り取って描画すればよいでしょう。

Bitmap bitmap = Bitmap.createBitmap(横幅, 高さ, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap( もとのイメージ, 切り抜く領域のRect, 描画先のRect, null);

こんな感じで、元絵の指定領域を切り抜いたBitmapが作れます。後はそれを利用して描画するなり保存するなりすればいいわけです。
    • good
    • 0

私はPicSay Proというアプリを使用しています。



メニュー→Transform Picture→Crop and Straighten

を選べば画像の切り出す範囲を指で指定ができます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!