Flip, rotate, crop and adjust images instantly — all processed locally with Canvas API, zero uploads.
The HTML5 Canvas API applies transforms via a 2D matrix: translate(cx,cy) moves the origin to the center, rotate(angle) spins the coordinate system, and scale(-1,1) or scale(1,-1) mirrors the axes. The image is then drawn at the offset origin and the result is a pixel-perfect transform without any server roundtrip.
Brightness, contrast, saturation, hue-rotate, and blur are applied using the ctx.filter property — the same CSS filter syntax used on DOM elements, but baked permanently into canvas pixels on draw. This produces lossless filter application when exporting to PNG, and near-lossless for JPEG at high quality.
Canvas toDataURL() / toBlob() supports JPEG (lossy, smaller files), PNG (lossless, supports transparency) and WebP (modern, best compression). PNG preserves alpha channel from the original image; JPEG fills transparency with the chosen background color; WebP supports both modes depending on content.