Web-based image editor modeled after Deluxe Paint

(github.com)

250 points | by bananaboy 13 days ago

17 comments

  • badsectoracula 12 days 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 12 days 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 12 days 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 12 days 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 12 days 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 12 days 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 11 days 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 11 days 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 11 days ago
            > I wish that there was some native alternative to the Web-based everything.

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

            • Shorel 11 days ago
              Thank you for the heads-up. It seems good enough to at least make some proof of concept project and learn it.
          • augusteo 12 days 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 12 days ago
              Yeah, I'm sick of endless JavaScript libraries that assume that everyone and everything has Node installed.
          • socalgal2 12 days 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 12 days 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.
            • kosolam 12 days 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.
              • mamonoleechi 12 days ago
                Somewhat related: Grafx 2 Deluxepaint clone for DOS/Windows http://grafx2.chez.com/
                • newsoftheday 12 days 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 12 days 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 12 days 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 12 days 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 12 days 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

                        • tonixx 8 days ago
                          [dead]
                          • baudaux 12 days ago
                            Is it simple to adapt file open/save in order to embed it in https://exaequos.com ?