首页 > 解决方案 > 如何反转蒙版?

问题描述

我正在尝试使用以下代码反转图像蒙版位图

    static final PorterDuffXfermode eraseMode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR);

public void invertSelection() {
    Bitmap inverted = Bitmap.createBitmap(imageBitmap.getWidth(), imageBitmap.getHeight(), Bitmap.Config.ARGB_8888);
    if (!annotationBitmap.sameAs(inverted)) {
        Canvas canvas = new Canvas(inverted);
        paint.setColor(Color.RED);
        canvas.drawPaint(paint);
        paint.setXfermode(eraseMode);
        canvas.drawBitmap(annotationBitmap, 0,0,paint);
        annotationBitmap = inverted;
        undoStack.push(annotationBitmap.copy(annotationBitmap.getConfig(), true));
        invalidate();
    }
}

调用此函数后,我不再能够在 annotationBitmap 上绘图。

我在这里做错了什么???

标签: androidcanvasbitmapandroid-custom-viewpaint

解决方案


我认为你应该在 medium 上阅读这篇漂亮的文章, 我不确定,但我认为如果你改变PorterDuff.Mode.CLEARPorterDuff.Mode.DST_OUT 的问题会解决

在此处输入图像描述


推荐阅读