Spaces:
Running
Running
There are a lot of changes for ImageEditor 2.0.0 including API changes and new features. This migration document will be nicely moving to v2.0.0.
New drawing mode change APIs
New APIs
startDrawingMode(modeName)starts a drawing modestopDrawingMode()stops current drawing mode and back to 'NORMAL' modegetDrawingMode()returns current drawing mode name.getCropzoneRect()returns cropping rect in 'CROPPER' drawing mode.crop(rect)crops image given area
Removed APIs
startCropping,endCroppingstartDrawingShapeMode,endDrawingShapeModestartFreeDrawing,endFreeDrawingstartLineDrawing,endLineDrawingstartTextMode,endTextModeendAllendCroppingis divided into three APIs
var rect = imageEditor.getCropzoneRect();
imageEditor.crop(rect).then(() => {
imageEditor.stopDrawingMode();
});
Changed APIs
removeActiveObject()==>removeObject(id)getCurrentState()==>getDrawingMode()
Use object is with all drawing APIs
- In versions prior to 1.4.1, the users should select an object and manipulate it which is called 'active object'. There was no way to manipulate non-selected object. After 2.0.0 version, you can manipulate not only selected object, but also non-selected objects by receiving the Object Id.
- To get the Object Id, use the parameter.id in Promise.then() and the event callback.
/*
{
id: number
type: type
left: number,
top: number,
width: number,
fill: string
stroke: string
strokeWidth: number
opacity: number,
// text object
text: string,
fontFamily: string,
fontSize: number,
fontStyle: string,
fontWeight: string,
textAlign: string,
textDecoration: string
}
*/
imageEditor.on('objectActivated', function (props) {
console.log(props);
console.log(props.type);
console.log(props.id);
});
imageEditor
.addShape('circle', {
fill: 'red',
stroke: 'blue',
strokeWidth: 3,
rx: 10,
ry: 100,
isRegular: false,
})
.then(function (props) {
console.log(props.id);
imageEditor.changeShape(props.id, {
// change circle
fill: '#FFFF00',
strokeWidth: 10,
});
});
Support Promise API
- All drawing APIs returns Promise and supports Undo/Redo.
- List of related APIs
addIcon,addImageObject,addShape,changeIconColorchangeShape,addText,changeText,changeTextStyle,resizeCanvasDimension,applyFilter,removeFilter,clearObjects,flipX,flipY,loadImageFromFile,loadImageFromURL,redo,undo,removeObject,resetFlip,rotate,setAngle,crop,setObjectPosition,setObjectProperties
Changed event type
| As-Is | To-Be | Change | Why & Purpose |
|---|---|---|---|
| addText | renamed | when mousedown event occurs in 'TEXT' drawing mode | |
| - | removed | unnecessary | |
| objectMoved | renamed changed |
when user drags an object | |
| objectScaled | renamed changed |
when object is being scaled | |
| - | removed | Replace it to applyFilter() Promise API |
|
| - | removed | Replace it to loadImageFromFile(), loadImageFromURL() Promise API |
|
| - | removed | Replace it to clearObjects() Promise API |
|
| textEditing | renamed | when textbox is being edited | |
| redoStackChanged | renamed changed |
Replace it to redoStackChanged event with length 0 |
|
| undoStackChanged | renamed changed |
Replace it to undoStackChanged event with length 0 |
|
| - | removed | unnecessary | |
| - | removed | unnecessary | |
| - | removed | unnecessary | |
| - | removed | Replace it to flipX(), flipY() Promise API |
|
| - | removed | Replace it to loadImageFromFile(), loadImageFromURL() Promise API |
|
| mousedown | mousedown | remained | just mousedown |
| redoStackChanged | renamed changed |
redo change event | |
| undoStackChanged | renamed changed |
undo change event | |
| - | removed | Replace it to removeObject() Promise API |
|
| - | removed | Replace it to rotate(), setAngle() Promise API |
|
| objectActivated | renamed changed |
when user selects an object | |
| - | removed | unnecessary | |
| - | removed | unnecessary | |
| - | removed | unnecessary |