Comparison
How zriz compares with the most downloaded image croppers that work in a React app, and what each one does better.
We make zriz, so read these pages with that in mind. Each page names the versions it compares. If something is wrong, open an issue and we will fix it.
To move a project to zriz, paste this into Claude Code, Cursor or another coding agent:
Migrate this project's image cropper to zriz. Read https://zriz.dev/migrate.md and follow it. Keep the crop behaviour the same where zriz can, and list for me anything zriz has no equivalent for before you remove it.
Where zriz stands
zriz is new. Its first release was in November 2026, it has one maintainer and under a thousand downloads a week. Every library below is older and has far more.
It is also larger than each of them on its own. Uppy Image Editor with its uploader and Dashboard is about 89 kB, and about 35 kB through its useImageEditor hook. zriz adds 26 to 34 kB of Brotli, by the parts you import, see bundle size. The basic examples of react-easy-crop, react-avatar-editor and react-image-crop add about 7, 5 and 5 kB.
What zriz has for that size is on each page: a straighten dial, a crop that stays inside the photo at an angle, and a saved value that restores exactly. Some of the others also have handles with a moving photo or export to a file, and each page says which.
Libraries
- react-easy-crop5.5M+A styled React component. The photo moves under a fixed frame.
- react-image-crop4.3M+A crop box you drag over a still image, with no zoom or rotation.
- Cropper.js2.5M+Plain JavaScript. Version 2 is web components, version 1 is a class.
- Ark UI Image Cropper1.4M+Unstyled parts on a Zag.js state machine, for React, Solid, Vue and Svelte.
- react-avatar-editor980k+A canvas component with a fixed frame, made for avatars.
- react-cropper640k+A React wrapper around Cropper.js 1.
- Uppy Image Editor270k+A plugin of the Uppy uploader, built on Cropper.js 1.
- react-advanced-cropper250k+A box that moves over a photo that also moves, with custom stencils.
- Croppie120k+Plain JavaScript with a fixed frame and a zoom slider. Its last release was in 2020.
- antd-img-crop100k+A crop dialog for the Upload of Ant Design, built on react-easy-crop.
The numbers are npm downloads a week, rounded down. The Ark UI number is for @zag-js/image-cropper, which every install of Ark UI brings with it, and Chakra UI 3 depends on Ark UI. So it counts those installs, not the projects that use the cropper.
Pick by need
- The smallest bundlereact-image-crop or react-avatar-editor. Each adds about 5 kB, against 26 to 34 kB for zriz.
- A box over a still image and nothing morereact-image-crop. It has no dependencies, and keys on the box and each of its eight handles.
- Vue, Solid or SvelteArk UI Image Cropper. It has official components for each. Cropper.js and Croppie are plain JavaScript, and Uppy has Vue and Svelte components. zriz has React parts and a plain TypeScript core.
- React 16 or 17react-easy-crop from 16.4, react-image-crop from 16.13.1, react-advanced-cropper from 16.8 and react-cropper from 17.0.2. Cropper.js and Croppie need no React. zriz starts at 18.2.
- Videoreact-easy-crop. It crops video. zriz can read one still frame through
loadImage. - A crop step inside Ant Design or Uppyantd-img-crop or Uppy Image Editor. Each fits its kit with a few lines.
- Years of use in productionreact-avatar-editor, react-image-crop, Cropper.js or react-easy-crop. Their first releases were in 2014, 2015, 2015 and 2018.
- A straighten controlzriz, Uppy Image Editor or antd-img-crop. zriz has a dial part with 45° each way, and the crop shrinks to stay inside the photo. Uppy has a slider with the same range that zooms the photo. antd-img-crop has an optional slider with 180° each way, and its frame can take in empty corners.
- A file, not only coordinateszriz, Ark UI Image Cropper or Croppie. Each returns a blob in a format you pick. Uppy Image Editor and antd-img-crop return a file too, and react-image-crop returns a PNG as an object URL. zriz also has
toSharp, which plans the same cut on a server. - Handles and a moving photo togetherzriz, react-advanced-cropper, Cropper.js, react-cropper, Uppy Image Editor or Ark UI Image Cropper. Each resizes the box and pans or zooms the photo under it.
How we checked
We took the most downloaded npm packages that put a crop UI in a React app in the browser, have open source code and are not marked deprecated. For each one we installed the published package at the version its page names and read its source and docs. Then we ran every library and zriz in headless Chromium with the same photo and the same script, which records tab order, keys, ARIA attributes, mouse, wheel, touch and a 15° turn.
In the feature tables, No means we searched the code and the feature is not there.
We left out vue-advanced-cropper and ngx-image-cropper, which have no React component, and Pintura, which is paid and closed source, so we could not read its code. @wordpress/image-cropper would be seventh by downloads, but its maintainers deprecated it in their repository in November 2026. The npm release does not say so yet. Filerobot Image Editor is a full image editor with filters and annotations. We also left out, without a full check, React Native pickers, and uploaders, file managers and text editors that carry a crop step, such as Filestack, Uploadcare, Flmngr and Jodit.