Photoshop кисть в canvas

Ответить
valrti ptrovichh
Сообщения: 3
Зарегистрирован: 03 мар 2016, 15:51

Photoshop кисть в canvas

Сообщение valrti ptrovichh » 03 мар 2016, 16:09

Проблема следующая - нужно реализовать кисть подобно той что в Photoshop. Из event берутся координаты, и в них рисуются bitmap текущей кисти. Все хорошо, но если сделать кисть прозрачной, то появляется наложение на превидущий bitmap.
Изображение
Так и должно быть, но не в тот момент, пока я рисую текущий контур.
То есть от момента начала прикасновения до момента отрыва от экрана, bitmap не должен накладываться на такие-же bitmap который были созданы между этими двумя событиями . Но должен накладываться на все привидение.
Пробывал использовать paint.setXfermode (new AvoidXfermode (paint Color, 255, AvoidXfermode.Mode.AVOID));
Но при этом появляется прозрачная область от кисти + отсутствует наложение на приведущие слои.
Последнее конечно можно решить рисуя на отдельный bitmap и накладывать его на целевой. Но как решить проблему с прозрачным контуром я не знаю.

Изображение

Изображение
Вопрос на stackoverflow : http://stackoverflow.com/questions/3576 ... -on-stroke
Текущий код :

Код: Выделить всё

protected void onDraw(Canvas canvas) 
{
    super.onDraw(canvas);
    //Draw all dots on tempBitmap - canvas
    for (Vector2 pos : mPositions) 
    {
       tempCanvas.drawBitmap(mBitmapBrush, pos.x, pos.y, paintBrushStyle);
    }
    //Draw on view bitmap
    canvas.drawBitmap(canvasBitMap, 0, 0, drawPaint);
    //Clear all points
    mPositions.clear();
    }


public void setColor(String newColor)
{
  invalidate();
  paintColor = Color.parseColor(newColor);
  paintBrushStyle.setColor(Color.BLACK);
  //Make transp.
  paintBrushStyle.setAlpha(100);
  //set bitmapbrush color
  paintBrushStyle.setColorFilter(new PorterDuffColorFilter(paintColor,PorterDuff.Mode.SRC_IN));

//test to avoid blend
 paintBrushStyle.setXfermode(new AvoidXfermode(paintColor,255, AvoidXfermode.Mode.AVOID));

valrti ptrovichh
Сообщения: 3
Зарегистрирован: 03 мар 2016, 15:51

Re: Photoshop кисть в canvas

Сообщение valrti ptrovichh » 04 мар 2016, 00:01

Всем спасибо, проблема была решена)

Ответить