使用路径从位图中裁剪区域

4
我试图从一张图片中切割出一个拼图块,创建一个新的Bitmap图像。我使用了一个Path对象来实现这个目标。以下是当前的结果。

enter image description here

这是我如何实现的:
    Path path = new Path();
    // Multiple path methods to create shape of puzzle piece...
    path.close();

    Bitmap source = BitmapFactory.decodeResource(getResources(), R.drawable.flowers);
    Bitmap workingCopy = source.copy(Bitmap.Config.ARGB_8888, true);
    Canvas canvas = new Canvas(workingCopy);
    path.setFillType(Path.FillType.INVERSE_WINDING);
    Paint paint = new Paint();
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    canvas.drawPath(path, paint);

    ((ImageView) findViewById(R.id.myImage)).setImageBitmap(workingCopy);

我希望它可以是透明的,而不是黑色,并且裁剪掉path范围之外的所有内容。


正如Stefaan在下面建议的那样,问题出在我使用的jpg图像上。它似乎有黑色背景。使用具有透明背景的png图像解决了这个问题。 - dumazy
1个回答

1

我已尝试使用具有透明度的PNG文件,背景是透明的而不是黑色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接