Choosing an Angular image editor: cropper, suite or canvas
The short answer
ngx-image-cropper — MIT, 546 kB, Angular ≥ 17.3, and the decision is over. If you need a full editing UI, the free options largely disappear: Syncfusion and Pintura are commercial, and the MIT tui-image-editor has not shipped a release since May 2022 and has no Angular wrapper. For a layered, Photoshop-style editor that runs entirely in the browser with a free tier, @ebdev/ngx-image-editor covers Angular 18–22. Decide first which of the three products you actually need — a cropper, a suite component, or a canvas editor — because they are not interchangeable.
npm view or from the published tarballs, quoted with the command that produced it.
Three products behind one query
A cropper takes one image and returns a cropped (possibly rotated, flipped, scaled) copy. Profile pictures, product photos, avatar upload flows. ngx-image-cropperis this, and only this.A suite component is an editing toolbar (crop, annotate, filter, export) sold as part of a larger commercial UI library. Syncfusion’s image editor and Pintura are this. You get a polished single-image workflow and a licence to manage. A canvas editor composes multiple layers — images, text, shapes — on one canvas, with transforms, filters and export. What Photoshop-lite means in a browser. @ebdev/ngx-image-editoris this.
What was measured, and how
$ npm view ngx-image-cropper version peerDependencies dist.unpackedSize
version = '9.1.6'
peerDependencies = { '@angular/common': '>=17.3.0', '@angular/core': '>=17.3.0' }
dist.unpackedSize = 545682
$ npm view @syncfusion/ej2-angular-image-editor version peerDependencies dependencies
version = '34.2.5'
dependencies = {
'@syncfusion/ej2-base': '~34.2.5',
'@syncfusion/ej2-angular-base': '~34.2.4',
'@syncfusion/ej2-image-editor': '34.2.5' // 23.3 MB unpacked
}
// no peerDependencies field — the wrapper declares no Angular range at all
$ npm view @pqina/angular-pintura version peerDependencies
version = '9.0.4'
peerDependencies = { '@angular/common': '>=12.0.0', '@angular/core': '>=12.0.0', '@pqina/pintura': '8.x' }
$ npm view tui-image-editor version time.modified
version = '3.15.3'
time.modified = '2022-05-22T09:48:15.164Z'
$ npm view @ebdev/ngx-image-editor version peerDependencies
version = '0.2.2'
peerDependencies = {
'@angular/core': '^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0', ...,
'pdfjs-dist': '^4.0.0 || ^5.0.0' // optional, premium PDF import only
}| Package | Product | Licence | Angular peers | Unpacked size |
|---|---|---|---|---|
@ebdev/ngx-image-editor 0.2.2 | ||||
ngx-image-cropper 9.1.6 | ||||
@syncfusion/ej2-angular-image-editor 34.2.5 | ||||
@pqina/angular-pintura 9.0.4 | ||||
tui-image-editor 3.15.3 |
The licence terms, from the packages themselves
This is a commercial product and requires a paid license for possession
or use. [...] A free community license is also available for companies
and individuals whose organizations have less than $1 million USD in
annual gross revenue and five or fewer developers.# Pintura Test Version
This package is for testing Pintura in your project. This version of
Pintura will overlay a watermark on top of the editor and output image.
You can purchase a license on the Pintura product page.ngx-image-cropper is plain MIT with a single tslib dependency — the cleanest licence position on this page. @ebdev/ngx-image-editor is source-available commercial: the free tier needs no key and no account, and premium features unlock with a paid key that is verified offline — no licence server, no telemetry, so nothing stops working if our infrastructure does.
The options, one at a time
ngx-image-cropper — the right answer to a smaller question
Syncfusion Image Editor — for Syncfusion shops
Pintura — polished, framework-agnostic, priced
tui-image-editor — the tutorial trap
ngx-image-editor — the layered canvas editor; ours
pdfjs-dist peer is for). If you need those on a budget of zero, nothing on this page currently serves you — that is the honest state of the Angular ecosystem in 2026.
What integration looks like
import { ApplicationConfig } from '@angular/core';
import { provideImageEditor } from '@ebdev/ngx-image-editor';
export const appConfig: ApplicationConfig = {
providers: [
provideImageEditor({
theme: 'dark',
// licenseKey: '...', // only needed for premium features
}),
],
};import { Component } from '@angular/core';
import { ImageEditorComponent } from '@ebdev/ngx-image-editor';
@Component({
selector: 'app-artwork-editor',
imports: [ImageEditorComponent],
template: `
<ngx-image-editor theme="dark" style="height: 640px" />
`,
})
export class ArtworkEditorComponent {}exported and documentChange outputs hand you the result. The cropper and the suite components are comparably small to wire up — integration effort does not separate these packages. The product boundaries and the licences do.
Questions
- Is there a completely free image editor for Angular?
- For cropping only, yes: ngx-image-cropper is MIT and actively maintained. For full editing, no unconditionally-free maintained option exists in 2026: tui-image-editor is MIT but last shipped in May 2022 with no Angular wrapper, Syncfusion is free only under its community-licence conditions, Pintura has no free tier, and ngx-image-editor’s free tier is broad (layers, crop, text, shapes, filters, export) but its retouching tools are paid.
- Do these image editors need a backend for processing?
- No — all of them run in the browser. ngx-image-editor also does its format encoding (including AVIF, GIF and TIFF) with bundled JavaScript codecs, so export works offline and no image ever has to leave the user’s machine.
- What is the difference between an image cropper and an image editor?
- A cropper transforms one image — crop, rotate, flip, scale — and returns a copy. An editor composes layers (images, text, shapes) with transforms, filters and export. Croppers do not grow into editors; if requirements include annotation or composition, start with an editor.