Pixel art creation/pixel art GIF animation editor | ZeroTools

You can create pixel art on a 16x16 or 32x32 grid, set layers and animation frames, and save it as a transparent PNG or GIF animation. It is a convenient web tool that operates completely locally and safely without sending data to an external server.

Loading tool interface...

Client-Side Secure Execution

This tool executes entirely in your browser sandbox. None of your input strings, files, or configurations are uploaded to any external server.

ZeroTools: Browser Processing & Privacy

ZeroTools focuses on tools that process input on your device. Check each tool’s scope and limitations before use.

Processing and privacy policy
Chapter 1

Grid drawing and pixel pen processing engine with HTML5 Canvas

The core system for pixel art production is built using mapping technology between logical and physical coordinate systems using HTML5's Canvas API.

During the initialization process, the canvas resolution is set to exact pixel dimensions such as 16x16, 32x32, 64x64, or 128x128, and each pixel is managed as a one-dimensional or two-dimensional array in internal memory.

When a mouse down or touch start input event from a pointing device is detected, the browser's client coordinate system is immediately converted to the canvas's logical coordinate system.

This conversion formula is calculated by dividing the offset value by the current zoom factor, and truncating to the nearest whole number to determine exact integer coordinates.

When applying the Pixel Pen tool to a specified coordinate, you can either call the canvas context's fillRect method or manipulate the ImageData object directly to update the pixel value at a specific index.

To maintain performance, during drag operations with continuous pixel updates, Bresenham's line drawing algorithm is used to interpolate between the previous and current coordinates, ensuring continuous pixel lines are drawn without gaps.

Regarding the drawing of grid lines, the lines are drawn at a position offset by 0.5 pixel from each cell boundary of the pixel grid to prevent lines from blurring due to anti-aliasing and to maintain clear boundaries.

Chapter 2

Recursive Bucket Filling Algorithm and Color Replacement Mechanism

The bucket filling tool is implemented using a flood fill algorithm that applies a connected component labeling method. After acquiring the color data of the starting pixel, it searches for adjacent pixels in four or eight directions, and performs a process of replacing pixels with the same initial color with the target color using a breadth-first search using a queue.

To avoid call stack overflow due to recursive calls, an iterative search loop structure using arrays is built internally. In addition, the calculation speed of the filling process is maximized by directly performing memory operations in 4-byte units of the red, green, blue, and alpha values ​​of the Uint8ClampedArray array obtained with Canvas's getImageData.

On the other hand, the color replacement dot drawing engine has the ability to scan the image data of the entire canvas and rewrite all pixels that match the replacement source color code specified by the user to the replacement color in a single operation.

Here, too, in order to perform an exact match comparison without setting color space tolerances, we convert the color code to a 32-bit integer and introduce high-speed comparison processing using bit operations, providing a mechanism that allows you to instantly change the color scheme even for complex pixel art.

Chapter 3

Index color 256 color limited palette and animation frame generation control

Palette management, which limits the number of colors, plays an extremely important role in pixel art that pursues a retro expression.

A palette array is provided in the editor that can register up to 256 colors, and the color codes that can be selected when drawing depend on this array.

By simulating an indexed color method in which the color of each pixel is recorded in the internal state as an index number within the palette, rather than as a direct RGB value, dynamic color mapping is realized in which the corresponding colors on the canvas are updated all at once the moment the palette color is changed.

Furthermore, the animation frame creation function allocates independent canvas elements or data arrays to each frame and manages them in a list structure.

Preview the animation by setting the display delay time and playback order for each frame and sequentially drawing them on the main canvas using a timer-driven loop process.

The final output stage runs an algorithm that encodes these frames into binary data in GIF or APNG format. The GIF encoder performs LZW compression and color palette optimization, while the APNG encoder performs an optimization process that extracts only the difference region of each frame to reduce file size.

Chapter 4

Virtual Canvas Zoom Control and Nearest Neighbor Interpolation Scaling

A dynamic zoom display function that supports precise pixel art editing work from 100% up to 3200%. To completely eliminate image degradation and blurring due to scaling, an algorithm called nearest neighbor interpolation is applied to drawing and export layers.

For the browser's drawing context, by explicitly setting the imageSmoothingEnabled property to false and also specifying the image-rendering property to pixelated in the CSS style attributes, pixels will be enlarged on the screen while keeping their edges sharp.

When the zoom magnification changes, the scroll position of the container element containing the canvas is recalculated, and the affine transformation matrix is ​​adjusted so that the coordinates of the mouse pointer, which is the starting point of the enlargement, continue to remain at the same position on the screen.

A similar algorithm is applied during export scaling, running a dedicated offscreen canvas processing pipeline that scales the original 16x16 or other resolution by any integer multiple from 1x to 16x, producing a high-resolution PNG or GIF image that fully preserves the structure of the pixel grid.

Chapter 5

Complete local retention and state management of pixel drawing data within the browser

We use an architecture in which the pixel art data being edited is completely stored within the user's browser area, without going through a server.

The array data for each pixel, set palette information, and layer configuration for multiple frames are all serialized into JSON format and saved in real time to a client-side storage mechanism such as Web Storage API or IndexedDB.

In particular, the history management system that allows for undo and redo operations introduces a memory-efficient state management technique that records only the coordinate and color difference data of changed pixels in a stacked array, rather than saving the complete state of the entire canvas.

Even if you accidentally close a browser tab or experience an unexpected crash, there is a built-in robust session recovery process that asynchronously loads serialized data from storage, deserializes it, and unpacks it in memory the next time you access it, restoring exactly the state of the pixel grid just before it was interrupted.

Chapter 6

Icon pixel art practical guide from retro game material production to NFT generation

Practical workflows using the pixel art editor range from creating character graphics for retro games, item icons, and even parts for generative NFTs.

When outputting multiple animation patterns as a sprite sheet into a single image, a sprite packing algorithm is used that accurately calculates the boundary coordinates of each frame and arranges them at regular grid intervals.

When creating parts for NFT projects, there is an established procedure for creating each part such as the eyes, mouth, and accessories for the base character as separate layers or files within the same canvas size, and then outputting them as transparent PNGs with an alpha channel.

In the practice of icon pixel art, advanced pixel placement techniques that make full use of the pixel pen and eyedropper functions within the tool are required, such as outline techniques that place dark colors on the borders and dithering expressions that scatter pixels of different brightness within a single color, in order to improve visibility within the limited number of pixels.

To support these tasks, the editor is operated efficiently by combining functions such as a grid line switching display function and a mask function that protects the drawing of only specific colors.

Frequently Asked Questions (FAQ)

A.
None at all. All processing executes strictly within the user's browser sandbox, ensuring confidential data and files are never stored or transmitted.
A.
Yes, no registration or account login is required. You have unlimited, 100% free access to all tool features.
A.
Yes, the interface is fully responsive, offering a seamless user experience on smartphones, tablets, and desktops without installing apps.