Web-based image editor modeled after Deluxe Paint

(github.com)

244 points | by bananaboy 2 days ago ago

31 comments

  • badsectoracula 2 days ago 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

    • Steffest 2 days ago ago

      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/

      • badsectoracula 2 days ago ago

        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).

  • roskelld 2 days ago ago

    Steffest was just showing off his entry for the color cycling competition at GERP 2026 which uses a few of his tools to produce including DPaint.

    https://www.youtube.com/watch?v=VyB5cvA6f78

    EDIT: I see he posted a link at the bottom of the Readme.md I guess I should have scrolled to the bottom first.

  • VimEscapeArtist 2 days ago ago

    I've been following this app for a while. Worth noting that the author is also a very talented graphic artist and demoscener. Works created with this tool frequently appear in various demoscene compos.

  • Shorel a day ago ago

    At this point I wish that there was some native alternative to the Web-based everything.

    wxWidgets is oldschool, QT has license issues, GTK looks so-so except on Linux, TCL/TK looks ugly everywhere.

    In the modern world we need some GPU accelerated GUI library. Something like the one used in SublimeText. But with BSD or MIT license of course.

    That would be much more interesting for me.

    • VZ a day ago ago

      > wxWidgets is oldschool

      It's a bit sad that a GUI library absolutely needs to be new and shining to be even considered nowadays, it looks like the whole programming world got infected by JS ecosystem anything-that-is-more-than-3-months-old-is-obsolete mindset.

      The old that is strong does not wither.

      • Shorel 9 hours ago ago

        In principle, I totally agree with you.

        As someone who has used it and preferred WX over QT for Windows based programs, the issue is not in the look and feel of the final product itself.

        It's the heavy use of C style macros instead of C++ templates, mostly.

        The WX C++ code looks like Microsoft Foundation Classes. I am fine with it, but for a long term project, this could discourage new people joining the project.

    • ogoffart a day ago ago

      > I wish that there was some native alternative to the Web-based everything.

      I suggest Slint (https://slint.dev)

      • Shorel 7 hours ago ago

        Thank you for the heads-up. It seems good enough to at least make some proof of concept project and learn it.

  • augusteo 2 days ago ago

    The vanilla JS with zero dependencies is refreshing. Looking through the code, it's surprisingly readable for something handling Amiga file formats and color cycling.

    The demoscene connection makes sense. That community has always valued doing more with less.

    • VerifiedReports 2 days ago ago

      Yeah, I'm sick of endless JavaScript libraries that assume that everyone and everything has Node installed.

  • socalgal2 2 days ago ago

    How is this like DeluxePaint? For me DeluxePaint's defining feature is how brushes work. You press B, you select some pixels, those pixels immediately become your brush that you draw with

    https://classicreload.com/play/dosx-deluxe-paint-animation.h...

    This clone doesn't do that, therefore it's not remotely like Deluxe Paint and it's disingenously to claim it's modeled on it.

  • Aldipower 2 days ago ago

    Nice! The code looks pretty neat! And also somehow clean. I like those projects, without all those boring constraints you have in "enterprise" or even worse start-up code.

  • mamonoleechi a day ago ago

    Somewhat related: Grafx 2 Deluxepaint clone for DOS/Windows http://grafx2.chez.com/

  • kosolam 2 days ago ago

    Nice. Vanilla js with a pretty clean code. From a quick look there is some components architecture and they are decoupled via an events bus. I used to implement evented architectures in winform apps in the past. On the one hand it may seem insane but in practice it was a really good choice.

  • newsoftheday 2 days ago ago

    I appreciate the nostalgia of it but DPII was a light themed tool, this one is dark themed, difficult for me to read.

    I run DPII in DoxBox on Linux like this:

    dosbox DP.EXE

    Something I don't see in your app is the Perspective tool.

  • pjmlp a day ago ago

    While this is a great piece of work, lets take a second to consider how much resources the Amiga 500 had, and how much is needed to run this clone.

  • Grom_PE 2 days ago ago

    Deluxe Paint 2 for DOS was my favorite drawing program, so had to check this out, pretty nice!

    The only thing that stops me from recommending it is non-integer zoom levels, which is especially bad for pixel art.

    Moving layers around was also confusing, had to click Layer → Transform → Free Transform to be able to move things around. It would be much more obvious if there was a move icon in the tool panel that does just that.

  • heliumtera 2 days ago ago

    Source code is very readable and very comfortable to use application.

    This is surprising given it's a web application in modern age, did not expect that.

  • dizzy9 2 days ago ago

    Another Deluxe Paint clone is PyDPainter. It's Python-based and available for Windows, Mac, and Linux. The UI is very much reminiscent of the original.

    https://github.com/mriale/PyDPainter

  • 2 days ago ago
    [deleted]
  • baudaux 2 days ago ago

    Is it simple to adapt file open/save in order to embed it in https://exaequos.com ?