# evils-el-poster uniApp的海报生成组件 # 新功能 可以通过直接获取页面元素内容,不必要自己将每个元素内容确定好定位确定好内容写成列表 ## 示例 ### 使用方法 1. 将需要渲染并且有内容的元素都添加``Poster1``的样式名. 2. 给需要渲染的元素添加``data-etype``,定义类型,不填则默认为text, 3. 给需要渲染的元素添加``data-enode``,传入内容,此项必填 4. 最后调用``this.$refs.Eposter.createForElRect(elClass, false)``,开始生成海报.第一个值为样式名称,第二个值为是否是``slot``内的元素.默认值为``true``,如果最后生成图片位置合适,还可以传入startX,startY,额外调整开始点的坐标. ### 示例1 ``` {{ info.name }} {{ time }} {{ info.desc }} ``` ### 示例2 将内容写在组件内部, ``` {{ info.name }} {{ time }} {{ info.desc }} ``` ## 来源 来自uniapp插件市场的 [zhangyuhao-poster](https://ext.dcloud.net.cn/plugin?id=4611#rating)项目,并做了很多的修改 ## 修改 1. 新增了圆角生成功能 2. 新增了矩形的创建,对于一些基本的矩形/圆形内容可以直接代码生成 3. 将**setTimeout**延时保存图片的方式改为**draw**回调保存,减少了海报生成等待时间 4. 去掉了**mounted**生命周期的生成逻辑,改为**$refs** 调用内部的 **create()**方法.更灵活控制 5. 新增图片自适应功能 ## 特别提示1 如果小程序线上不显示,可能是**uni.getImageInfo**API的问题,这个API需先配置download域名白名单才能生效,微信头像也同样需要配置域名白名单,在微信后台配置这两个域名即可 ``` thirdwx.qlogo.cn wx.qlogo.cn ``` ## 特别提示2 支付宝小程序会有 ``this.callback is not a function`` 的报错,是属于``uniapp``的接口问题. ## 说明 ``` list参数说明: 图片渲染: type: 'image', x: X轴位置, y: Y轴位置, path: 图片路径, width: 图片宽度, height: 图片高度, rotate: 旋转角度 mode:'center' 居中自适应 shape: 形状,默认无,可选值:circle 圆形 如果是number,则生成圆角矩形 area: {x,y,width,height} // 绘制范围,超出该范围会被剪裁掉 该属性与shape暂时无法同时使用,area存在时,shape失效 矩形渲染: type: 'square', x: X轴位置, y: Y轴位置, width: 图片宽度, height: 图片高度, rotate: 旋转角度 shape: 形状,默认无,可选值:circle 圆形 如果是number,则生成圆角矩形 fillStyle:填充的背景样式 area: {x,y,width,height} // 绘制范围,超出该范围会被剪裁掉 该属性与shape暂时无法同时使用,area存在时,shape失效 文字渲染: type: 'text', x: X轴位置, y: Y轴位置, text: 文本内容, size: 字体大小, textBaseline: 基线 默认top 可选值:'top'、'bottom'、'middle'、'normal' color: 颜色 多行文字渲染: type: 'textarea', x: X轴位置, y: Y轴位置, width:换行的宽度 height: 高度,溢出会展示“...” lineSpace: 行间距 text: 文本内容, size: 字体大小, textBaseline: 基线 默认top 可选值:'top'、'bottom'、'middle'、'normal' color: 颜色 ```