Resize images and animated GIFs without squishing the subject. Drop in a GIF, PNG, or JPEG, pick the new width and height as percentages, and hit Carve.
This is a browser implementation of seam carving, the content-aware resizing algorithm introduced by Shai Avidan and Ariel Shamir in their SIGGRAPH 2007 paper Seam Carving for Content-Aware Image Resizing (ACM). Instead of scaling every pixel uniformly, it repeatedly finds the lowest-energy connected path of pixels (the "seam") and removes it, so busy regions like faces shrink less than flat regions like backgrounds.
Animated GIFs use a shared seam set across all frames so the result stays temporally consistent. Tick Scale back to original size to keep the output at the input's dimensions, which acts like a gentle content-aware zoom toward the subject.
Carving runs in a Web Worker, so the UI stays responsive while large images are processed.
The JavaScript port was directly inspired by Oleksii Trekhleb's write-up Content-Aware Image Resizing in JavaScript and his js-image-carver demo (source). The animated-GIF and live-video extensions are original to this project.