English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   News (https://eab.abime.net/forumdisplay.php?f=29)
-   -   New Web-based Amiga Icon Editor: DPaint.js (https://eab.abime.net/showthread.php?t=114214)

Steffest 11 April 2023 10:19

New Web-based Amiga Icon Editor: DPaint.js
 
https://www.stef.be/dpaint/_img/dpaint-add-small.png

Hey!
I'm introducing a new project: DPaint.js

DPaint.js is a web-based image editor with a focus on Amiga File Formats.
It can read/write all types of Amiga icons and read/write IFF images.

I mainly created it because I wanted a modern tool to create Amiga icons,
with a focus on color reduction and dithering to quickly transform modern images to old-school icons, and to directly edit files on ADF disks without spinning up an emulator.

It turned into a pretty nice pixel tool, with layers, masks, selections, effects, blend modes, ...

Available at https://www.stef.be/dpaint/
No download, it runs in your browser, free and open source.

There's a small demo video on the Amiga specific features on https://www.youtube.com/watch?v=Dj_tbgL3ubM

It's currently still in alpha-stage: bugs and missing features will be there.
Bug reports and feature requests are welcome.

gimbal 11 April 2023 11:35

Very nice UI! Maybe change the cursor when hovering over the paint canvas, drawing with the regular pointer is a bit weird :)

FYI: Chromium-based browsers support the Javascript Filesystem API which allows direct opening and saving to a file rather than having to use a file import/export solution. Can make things a lot easier.

no9 11 April 2023 12:36

Wow, that's great! I really admire all that color reduction and dithering options galore!

pixie 11 April 2023 13:07

Top notch!

khph_re 11 April 2023 13:14

Looks fantastic, built in palette options are great as well.

Krashan 11 April 2023 13:49

Cool project. Congratulations.

Steffest 11 April 2023 14:21

Quote:

Originally Posted by gimbal (Post 1608402)
Maybe change the cursor when hovering over the paint canvas, drawing with the regular pointer is a bit weird :)

Good Point! I've added it to the TODO.

Quote:

Originally Posted by gimbal (Post 1608402)
FYI: Chromium-based browsers support the Javascript Filesystem API which allows direct opening and saving to a file rather than having to use a file import/export solution. Can make things a lot easier.

Yeah, it already uses that, except for the "directly save to the file you opened" part. For some reason that feels like a bridge too far. I kind of like it that you have to specifically overwrite a file when saving, but maybe that's just me being paranoid.

Thanks for the feedback!

mfilos 11 April 2023 14:39

Really awesome project man thanks a lot!
Will definitely give it a go as I'm struggling with 3 different icon editors in Amiga and GIMP, Paint etc on Windows :P

gimbal 11 April 2023 15:38

Quote:

Originally Posted by Steffest (Post 1608467)
Good Point! I've added it to the TODO.



Yeah, it already uses that, except for the "directly save to the file you opened" part. For some reason that feels like a bridge too far. I kind of like it that you have to specifically overwrite a file when saving, but maybe that's just me being paranoid.

I can understand that. The browser will ask for permission before the first save to a file is allowed too, it does make for a bit of annoying UX. For my own privately used level editor toolset I just immediately save the file again after loading it to get that annoying nag dialog out of the way for the remainder of the session :)

Doing things in-browser has its many challenges.

PerspexSphinx 11 April 2023 16:15

Wow…
This is really neat!
But, I have to ask…
…for those of us paranoid of absolutely everything having to have an internet connection… and since it’s written in JavaScript (I guess)…
Couldn’t you make a Desktop version which would just need the requirement that java was installed?
Quibbles aside , this is really Great work!

gimbal 11 April 2023 16:49

Not that Javascript has anything to do with Java, but I find it quite strange that you are not paranoid about Java given its rather tumultuous history.

There are ways to package webapps as a local application. Electron or any better alternative.

Steffest 11 April 2023 16:50

Quote:

Originally Posted by PerspexSphinx (Post 1608499)
Couldn’t you make a Desktop version?

I get your point. I'm a web-guy myself that likes his tools to be "just there" on whatever device I'm using, but in fact a downloadable/installable version is BY FAR the most requested feature :-)

You could grab the source (https://github.com/steffest/dpaint-js) and run it locally. (it does need a "local web server", though… If you want to dive into that pool, this is e.g a good article to get you started.)

Everything is handled in your browser, there is no server, so that would work nicely offline.

Another way would be that I package it in something like Electron, but that would result in a 50MB exe, just to run a 500kb web app ...
Seems excessive to me?

Who knows, maybe when Dpaint.js reaches a stable point, I might package it into a downloadable executable, but that won't be any time soon.

Pyromania 11 April 2023 16:52

Looks cool, thanks for the hard work.

Krashan 11 April 2023 17:10

Quote:

Originally Posted by PerspexSphinx (Post 1608499)
…for those of us paranoid of absolutely everything having to have an internet connection… and since it’s written in JavaScript (I guess)…

This is only a matter of adding a caching worker in the code. Here is a nice explanation how to do it: https://www.freecodecamp.org/news/bu...che-the-assets
Then once installed, the app will work offline until one completely removes browser history including application data in persistent cache. Assuming the app does not use any resuorces/assets downloaded from some remote website. IMHO it is much better than Electron for example, in case of which you are forced to run (and keep on disk) a fully duplicated instance of a browser.

gimbal 11 April 2023 17:35

Quote:

Originally Posted by Krashan (Post 1608510)
This is only a matter of adding a caching worker in the code. Here is a nice explanation how to do it: https://www.freecodecamp.org/news/bu...che-the-assets
Then once installed, the app will work offline until one completely removes browser history including application data in persistent cache. Assuming the app does not use any resuorces/assets downloaded from some remote website. IMHO it is much better than Electron for example, in case of which you are forced to run (and keep on disk) a fully duplicated instance of a browser.

Yeah but that was the point, to not load it from the net but rather run it on the localhost which is far more restrictive. For the non-paranoid this is a complete non-issue. And besides that I'm pretty sure paint.js is a single page application, such manual caching logic will be pretty superfluous. The browser already handles it out of the box.

bni 11 April 2023 19:00

Great project. Will it be possible to set x, y coordinates on the exported icon? To control where it is displayed in a drawer by default.

no9 11 April 2023 19:17

Quote:

Originally Posted by Steffest (Post 1608503)
Another way would be that I package it in something like Electron, but that would result in a 50MB exe, just to run a 500kb web app ...
Seems excessive to me?


I don't mind that excess, don't worry. If it works well then you can triple that. I can't get used to GrafX2. It seems like unfinished. Dpaint.js in its state right now looks far more solid.

Krashan 11 April 2023 23:49

Quote:

Originally Posted by gimbal (Post 1608520)
Yeah but that was the point, to not load it from the net but rather run it on the localhost which is far more restrictive.

Once it is cached, it runs from localhost. App cache is persistent, so it is just a local application.

gimbal 12 April 2023 09:36

Quote:

Originally Posted by Krashan (Post 1608626)
Once it is cached, it runs from localhost. App cache is persistent, so it is just a local application.

Again, not the point. It doesn't the first time.

Krashan 12 April 2023 10:22

Quote:

Originally Posted by gimbal (Post 1608693)
Again, not the point. It doesn't the first time.

Let's assume a "classic" native application. What do you need to do before installation? Yes, you have to download it from the Internet...


All times are GMT +2. The time now is 04:41.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04847 seconds with 11 queries