gpt4 book ai didi

android - 使用 Android Paint 进行背景图像颜色检测

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:01 24 4
gpt4 key购买 nike

当我开始绘画时,它会为整个背景着色,我的意思是它应该只绘制白点。应用截图如下。使用 Android Paint,我只想在 background-drawable[Panda] 上绘制白色 Blob 并跳过任何其他颜色。

onDraw() 函数是:

protected void onDraw(Canvas canvas) {

canvas.drawPath(path, paint);
canvas.drawPath(circlePath, circlePaint);

for (Pair<Path,Integer> path_clr : path_color_list ){
paint.setColor(path_clr.second);
canvas.drawPath( path_clr.first, paint);
}

for (Pair<Path,Integer> path_clr : circular_path_color_list ){
circlePaint.setColor(path_clr.second);
canvas.drawPath( path_clr.first, paint);
}
}

onTouchEvent函数是:

public boolean onTouchEvent(MotionEvent event) {

float pointX = event.getX();
float pointY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
circlePath.reset();
path.moveTo(pointX, pointY);

return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(pointX, pointY);
circlePath.reset();
circlePath.addCircle(pointX, pointY, 10, Path.Direction.CW);

break;

case MotionEvent.ACTION_UP:
circlePath.reset();

break;
default:
return false;
}

postInvalidate();
return true;
}

Color Activity

最佳答案

您所描述的东西称为掩蔽。您需要一个 mask (白色区域)和一个 mask 图像(您的笔划)。绘图时,您必须使用蒙版将笔画切割成蒙版的形状。它可以使用 PorterDuff 模式来完成。查看伪代码:

Bitmap panda;
Bitmap whiteAreas;
Bitmap strokes;
Canvas strokesCanvas;
Paint paint;

private void init() {
strokesCanvas = new Canvas(strokes);
paint = new Paint();
}

private void addStroke(Path stroke){
paint.setXfermode(null);
strokesCanvas.drawPath(stroke,paint);
invalidate();
}

@Override
public void draw(Canvas canvas) {
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
strokesCanvas.drawBitmap(whiteAreas,0,0,paint);
paint.setXfermode(null);
canvas.drawBitmap(panda,0,0,paint);
canvas.drawBitmap(strokes,0,0,paint);
}

查看链接了解更多信息:http://ssp.impulsetrain.com/porterduff.html


编辑:这是它如何工作的图像。蓝色区域应该是透明的。掩码和笔划之间的乘法就是所谓的掩码。

enter image description here

关于android - 使用 Android Paint 进行背景图像颜色检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com