# Changelog

这里维护抠图编辑器主版本更新日志。

<!--NEW_LOG_INJECT_HERE-->

### `V1.1.7` - 2019-02-20

##### 变更
* 更新 `README.md` 内容
* AI 3.1 接口接入

---

### `V1.1.6-beta` - 2018-12-27

##### 修复
* 移除 `package.json` 中 `sideEffects` 属性

---

### `V1.1.5` - 2018-12-10

##### 修复
* 修复头发抠取无效BUG

---

### `V1.1.4` - 2018-12-04

##### 变更
* 用户开始绘制的时候，隐藏工具，结束绘制时，显示工具
* 使用 tinycolor2 替代 onecolor

---

### `V1.1.3` - 2018-12-04

##### 修复
* 缩放时图片不会居中的BUG

---

### `V1.1.2` - 2018-12-03

##### 修复
* 拖拽时边缘抖动的问题

---

### `V1.1.2-beta.4` - 2018-11-27

##### 新增
* 允许在图片外进行缩放操作 
* 新增 `npm run analyse` 用于分析打包依赖

##### 修复
* 修复画笔重合多图层问题
* 移除无用模块、依赖、添加 `Webpack` `external` 属性减少打包体积
* 移动 `fabric.js` 依赖到 devDeps 避免不必要的依赖安装

##### 变更
* 限制画笔绘制到图片外
* 限制图片移动不能移出画布中心点
* 接入 AI 3.0 接口

---

### `V1.1.2-beta.3` - 2018-11-20

##### 修复
* 点击顶部工具栏未触发 `matting-button` 事件
* 侧边栏钢笔工具未触发 `matting-button` 事件

---

### `V1.1.2-beta.2` - 2018-11-20

##### 新增
* `matting-button` 事件，描述按钮点击
* `matting-brush-size` 事件，描述抠图笔刷大小调整
* `matting-feather` 事件，描述羽化边缘调整
* `matting-background` 事件，描述背景颜色改变
* `guide-start` 事件，描述引导开始播放
* `guide-end` 事件，描述引导播放结束
* `guide-close` 事件，描述引导关闭
* `popper-init` 事件，描述提示框被初始化
* `popper-show` 事件，描述提示框显示
* `popper-close` 事件，描述提示框被关闭
* `uploadImageWithResize` 方法，先压缩图片再进行上传操作

---

### `V1.1.2-beta.1` - 2018-11-15

##### 变更
* 钢笔工具可以单独使用

##### 影响范围
* 抠图和橡皮擦请求同一个接口，需要保证抠图和橡皮擦单独使用、一起使用、橡皮擦功能的完整。

---

### `V1.1.1` - 2018-11-12

##### 修复
* Windows 下浏览器滚动缩放跨度过大

##### 影响范围
* 各个平台下的浏览器滚轮缩放功能

---

### `V1.1.0` - 2018-11-09

##### 修复
* Windows 下的 Firefox 浏览器无法使用滚轮缩放
* 抠图失败后再次抠图不显示加载中信息

##### 变更
* 锚点在图片外面时的提示信息

---

### `V1.1.0-beta.18` - 2018-10-15

##### 新增
* 侧边栏 `sidebarOrder` 可配置选项

##### 变更
* 头发抠取数据通过 CDN 拉取数据

---

### `V1.1.0-beta.17` - 2018-10-12

##### 修复
* 360浏览器鼠标按下时会触发 `mousemove` 事件

---

### `V1.1.0-beta.16` - 2018-10-12

##### 变更
* 延迟使用显示使用 `mouseenter` 和 `mouseleave` 实现

---

### `V1.1.0-beta.15` - 2018-10-12

##### 新增
* 钢笔工具引导动画延迟显示

##### 修复
* 某些定位方式下 `hover` 锚点状态下的 `icon` 位置偏移

---

### `V1.1.0-beta.14` - 2018-10-11

##### 新增
* 拖拽边缘限制
* 过期的请求错误不再显示
* 锚点移动到图片外会显示无效提示

##### 影响
* 拖拽边缘限制对内部逻辑有略微改动，需要注意图片拖拽功能是否正确

---

### `V1.1.0-beta.13` - 2018-10-10

##### 修复
* 加入之前不小心删除的 `showGuider` 和 `initPopperGuider` 方法
* 使用钢笔工具时快速移动到画布外或者使用 `shift` 切换抓手工具，`hover` 效果不会消失的BUG
* 360 浏览器无法删除锚点的BUG

##### 变更
* 移除抠图线条以及头发涂抹线条中的 `color` 和 `alpha` 字段
* `options` 为必传参数，并且至少包含 `uploadImage` 方法
* 移除 `options` 中的 `defaultBrush` 参数

##### 影响
* 移除了头发涂抹和抠图线条中的 `color` 和 `alpha` 字段，需要注意头发涂抹和抠图笔刷绘制出的颜色是否正确
* 修复 360 浏览器无法删除锚点的BUG，对钢笔内部实现逻辑略有调整，需要注意钢笔的其他交互是否正确

---

### `V1.1.0-beta.12` - 2018-10-08

##### 新增
* 颜色值手动输入
* 钢笔工具新手引导

##### 变更
* 侧边工具栏参数自定义 `sidebar` 更正为 `sidebarOrder`，只能更改顺序

---

### `V1.1.0-beta.11` - 2018-09-29

##### 修复
* 适应大小时图片位置离中心位置略有偏移
* 添加 `hover` 主锚点时的连线效果
* 钢笔线条再某些情况下无法 `hover` 的问题
* 修复头发取色时偏移问题

---

### `V1.1.0-beta.10` - 2018-09-27

##### 修复
* 替换侧边栏路径图标和路径鼠标指针图标
* 缩放倍数省略为两位小数
* 钢笔锚点使用高分辨率图标替换
* 启用 `enableRetinaScaling` 优化高清屏显示
* 控制点扩展区域背景颜色透明度样式
* 控制点扩展区域 `hover` 图标样式

##### 影响
* 启用 `enableRetinaScaling` 后使用头发的取色功能时位置可能会有影响

---

### `V1.1.0-beta.9` - 2018-09-26

##### 修复
* 缩小路径 `hover` 响应区域
* 钢笔线添加控制点时顺序颠倒
* 中间锚点也能错误连接到端点的BUG

---

### `V1.1.0-beta.8` - 2018-09-25

##### 修复
* 锚点样式调整

---

### `V1.1.0-beta.7` - 2018-09-21

##### 修复
* 使用放大镜时缩放，放大镜实时改变大小

---

### `V1.1.0-beta.6` - 2018-09-21

##### 修复
* 在路径Tab下错误地触发更新

---

### `V1.1.0-beta.5` - 2018-09-20

##### 修复
* IE 浏览器样式 `hover` 白圈圆点位置
* 拖拽锚点的时候禁用缩放和抓手工具
* 拖拽锚点的时候点击右键会导致锚点无法释放
* 吸管工具报错的问题

---

### `V1.1.0-beta.4` - 2018-09-20

##### 修复
* 抠图橡皮擦按钮样式
* 首次导入时不显示缩放提示信息
* 添加 `toBlob` 方法 `polyfill` 保证微软系浏览器正常使用
* 控制点吸附效果修复
* 钢笔线成环时端点样式修复
* 直线/曲线 切换按钮样式修复
* 修复钢笔和抓手切换后鼠标指针不正确
* 钢笔线成环时缩放导致端点样式不正确

##### 变更
* 优化添加新线条逻辑
* 使用 `transform` 实现控制点中心偏移
* SDK 测试页面使用稿定上传接口

---

### `V1.1.0-beta.3` - 2018-09-17

##### 修复
* 控制点中心点颜色

---

### `V1.1.0-beta.2` - 2018-09-17

##### 新增
* 钢笔为直线的时控制点为正方体
* 新增 `matting.toast` 事件
* 用户只使用钢笔的时候触发 `matting.toast` 事件提醒用户配合抠图使用

##### 修复
* 使用 `toBlob` 替换 `toDataURL` 缓解UI卡顿
* 放大后抠图轮廓模糊
* 控制点和钢笔线放大后模糊
* 适应屏幕/实际大小 按钮切换样式微调
* 重做时钢笔路径不消失BUG

##### 变更
* 最大放大倍数改为 `10`
* 调整钢笔控制点尺寸
* 钢笔取色工具只会隐藏鼠标一定范围内的笔刷
* 曲线/直线 切换按钮显示切换后的状态ICON

---

### `V1.0.3` - 2018-09-13

##### 修复
* 调用 `importMattingByImage` 创建 `matting` 时没有宽高参数

---

### `V1.1.0-beta.1` - 2018-09-11

##### 新增
* 钢笔工具

##### 修复
* 保存抠图信息的时候不再覆写本地 `mattingData` 数据
* 缩放时触发 `matting.zoom` 事件
* 抠图轮廓路径粗细保持不变
* 修复橡皮线条数量

---

### `V1.0.2` - 2018-09-06

##### 修复
* 没有颜色字段的线条绘制报错的问题

---

### `V1.0.1` - 2018-09-04

##### 修复
* 原始图被当作结果图处理

---

### `V1.0.0` - 2018-09-03

##### 修复
* 将头发结果拼合移入 `Web Worker` 处理
* 头发抠图缺块BUG
* 导出图片的时候使用 `canvas` 代替 `img` 元素

---

### `V1.0.0-beta.20` - 2018-08-30

##### 修复
* 添加橡皮擦覆盖检测

---

### `V1.0.0-beta.18` - 2018-08-29

##### 修复
* 头发笔刷丢失
* 当头发抠取时移动画笔导致结果错位
* `API` 调用错误时，“生成中”提示不消失
* 更新颜色选择器

---

### `V1.0.0-beta.17` - 2018-08-28

##### 修复
* 内联 `Web Worker`
* 新手引导时笔刷无法释放
* 抠图轮廓丢失
* 预览时关闭“生成中”提示

---

### `V1.0.0-beta.16` - 2018-08-28

##### 修复
* 按钮名称
* 引入 `Web Worker` 生成结果图
* 修复取色事件
* 修复取色预览位置

---

### `V1.0.0-beta.14` - 2018-08-27

##### 新增
* 侧边栏可配置

##### 修复
* 用户引导
* 图标样式
* 吸管指针
* 右键鼠标导致笔刷始终处于绘制状态

---

### `V1.0.0-beta.12` - 2018-08-27

##### 修复
* `isDownloadable` 方法
* 新手引导逻辑
* 鼠标icon消失
* 笔刷 `alpha` 值
* 透明颜色背景色文案提示
* `IE` 图标不显示
* 抠图结果图串位
* `Windows` 下鼠标滚轮放大阀值
* `IE` 图标样式

---

### `V1.0.0-beta.11` - 2018-08-25

##### 修复
* 修复引导无法关闭的 BUG
* 修复引导初始化时机

---

### `V1.0.0-beta.10` - 2018-08-24

##### 修复
* 视觉还原
* 抠图轮廓路径添加边缘线
* 切换工具时重置工具选中状态
* 添加 `isDownloadable` 方法用于判断是否可以下载结果图
* 添加新手引导
* 添加笔刷工具提示条
* 添加 `matting.zoom` 事件用于通知画布缩放

---

### `V1.0.0-beta.9` - 2018-08-23

##### 修复
* 删除颜色时更新结果图
* 取色器鼠标移动到取色器边缘会导致取色器关闭
* `IE` 下进度条不可用
* `IE` 下图标无法显示
* 增加高清屏适配
* 使用抓手工具时，工具错误地初始化
* 抠图和头发抠取更新结果图冲突
* 消除头发抠取白边
* 按住 `shift` 抓手工具功能修复

##### 变更
* `css` 文件单独导出

---

### `V1.0.0-beta.7` - 2018-08-21

##### 修复
* 抠图轮廓丢失
* 鼠标滚轮缩放方向
* 按住 `shift` 抓手工具
* 笔刷大小调整BUG
* 只有在 `hover` 图片时才会允许缩放
* 结果图片边缘模糊
* 重新上传后重置工具状态
* 取色时过滤多余颜色
* 头发抠取笔刷大小保持不变
* 导入模版的时候创建快照
* 笔刷抖动问题
* 颜色选择器点选外部区域关闭
* 头发抠取颜色错误

---

### `V1.0.0-beta.6` - 2018-08-19

##### 新增
* 开发页面新增错误处理
* 新增 `npm run lint` 命令

##### 修复
* 橡皮擦功能失效
* 上传新图片的时候部分组件状态未重制
* 颜色吸取位置修正
* `fitZoom` 效果修正
* `reset` 重制方法
* `updateEdgePath` 调用方式
* 头发取色部分 `snapshot` 修复
* 头发抠取效果应用策略，提升可用性和性能

##### 变更
* 将所有组件改为 `Vue` 单文件形式
* `mattinged` 事件参数只包含 `mattingData`

---

### `V1.0.0-beta.5` - 2018-08-17

##### 修复
* 上传图片遗漏 `matting` 对象
* 移除不必要的 `error`
* 载入现有 `matting` 时没有绘制头发笔画

##### 变更
* 切换工具时将当前工具笔刷置于最上层

---

### `V1.0.0-beta.4` - 2018-08-16

##### 新增
* 头发抠取

##### 修复
* 抠图请求流程优化
* 关闭 `fabric` 缓存，提升性能

##### 变更
* 构建脚本
* 移除 `jQuery` 依赖
* 颜色选择器组件
* 开发页面默认图片
* 暂时移除钢笔工具

---

### `V1.0.0-beta.3` - 2018-08-13

##### 新增
* 钢笔工具基础功能

##### 修复
* 头发笔刷尺寸被缩放影响
* 结果图的鼠标消失
* 头发笔刷位置与画布不同步
* 取色块占满后替换最后一个
* 取色时隐藏笔刷
* 快照绘制缓慢问题
* 抠图边缘路径颜色改为黄色
* 重构笔刷组

---

### `V1.0.0-beta.2` - 2018-08-02

##### 新增
* 头发取色删除
* 进度条点击控制

##### 修复
* 优化绘制性能，笔刷增量更新
* 侧边栏背景图标与背景色同步
* 头发颜色去重
* 结果图片可随时移动
* 鼠标 ICON 正常显示
* 优化抠图网络请求

---

### `V1.0.0-beta` - 2018-08-01

##### 新增
* 橡皮擦功能
* 头发涂抹基础功能

##### 修复
* 架构优化
* 优化抠图网络请求

##### 变更
* UI 改版
* 使用 `fabric.js` 作为 `canvas` 库，移除 `pixi.js` 依赖

---

### `V0.2.9` - 2018-07-20

##### 新增
* 新增抠图操作周期钩子事件 `before-matting`

##### 修复
* 修复抠图后未存储抠图结果图片的BUG

---

### `V0.2.8` - 2018-07-18

##### 新增
* 默认logo外链跳转，跳转到 https://www.gaoding.com/
* 添加默认字体和字体大小

##### 变更
* 默认笔刷大小调整为20px

---

### `V0.2.7` - 2018-07-15

##### 修复
* 修复网络缓慢情况下笔刷丢失的BUG
* 修复网络缓慢的情况下结果图串位的BUG

---

### `V0.2.5` - 2018-07-09

##### 变更
* 移除 `importMattingByImage()` 方法URL验证，支持无后缀URL

---

### `V0.2.4` - 2018-06-30

##### 新增
* `createMatting()` 用于创建 `matting` 对象
* `getImageType()` 用于获取图片后缀名
* `assertImageType()` 用于判断是否是支持的图片类型

##### 修复
* 优化 `importMattingByFile()` 和 `importMattingByImage()` 内部逻辑
* 优化打包时样式文件引入方式

---

### `V0.2.3` - 2018-06-29

##### 新增
* 调试页面，可以独立调试SDK

##### 修复
* 调用 `importMattingByFile()` 和 `importMattingByImage()` 时加入图片宽高信息

---

### `V0.2.2` - 2018-06-15

##### 新增
* 调色盘增加颜色深浅判断, 显示不同选中态

##### 修复
* 修复 笔刷切换太快，popperGuider 重复出现问题

* 修复 IE 下抠图边界线无法显示

---

### `V0.2.1` - 2018-06-13

##### 变更
* 新手帮助组件 icon 使用背景图实现

---

### `V0.2.0` - 2018-06-11

##### 新增
* 增加 `importMattingByFile(file[, extendData])`, 先调用 `saveMatting` 钩子函数，创建 `matting` 对象, 返回 `Promise`。对超过图片限制尺寸会进行压缩, 并调用 `uploadImage()`

* 增加 新手帮助组件，配置参数 `enableHelp`, 默认 `false`

* 增加 `maxFileSize` 配置参数, 配合 `importMattingByFile` 使用。默认 `9 * 1024 * 1024` 字节

* 优化结果图显示，当导入 `matting.result_image` 有值时，优先展示。

##### 修复
* 钩子函数封装 bluebird Promise

* 优化用户画笔时代码逻辑，提高性能

##### 变更
* `importMattingByImage(url[, extendData])`, 先调用 `saveMatting` 钩子函数，创建 `matting` 对象, 返回 `Promise`。参数可以接收 url、base64。若是 base64 先调用 `uploadImage()` 钩子。当超过限制宽高，图片压缩，并调用 `uploadImage()`

---

### `V0.1.1` - 2018-06-06

##### 修复
* 修复预览抠图结果， 把临时 base64 路径存入 resultImage 变量

---

### `V0.1.0` - 2018-06-05

##### 修复
* 修复 IE 下 `includes` 方法找不到
* 修复 IE 下 Vue 模版解析错误

---

### `V0.0.9` - 2018-06-01

##### 变更
* 暂时去除图片宽高限制

---

### `V0.0.8` - 2018-06-01

##### 修复
* 用户操作后 saveMatting 后未正确获取到 matting 对象

---

### `V0.0.7` - 2018-05-31

##### 修复
* 修复 单词错误 `quanlity` -> `quality`

* 修复 结果图的 `mask` 层绘制

##### 变更
* 修改 `mattingImage()` 默认值。去除 `mattingData` 参数

* `mattingData` 对象去除 `resultImage` 属性

* 修改 `uploadImage()` 增加 matting 作为第二参数

* 修改 `matting` 结构，去除 `content` 中的 `resultImage` 最外层增加 `result_image`

---

### `V0.0.6` - 2018-05-30

##### 修复
* 修复 抠图数据缓存机制

* 除调色盘选择颜色，其他颜色选择不再记录历史

##### 变更
* 默认 logo 不再是跳转到稿定设计的链接

---

### `V0.0.5` - 2018-05-28

##### 修复
* 修复 `popperGuider` 弹层无法关闭

* AI 接口返回 alpha 值未处理好，先以最小不透明度为准

* 修复 选择【抓手】动作后 无法调用 `popperGuider`

---

### `V0.0.4` - 2018-05-28

##### 新增
* 增加图片宽高限制 `maxImageHeight`, `maxImageWidth`

##### 修复
* 抠图初始化 `loading` 显示bug

* 修复 blobUrl 图片地址无法正确显示图片


---

### `V0.0.3` - 2018-05-25

##### 新增
* 对所有组件 `props` 进行验证

* 抠图处理接口速度提升, 抠图 loading 增加 500ms 延迟显示时间，可通过 `loadingDelay` 自行控制时间

##### 修复
* 修复 新手引导 `button` 样式问题

* HTML 中 `props` 改成用 `kebab-case` 命名

* 修复 `header` slot 注入无效

##### 变更
* `header` slot 更改为 `logo` 只支持 logo 注入

---

### `V0.0.2` - 2018-05-24

##### 新增
* 新增 `showGuide()`, `initPopperGuider()` 方便外部控制流程

* 新增 `swatches` 配置参数 对背景色列表进行配置

* 新增 `header` 插槽，注入 `matting-header` 组件

##### 修复
* 修复 样式表引用错误

* 修复 `matting-tool` 组件 `<button>` 嵌套

* 修复 修复快照缓存问题

##### 变更
* 生命周期 `mattinged(mattingResult, mattingData)` 增加 `mattingResult` 返回抠图处理的结果

---
