0

Androidの画像にフリーハンドのトリミングを実装しています。タッチを使用して画像に任意の形状を描画し、パス上のすべてのポイントを配列リストに収集できます。しかし、任意の形状内の画像の一部を抽出することはできません。

かなり検索しましたが、適切な答えを見つけることができませんでした。これの実例を持っている団体はありますか?

編集:ビットマップで以下のコードを使用して、任意の形状を作成できます。

@Override
protected void onDraw(Canvas canvas) {


    canvas.drawBitmap(scaledBitmap, 0, 0,null);
    path.reset();


    boolean firstTouchPoint = true;

    for (int i = 0; i < lastPath.size(); i += 2) {
        Point point = lastPath.get(i);

        if (firstTouchPoint) {
            firstTouchPoint = false;
            path.moveTo(point.fXPosition, point.fYPosition);
        } else if (i < lastPath.size() - 1) {
            Point next = lastPath.get(i + 1);
            path.quadTo(point.fXPosition, point.fYPosition, next.fXPosition, next.fYPosition);
        } else {
            path.lineTo(point.fXPosition, point.fYPosition);
        }
    }

    canvas.drawPath(path, paint); 


}

しかし、このパス内のビットマップ領域を抽出できません。

4

1 に答える 1

0

これを試してください:

//the image should support transparency.
Bitmap scaledBitmap = Bitmap.createBitmap(width, height,Bitmap.Config.ARGB_8888);
// fill the area around the path with alpha
Canvas c = new Canvas(scaledBitmap);
c.clipPath(path, Region.Op.DIFFERENCE);
c.drawColor(0x00000000, PorterDuff.Mode.CLEAR);
于 2013-10-18T02:11:12.270 に答える