## Basic
Follow these 3steps to create image-editor.
### 1. Load required files
Load first the dependencies, and then load `image-editor.js` or `image-editor.min.js`.
```html
```
### 2. HTML Markup
ImageEditor needs a division element having a canvas element.
And **the division element must have own (css)height.**
```html
```
### 3. Javascript
ImageEditor constructor needs two parameters.
- The canvas element selector
- Css max width & Css max height
- Set the max width according to the size of your page.
- The max height should be same the height of the division element (in this example, `#my-image-editor`).
```js
// Create image editor
var imageEditor = new tui.component.ImageEditor('#my-image-editor canvas', {
cssMaxWidth: 1000, // Component default value: 1000
cssMaxHeight: 800, // Component default value: 800
});
// Load image
imageEditor.loadImageFromURL('img/sampleImage.jpg', 'My sample image');
```
### 4. Menu, Submenu SVG icon setting
In the image below, the red and blue areas are set using the SVG icon.

#### Two ways to set the icon
1. **Use default SVG built** into imageEditor without setting SVG file path (Features added since version v3.9.0).
- This is the default setting for Image Editor.
- It's easy to change the color to match the icon state as shown below, but it uses the built-in default shape so you can't change the icon's appearance.
```js
const instance = new ImageEditor(document.querySelector('#tui-image-editor'), {
includeUI: {
...,
theme: {
'menu.normalIcon.color': '#8a8a8a',
'menu.activeIcon.color': '#555555',
'menu.disabledIcon.color': '#434343',
'menu.hoverIcon.color': '#e9e9e9',
'submenu.normalIcon.color': '#8a8a8a',
'submenu.activeIcon.color': '#e9e9e9',
},
...
}
});
```
2. There is a way to use the **your SVG file** and **set the file location manually**.
- This is used when you want to completely reconfigure the SVG icon itself rather than the built-in icon.
- The disadvantage is that the color must be set by modifying the SVG file directly.
- Need to set the path and name for each icon state as shown below.
```js
const instance = new ImageEditor(document.querySelector('#tui-image-editor'), {
includeUI: {
...,
theme: {
'menu.normalIcon.path': '../dist/svg/icon-d.svg',
'menu.normalIcon.name': 'icon-d',
'menu.activeIcon.path': '../dist/svg/icon-b.svg',
'menu.activeIcon.name': 'icon-b',
'menu.disabledIcon.path': '../dist/svg/icon-a.svg',
'menu.disabledIcon.name': 'icon-a',
'menu.hoverIcon.path': '../dist/svg/icon-c.svg',
'menu.hoverIcon.name': 'icon-c',
'submenu.normalIcon.path': '../dist/svg/icon-a.svg',
'submenu.normalIcon.name': 'icon-a',
'submenu.activeIcon.path': '../dist/svg/icon-c.svg',
'submenu.activeIcon.name': 'icon-c'
},
...,
}
});
```
- How to get SVG file sample
- In the project folder where `tui-image-editor` is installed, the file is in the path described below
```bash
// or use cdn (https://uicdn.toast.com/tui-image-editor/latest/svg/icon-a.svg)
$ cd node_modules/tui-image-editor/dist/svg
```
- Or just get the file via cdn.
- https://uicdn.toast.com/tui-image-editor/latest/svg/icon-a.svg
- https://uicdn.toast.com/tui-image-editor/latest/svg/icon-b.svg
- https://uicdn.toast.com/tui-image-editor/latest/svg/icon-c.svg
- https://uicdn.toast.com/tui-image-editor/latest/svg/icon-d.svg
- Don't forget to use the icon name setting of the `includeUI.theme` option to match the $ {iconName} part of the file.
```svg
icon-a.svg file
submenu.activeIcon.name <-> iconName
...
...
```
### 5. Localization
ImageEditor provide feature to customize all of inscriptions. Look at example.
```js
var locale_ru_RU = {
// override default English locale to your custom
Crop: 'Обзрезать', // as result default English inscription will be translated into Russian
'Delete-all': 'Удалить всё',
// etc...
};
// Image editor
const instance = new ImageEditor(document.querySelector('#tui-image-editor'), {
includeUI: {
loadImage: {
path: 'img/sampleImage.jpg',
name: 'SampleImage',
},
locale: locale_ru_RU, // key-value object with localization
theme: blackTheme, // or whiteTheme
initMenu: 'filter',
menuBarPosition: 'bottom',
},
cssMaxWidth: 700,
cssMaxHeight: 500,
selectionStyle: {
cornerSize: 20,
rotatingPointOffset: 70,
},
});
```
Full inscriptions list who can be replaced to custom ones:
- 3:2
- 4:3
- 5:4
- 7:5
- 16:9
- Apply
- Arrow
- Arrow-2
- Arrow-3
- Blend
- Blur
- Bold
- Brightness
- Bubble
- Cancel
- Center
- Circle
- Color
- Color Filter
- Crop
- Custom
- Custom icon
- Delete
- Delete-all
- Distance
- Download
- Draw
- Emboss
- Fill
- Filter
- Flip
- Flip X
- Flip Y
- Free
- Grayscale
- Heart
- Icon
- Invert
- Italic
- Left
- Load
- Load Mask Image
- Location
- Mask
- Multiply
- Noise
- Pixelate
- Polygon
- Range
- Rectangle
- Redo
- Remove White
- Reset
- Right
- Rotate
- Sepia
- Sepia2
- Shape
- Sharpen
- Square
- Star-1
- Star-2
- Straight
- Stroke
- Text
- Text size
- Threshold
- Tint
- Triangle
- Underline
- Undo
- Value
## More..
See the API page and the sample page
- API: http://nhn.github.io/tui.image-editor/latest/
- Sample: http://nhn.github.io/tui.image-editor/latest/tutorial-example01-includeUi.html