Search code examples
iphonedrawingcore-graphicspaintquartz-2d

In CoreGraphics drawing how can I keep the point of overlap from being darker than the rest of the line?


My app uses core graphics for custom finger paint drawing. I allow the user to change the alpha of the line and a new line is continuously drawn on touches moved. When I make the alpha lower than 1.0 the point of overlap is darker than the rest of the line. I know why this occurs but how can I stop this?


Solution

  • I suppose you want a single stroke not to darken itself, but still to darken previous strokes (that's how most painting apps work).

    For this to work, you need two views/buffers, one for the 'current background' and one for the current stroke. Merge the latter with the background when the finger is released.

    You always draw with alpha 1 in the current stroke buffer, but you display and merge it with a lower alpha.