123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- ---
- sidebar_position: 1
- slug: /image-editor
- ---
- import Tabs from '@theme/Tabs';
- import TabItem from '@theme/TabItem';
- import UppyCdnExample from '/src/components/UppyCdnExample';
- # Image editor
- Image editor. Designed to be used with the Dashboard UI.
- <div style={{ maxWidth: 500 }}>
- 
- </div>
- ## When should I use this?
- When you want to allow users to crop, rotate, zoom and flip images that are
- added to Uppy.
- ## Install
- <Tabs>
- <TabItem value="npm" label="NPM" default>
- ```shell
- npm install @uppy/core @uppy/dashboard @uppy/image-editor
- ```
- </TabItem>
- <TabItem value="yarn" label="Yarn">
- ```shell
- yarn add @uppy/core @uppy/dashboard @uppy/image-editor
- ```
- </TabItem>
- <TabItem value="cdn" label="CDN">
- <UppyCdnExample>
- {`
- import { Uppy, Dashboard, ImageEditor } from "{{UPPY_JS_URL}}"
- const uppy = new Uppy()
- uppy.use(Dashboard, { target: '#uppy', inline: true })
- uppy.use(ImageEditor)
- `}
- </UppyCdnExample>
- </TabItem>
- </Tabs>
- ## Use
- ```js {3,7,11} showLineNumbers
- import Uppy from '@uppy/core';
- import Dashboard from '@uppy/dashboard';
- import ImageEditor from '@uppy/image-editor';
- import '@uppy/core/dist/style.min.css';
- import '@uppy/dashboard/dist/style.min.css';
- import '@uppy/image-editor/dist/style.min.css';
- new Uppy()
- .use(Dashboard, { inline: true, target: '#dashboard' })
- .use(ImageEditor);
- ```
- ## API
- ### Options
- :::info
- If you automatically want to open the image editor when an image is added, see
- the [`autoOpen`](/docs/dashboard#autoopen) Dashboard option.
- :::
- #### `id`
- A unique identifier for this plugin (`string`, default: `'ImageEditor'`).
- #### `quality`
- Quality Of the resulting blob that will be saved in Uppy after editing/cropping
- (`number`, default: `0.8`).
- #### `cropperOptions`
- Image Editor is using the excellent
- [Cropper.js](https://fengyuanchen.github.io/cropperjs/). `cropperOptions` will
- be directly passed to `Cropper` and thus can expect the same values as
- documented in their
- [README](https://github.com/fengyuanchen/cropperjs/blob/HEAD/README.md#options),
- with the addition of `croppedCanvasOptions`, which will be passed to
- [`getCroppedCanvas`](https://github.com/fengyuanchen/cropperjs/blob/HEAD/README.md#getcroppedcanvasoptions).
- #### `actions`
- Show action buttons (`Object` or `boolean`).
- If you you’d like to hide all actions, pass `false` to it. By default all the
- actions are visible. Or enable/disable them individually:
- ```js
- {
- revert: true,
- rotate: true,
- granularRotate: true,
- flip: true,
- zoomIn: true,
- zoomOut: true,
- cropSquare: true,
- cropWidescreen: true,
- cropWidescreenVertical: true,
- }
- ```
- #### `locale: {}`
- ```js
- export default {
- strings: {
- revert: 'Revert',
- rotate: 'Rotate',
- zoomIn: 'Zoom in',
- zoomOut: 'Zoom out',
- flipHorizontal: 'Flip horizontal',
- aspectRatioSquare: 'Crop square',
- aspectRatioLandscape: 'Crop landscape (16:9)',
- aspectRatioPortrait: 'Crop portrait (9:16)',
- },
- };
- ```
- ### Events
- :::info
- You can use [`on`](/docs/uppy#onevent-action) and
- [`once`](/docs/uppy#onceevent-action) to listen to these events.
- :::
- #### `file-editor:start`
- Emitted when `selectFile(file)` is called.
- ```js
- uppy.on('file-editor:start', (file) => {
- console.log(file);
- });
- ```
- #### `file-editor:complete`
- Emitted after `save(blob)` is called.
- ```js
- uppy.on('file-editor:complete', (updatedFile) => {
- console.log(updatedFile);
- });
- ```
- #### `file-editor:cancel`
- Emitted when `uninstall` is called or when the current image editing changes are
- discarded.
- ```js
- uppy.on('file-editor:cancel', (file) => {
- console.log(file);
- });
- ```
|