DPaint-js
Webbased image editor, modeled after the legendary Deluxe Paint with a focus on retro Amiga file formats: read and write Amiga icon files and IFF ILBM images/animations
Top Related Projects
Animated sprite editor & pixel art tool (Windows, macOS, Linux)
An online canvas based Pixel Art creation tool for Lospec.com
A simple web-based tool for Spriting and Pixel art.
Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features. Available on Windows, Linux, macOS and the Web!
Quick Overview
DPaint-js is a web-based recreation of the classic Amiga graphics software Deluxe Paint. It aims to provide a nostalgic experience for users familiar with the original software while offering a modern, browser-based implementation. The project brings the iconic pixel art creation tool to the web, allowing users to create and edit graphics directly in their browsers.
Pros
- Faithful recreation of the classic Deluxe Paint interface and functionality
- Runs entirely in the browser, making it accessible on various platforms without installation
- Supports modern web technologies, ensuring compatibility with current browsers
- Open-source project, allowing for community contributions and improvements
Cons
- May lack some advanced features found in modern graphics software
- Limited file format support compared to contemporary image editing tools
- Learning curve for users unfamiliar with the original Deluxe Paint interface
- Potential performance limitations when working with large or complex images in a browser environment
Code Examples
As DPaint-js is primarily a web application and not a code library, there are no specific code examples to showcase. The project is designed to be used through its graphical interface in a web browser.
Getting Started
To use DPaint-js, follow these steps:
- Visit the project's GitHub repository: https://github.com/steffest/DPaint-js
- Clone the repository or download the source code
- Open the
index.htmlfile in a modern web browser - Start creating pixel art using the familiar Deluxe Paint interface
Alternatively, you can try the online demo version available at: https://www.stef.be/dpaint/
Note: As this is a web application, there's no need for installation or complex setup procedures. Simply opening the HTML file in a browser is sufficient to start using DPaint-js.
Competitor Comparisons
Animated sprite editor & pixel art tool (Windows, macOS, Linux)
Pros of Aseprite
- More feature-rich and professional-grade pixel art and animation tool
- Actively maintained with regular updates and a large community
- Cross-platform support (Windows, macOS, Linux)
Cons of Aseprite
- Not free or open-source (paid software)
- Steeper learning curve for beginners
- Requires installation and system resources
Code Comparison
Aseprite (C++):
void Image::putPixel(int x, int y, color_t color)
{
if (x >= 0 && x < width() &&
y >= 0 && y < height())
*(address(x, y)) = color;
}
DPaint-js (JavaScript):
function putPixel(x, y, color) {
if (x >= 0 && x < width && y >= 0 && y < height) {
imageData.data[(y * width + x) * 4] = color.r;
imageData.data[(y * width + x) * 4 + 1] = color.g;
imageData.data[(y * width + x) * 4 + 2] = color.b;
imageData.data[(y * width + x) * 4 + 3] = color.a;
}
}
Both examples show pixel drawing functions, but Aseprite's implementation is more optimized for performance in C++, while DPaint-js uses a web-friendly approach with JavaScript and canvas ImageData.
An online canvas based Pixel Art creation tool for Lospec.com
Pros of pixel-editor
- More focused on pixel art creation with specialized tools
- Simpler, more intuitive interface for beginners
- Active development with recent updates and community contributions
Cons of pixel-editor
- Limited feature set compared to DPaint-js's more comprehensive toolset
- Less flexibility for advanced users who need more complex editing options
- Lacks some of the retro-style UI elements that DPaint-js emulates
Code comparison
pixel-editor:
function drawPixel(x, y, color) {
ctx.fillStyle = color;
ctx.fillRect(x * pixelSize, y * pixelSize, pixelSize, pixelSize);
}
DPaint-js:
function drawPixel(x,y,color){
if (x>=0 && y>=0 && x<width && y<height){
pixels[y*width + x] = color;
}
}
Both implementations draw pixels, but DPaint-js uses a pixel array for direct manipulation, while pixel-editor uses canvas drawing methods. This reflects the different approaches: pixel-editor focuses on simplicity and ease of use, while DPaint-js aims for more low-level control and performance.
pixel-editor is better suited for users looking for a straightforward pixel art creation tool, while DPaint-js offers a more comprehensive set of features for those seeking a full-fledged image editor with a retro feel.
A simple web-based tool for Spriting and Pixel art.
Pros of Piskel
- More active development with frequent updates and contributions
- Dedicated web-based pixel art and animated sprite editor
- Extensive features for animation, including onion skinning and frame management
Cons of Piskel
- Focused solely on pixel art, lacking broader image editing capabilities
- Steeper learning curve for users new to pixel art creation
- Limited export options compared to more versatile image editors
Code Comparison
Piskel (JavaScript):
ns.PiskelController.prototype.setCurrentFrameIndex = function (frameIndex) {
this.currentFrameIndex = frameIndex;
this.layersController.selectLayer(this.currentLayerIndex);
this.refreshLayersCanvas();
};
DPaint-js (JavaScript):
function setActiveColor(index){
activeColor = index;
UI.setActiveColor(index);
Editor.setColor(index);
}
Both projects use JavaScript, but Piskel's codebase is more complex and object-oriented, reflecting its specialized focus on pixel art and animation. DPaint-js has a simpler structure, mirroring its more general-purpose approach to image editing.
Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features. Available on Windows, Linux, macOS and the Web!
Pros of Pixelorama
- More feature-rich with advanced tools like layers, animation frames, and custom brushes
- Active development with regular updates and a larger community
- Cross-platform support (Windows, macOS, Linux)
Cons of Pixelorama
- Steeper learning curve due to more complex interface and features
- Larger file size and resource requirements
Code Comparison
Pixelorama (GDScript):
func _on_Tool_selected(tool: Tool) -> void:
Global.current_project.selected_tool = tool
for t in tools:
t.button.pressed = t.name == tool.name
DPaint-js (JavaScript):
function selectTool(tool){
currentTool = tool;
UI.setTool(tool);
UI.showOptionsForTool(tool);
}
Both projects implement tool selection, but Pixelorama's approach is more object-oriented and integrated with its project structure, while DPaint-js uses a simpler functional approach.
Pixelorama offers a more comprehensive set of features and cross-platform support, making it suitable for more advanced pixel art and animation projects. DPaint-js, being a web-based recreation of Amiga's Deluxe Paint, provides a simpler, nostalgic experience that may be more accessible for beginners or those seeking a classic pixel art tool.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
DPaint.js
Webbased image editor modeled after the legendary Deluxe Paint with a focus on retro Amiga file formats. Next to modern image formats, DPaint.js can read and write Amiga icon files and IFF ILBM images.

Online version available at https://dpaint.app

Main Features
- Fully Featured image editor with a.o.
- Layers
- Selections
- Masking
- Transformation tools
- Effects and filters
- Multiple undo/redo
- Copy/Paste from any other image program or image source
- Customizable dither tools
- Color Cycling
- Frame based animation
- Heavy focus on colour reduction with fine-grained dithering options
- Amiga focus
- Read/write/convert Amiga icon files (all formats)
- Read and write IFF ILBM images (all formats including HAM6, HAM8, SHAM and 24-bit)
- Read and write IFF ANIM files (Amiga animation format)
- Read and write directly from Amiga Disk Files (ADF)
- Embedded Amiga Emulator to preview your work in the real Deluxe Paint.
- Limit the palette to 12 bit for Amiga OCS/ECS mode, or 9 bit for Atari ST mode.
- Deluxe Paint Legacy
- Supports PBM files as used by the PC version of Deluxe Paint (Thanks to Michael Smith)
- Supports Deluxe Paint Atari ST compression modes (Thanks to Nicolas Ramz)
Free and Open
It runs in your browser, works on any system and works fine on touch-screen devices like iPads.
It is written in 100% plain JavaScript and has no dependencies.
It's 100% free, no ads, no tracking, no accounts, no nothing.
All processing is done in your browser, no data is sent to any server.
The only part that is not included in this repository is the Amiga Emulator Files. (The emulator is based on the Scripted Amiga Emulator)
Building
DPaint.js doesn't need building.
It also has zero dependencies so there's no need to install anything.
DPaint.js is written using ES6 modules and runs out of the box in modern browsers.
Just serve "index.html" from a webserver and you're good to go.
There's an optional build step to create a compact version of DPaint.js if you like.
I'm using Vite for this.
For convenience, I've included a "package.json" file.
open a terminal and run npm install to install Vite and its dependencies.
Then run npm run build to create a compact version of DPaint.js in the "dist" folder.
Documentation
Documentation can be found at https://dpaint.app/docs/
Running offline
Dpaint.js is a web application, not an app that you install on your computer.
That being said: DPaint.js has no online dependencies and runs fine offline if you want.
One caveat: you have to serve the index.html file from a webserver, not just open it in your browser.
A quick way to do this is - for example - using the Spark app.
Download the binary for your platform, drop the Spark executable in the folder where you downloaded the Dpaint.js source files and run it.
If you then point your browser to http://localhost:8080/ it should work.
But any webserver will do, you can also use the one built into Python for example. ( python -m http.server )
Or - if you have the node.js runtime installed - you can use packages like:
- serve:
npx servein the DPaint.js folder - http-server:
npx http-serverin the DPaint.js folder
If you are using Chrome, you can also "install" dpaint.js as app.
It will then show up your Chrome apps and work offline.
Contributing
Current version is still alpha.
I'm sure there are bugs and missing features.
Bug reports and pull requests are welcome.
Planned Features
Planned for a future release if there's a need for it.
- Support for non-square pixel modes such as HiRes and Interlaced
- PSD import and export
- SpriteSheet support
- Commodore 64 graphics modes
- Animated Brushes
Browser Quirks
Please note that the Brave browser is using "farbling" that introduces random image noise in certain conditions.
They claim this is to protect your privacy.
Although I totally understand the sentiment, In my opinion a browser should not actively alter the content of a webpage or intentionally break functionality.
But hey, who am I to speak, it's a free world.
Just be aware that if you are using Brave, you will run into issues, so please "lower your shields" for this app in Brave or use another browser.
Color Cycling
Dpaint.js supports Color-Cycling - a long lost art of "animating" a static image by only rotating some colors in the palette. See an example here:
https://github.com/user-attachments/assets/427bbecc-d38f-4120-ba0d-83c7f1249722
Open the layered source file of the above image directly in Dpaint.js
Top Related Projects
Animated sprite editor & pixel art tool (Windows, macOS, Linux)
An online canvas based Pixel Art creation tool for Lospec.com
A simple web-based tool for Spriting and Pixel art.
Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features. Available on Windows, Linux, macOS and the Web!
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot