UNPKG

leafer-image-editor

Version:

image editor

165 lines (148 loc) 8.84 kB
# 图片编辑器 ## 介绍 用于图片添加素材功能 ## API ### TemplateEditor Props |属性名|类型|可选值|默认值|说明 |-|-|-|-|-| |width|Number\|String|-|父容器宽度|画布宽| |height|Number\|String|-|500|画布高| |bgColor|String|-|-|画布背景色| |list|Array|-|[]|素材编辑属性集合| |defaultCurrentIndex|Number|-|0|默认显示画布索引,非必填默认0| |limitCount|Number|-|0|显示画布添加素材个数, 为0时表示不限制个数| |icon|Object|-|{focusColor: "#EC7E59",color: "#FFE7DF",fontColor: "#0C193D"}|操作图标颜色配置| |boundaryConfig|Object|-|{mode: "hide",size: [容器宽, 容器高],position: [20, 20],}|区域配置,素材会在当前区域更改| |scaleRange|Array|-|[0.1, 5]|限制缩放范围| |editorClassName|String|-|''|自定义编辑器类名 |canImageEdit|Boolean|-|true|是否显示图片素材编辑 |canTextEdit|String|-|true|是否显示文本素材编辑 ### scaleRange Options |索引|类型|默认值|说明 |-|-|-|-| |0|Number|0.1|最小缩放范围,不可小于0 |1|Number|5|最大缩放范围| ### boundaryConfig Options |属性|类型|可选值|默认值|说明 |-|-|-|-|-| |mode|String|hide \| restrict|hide|hide 超出隐藏; restrict 超出限制; |size|Array|-|当前画布宽高|可操作区域宽高(px) |position|Array|-|[0, 0]| 起算坐标点[x,y] ### TemplateEditor Events |事件|类型|参数|说明| |-|-|-|-| |@change| Function |参数1: current;参数2: list;参数3: index|素材change时触发 |@materialEdit|Function|参数1: record;参数2: index;|编辑素材左下角操作icon时触发 |@exceedsLimit|Function|-|添加素材超出限制 |@changeCurrent|Function|id|切换画布 |@doubleClickText|Function|参数1: record;参数2: index;|双击文本素材 ### change params |参数|类型|默认值|说明 |-|-|-|-| |current|Number \| String |-|当前操作素材组项id |list|Array|-|素材编辑属性集合 |index|Number|-|当前操作素材索引 ### materialEdit params |参数|类型|默认值|说明 |-|-|-|-| |record|Object|-|当前操作素材项 |index|Array|-|当前操作素材索引 ## TemplateEditor Exposed Properties |属性名|类型|默认值|说明 |-|-|-|-| |current|Number \| String|-|当前操作素材组项id |activeData|Object|-|当前可操作素材项 ## TemplateEditor Exposed Methods |方法名|类型|参数|说明 |-|-|-|-| |toggleCurrent|Function|value: 素材组项Id|改变操作素材组项 |getCurrentId|Function|-|获取当前操作素材组ID |toggleBgImage|Function|url|更换背景图 |addItem|Function|data|添加面 |deleteItem|Function|id|删除面 |clear|Function|-|清空所有面 |setMaterials|Function|id(设置的面id), materials(设置素材组数组)|设置一面素材组 |resetMaterials|Function|id(设置的面id)|清空一面素材组 |getCurrentData|Function|-|获取当前操作素材组项 |getActiveData|Function|-|获取当前可操作素材项 |reset|Function|-|重置 |drawerCanvas|Function|id|canvas转成图片 |exportFrame|Function|number: 导出加工区宽,id: 当前面id|导出加工区 |addImage|Function|data: 素材配置项|添加图片素材 |addText|Function|data: 素材配置项|添加文本素材 |replaceText|Function|text: 替换文本; index: 可选,素材索引,不填写时默认当前可操作素材索引|替换文本素材 |copy|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|复制素材 |top|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|置顶素材 |bottom|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|置底素材 |moveUp|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|上移素材 |moveDown|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|下移素材 |horizontalCenter|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|素材水平居中 |verticalCenter|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|素材垂直居中 |rotate|Function|deg: 旋转角度;index: 可选,素材索引,不填写时默认当前可操作素材索引|旋转素材 |flip|Function|type: x(水平翻转)\|y(垂直翻转); index: 可选,素材索引,不填写时默认当前可操作素材索引|翻转素材 |opacity|Function|opacity: 0-100 ; index: 可选,素材索引,不填写时默认当前可操作素材索引|不透明度 |textStyles.family|Function|{fontFamily: 字体, fontFamilyUrl: '在线字体链接'}; reset: 样式重置 boolean 默认false; index: 可选,素材索引,不填写时默认当前可操作素材索引|更改字体 |textStyles.bold|Function|reset: 样式重置 boolean 默认false; index: 可选,素材索引,不填写时默认当前可操作素材索引|更改字重 |textStyles.italic|Function|reset: 样式重置 boolean 默认false; index: 可选,素材索引,不填写时默认当前可操作素材索引|设置斜体 |textStyles.underLine|Function|reset: 样式重置 boolean 默认false; index: 可选,素材索引,不填写时默认当前可操作素材索引|设置下划线 |textStyles.lineThrough|Function|reset: 样式重置 boolean 默认false; index: 可选,素材索引,不填写时默认当前可操作素材索引|设置删除线 |textStyles.vertical|Function|reset: 样式重置 boolean 默认false; index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字竖排 |textStyles.alignLeft|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字居左 |textStyles.alignCenter|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字居中 |textStyles.alignRight|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字居右 |textStyles.justify|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字两端对齐 |textStyles.distributed|Function|index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字分散对齐 |textStyles.fontSize|Function|size:字体大小 ;index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字字体大小 |textStyles.color|Function|color:颜色 ;index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字颜色 |textStyles.opacity|Function|opacity: 0-100; index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字不透明度 |textStyles.lineHeight|Function|lineHeight: 1-5; index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字行高 |textStyles.letterSpacing|Function|letterSpacing: 1-100; index: 可选,素材索引,不填写时默认当前可操作素材索引|设置文字间距 ## list属性定义 ```js [{ id: 1,// 唯一键值 imageUrl: "https://upfile.aiprint365.com/20250328-114806.jpg",// 底图 width: 0,// 画布宽,默认为0,根据此值计算配置信息比例 height: 0,// 画布高,默认为0,根据此值计算配置信息比例 name: "前身",// 画布名 materials: [// 素材组 { id: 1,// 唯一键值 zIndex: 1,// 层级 x: 100,// 当前画布坐标X y: 100,// 当前画布坐标X width: 140,// 素材宽 height: 140,// 素材高 angle: 0, // 旋转角度 scale: 1, // 缩放比例 materialType: 1,// 素材类型 1 图片素材 2 文本素材 opacity: 1,// 不透明度 materialUrl: "https://i.postimg.cc/HsM6T9yj/f7e2fca50e1585f98e6d0a4518602b8d-png-3x.png",// 素材链接地址 当素材类型为图片素材时,即为图片素材地址,素材类型为文本素材时,生成后的图片数据中为文本生成的base64图片 color: '#000',// 文本属性 颜色 fontSize: 20,// 文本属性 字号 fontFamily: undefined,// 文本属性 字体 fontFamilyUrl: undefined,// 文本属性 艺术字体链接 fontWeight: 'normal',// 文本属性 字重 fontStyle: 'normal',// 文本属性 字体风格 textDecoration: 'inherit',// 文本属性 文本装饰效果 writingMode: 'inherit',// 文本属性 文本排布 textOrientation: 'inherit',// 文本属性 字符方向 textAlign: 'left',// 文本属性 对齐方式 textAlignLast: 'inherit',// 文本属性 最后一行对齐方式 content: "",// 文本属性 文本内容 letterSpacing: 0,// 文本属性 文本字符间距 lineHeight: 1.5,// 文本属性 文本行高 } ] }, ] ``` ## Installation ```bash npm install leafer-image-editor ``` ### Useage ```js import ImageEditor from "leafer-image-editor"; import "leafer-image-editor/dist/leafer-image-editor.css"; ```