Comment by badsectoracula

7 hours ago

This is neat, some years ago i also thought of making a simple DPaint clone (though much simpler than what this project seems to do) and started by... painting the tool icons, then losing interest :-P. I did end up reusing them for a pixelart editing component for Lazarus though[0] (and put the icons in my "Bad-Common-Icons" icon set[1] that i use for my GUI programs). But i do want to, at some point, tackle making something like Paint Shop Pro 7 (for desktop, not web) because i think it has the best UX of all image editing programs (including later versions of PSP which i never liked).

That said, i played with this a bit and found some bug with the smudge tool blending[2]. It also seems browser-related as it has different behavior in Firefox and Falkon (which uses QtWebEngine / Chromium). Also the way opacity works with the smudge tool feels weird/wrong as even at 1% it seems to affect the image a lot even though it should barely make a difference.

[0] https://i.imgur.com/kht16dJ.png

[1] http://runtimeterror.com/tools/icons/

[2] https://github.com/steffest/DPaint-js/issues/50

Indeed! Blending colors is surprisingly hard. I've pushed an update that addresses most of your concerns. Not perfect yet, but an improvement. Dev version with these changes on https://www.stef.be/dpaint/dev/

  • I tried the dev version on Firefox and didn't seem to fix the issue though it was "reversed" in that things became brighter now. On Falkon it worked better though there was still some weird coloration for pixels that shouldn't have been altered - see the images i attached in the bug report.

    Also in both cases the brush area remained intact (it was just 'moving around') instead of being smudged, it is more obvious in the Firefox shot because i only did a simple circular motion but can also be seen in the Falkon shot in that there is a floating corner at the top right corner of the orange box that was 'dragged' from the left side (i was doing a horizontal motion to show that the pixels above the brush were affected even though there wasn't any vertical motion to push the orange colors up to the blue area).