Upload Image
+Drag and drop an image here or click to browseJPG, PNG, WebP, GIF, BMP supported. Max 20 MB.
Upload an image above to start applying pixel-level filters.No image

How pixel manipulation works

The Canvas API's getImageData method returns a flat Uint8ClampedArray where each pixel occupies four consecutive bytes: R, G, B, and Alpha
Grayscale is computed using the BT.601 luminance formula: 0.299R + 0.587G + 0.114B, which matches how the human eye perceives brightness
Sepia applies a 3x3 color matrix transformation where each output channel is a weighted sum of all three input channels
The intensity slider blends the filtered result over the original at the chosen percentage using Canvas compositing
Images larger than 2000px are automatically scaled down before processing to keep the browser responsive
Download as PNG for lossless quality or as JPG at 92% quality for a smaller file size suitable for web use
The color histogram shows the distribution of pixel values across red, green, and blue channels in the filtered output
Use side-by-side compare mode to evaluate the filter effect against the original without switching back and forth
The film strip at the top renders live previews of every filter so you can compare all effects before selecting
No image data is ever uploaded to a server. All processing runs on your device using the browser Canvas API