【问题标题】:How to invert mask?如何反转蒙版?
【发布时间】:2020-01-17 04:28:52
【问题描述】:

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

    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 上绘图。

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

【问题讨论】:

    标签: android canvas bitmap android-custom-view paint


    【解决方案1】:

    我认为你应该阅读这个beautiful article at medium 我不确定,但我想如果你将PorterDuff.Mode.CLEAR 更改为PorterDuff.Mode.DST_OUT 你的问题会解决的

    【讨论】:

      猜你喜欢
      • 2011-03-16
      • 2017-07-03
      • 2018-11-26
      • 1970-01-01
      • 2013-01-02
      • 2011-06-02
      • 1970-01-01
      • 2022-11-15
      相关资源
      最近更新 更多