android - 如何反转蒙版?
问题描述
我正在尝试使用以下代码反转图像蒙版位图
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 上绘图。
我在这里做错了什么???
解决方案
我认为你应该在 medium 上阅读这篇漂亮的文章,
我不确定,但我认为如果你改变PorterDuff.Mode.CLEAR
你PorterDuff.Mode.DST_OUT
的问题会解决
推荐阅读
- html - 如何使用 CSS 淡化半图像
- python - 是否有任何函数可以替换python字符串中的变量?
- vb.net - VB.Net,无法在控件调用函数中捕获异常
- odata - OData $Expand 与 1-many 关系给出参数不匹配异常
- testing - 可以向我的站点发送大量并发请求进行测试的付费服务?
- python - 如何强制 python 类具有 CLASS 属性?(不是实例属性!!!)
- android - 如何在android的测试文件中获取在build.gradle中定义的变量?
- angular9 - 运行从 stackblitz 下载的项目
- linux - 如何使用一个 HTTP 1.1 请求下载多个文件
- javascript - 在 ajax 表单中抓取元素