1.0.3 • Published 2 years ago

poster-canvas v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

poster-canvas

小程序组件-小程序海报组件

概述

poster-canvas是一个通过配置就可以生成二维码海报的组件

安装

方式一.通过 npm 安装 (推荐)

# npm
npm i poster-canvas -S --production

# yarn
yarn add poster-canvas --production

方式二.下载代码

直接通过 git 下载 poster-canvas 源代码,并将miniprogram_dist目录拷贝到自己的项目组件目录中

使用组件

{
  "usingComponents": {
	"poster-canvas": "poster-canvas/poster/index",
  }
}

接着就可以在 wxml 中直接使用组件

<poster-canvas id="poster" config="{{config}}" bind:success="onPosterSuccess" bind:fail="onPosterFail">
    <button>点击生成海报</button>
</poster-canvas>


<view class="canvas_code_view" style="left: {{imgURL?'0':'-1000rpx'}};">
    <view class="canvas_mask">
        <view class="canvas_box">
            <view class="canvas_box_img">
                <image class="pic" show-menu-by-longpress src="{{imgURL}}"></image>
            </view>
        </view>
    </view>
</view>
.pic {
  width: 100%;
  height: 100%;
  /* height: 1160rpx; */
}

 /* erweima */
 .canvas_code_view {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  z-index: 9999;
}

.canvas_code_view .canvas_mask {
  height: 100%;
  width: 100%;
  background: rgba(0, 0, 0, .6);
  position: relative;
}

.canvas_box {
  width: 680rpx;
  height: 928rpx;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 99;
}

.canvas_box_img{
  width: 100%;
  height: 100%;
}

.canvas_close{
  height: 60rpx;
  width: 60rpx;
  position: absolute;
  top: -96rpx;
  right: 0;
  z-index: 9999;
}

使用注意事项

  1. 图片的域名务必添加到downloadFile合法域名中(开发设置-服务器域名-downloadFile合法域名)

组件参数解释

config字段

字段类型必填描述
widthNumber(单位:rpx)画布宽度
heightNumber(单位:rpx)画布高度
backgroundColorString画布颜色
borderRadiusNumber(单位:rpx)画布圆角
debugBooleanfalse隐藏canvas,true显示canvas,默认false
pixelRatioNumber1为一般,值越大越清晰
hide-loadingBooleantrue:隐藏loading 默认false
blocksObject Array(对象数组)看下文
textsObject Array(对象数组)看下文
imagesObject Array(对象数组)看下文
linesObject Array(对象数组)看下文

blocks字段

字段名类型必填描述
xNumber(单位:rpx)块的坐标
yNumber(单位:rpx)块的坐标
widthNumber(单位:rpx)如果内部有文字,由文字宽度和内边距决定
heightNumber(单位:rpx)
paddingLeftNumber(单位:rpx)内左边距
paddingRightNumber(单位:rpx)内右边距
borderWidthNumber(单位:rpx)边框宽度
borderColorString边框颜色
backgroundColorString背景颜色
borderRadiusNumber(单位:rpx)圆角
textObject块里面可以填充文字,参考texts字段解释
zIndexInt层级,越大越高

texts字段

字段名类型必填描述
xNumber(单位:rpx)坐标
yNumber(单位:rpx)坐标
textString|Object当Object类型时,参数为text字段的参数,marginLeft、marginRight这两个字段可用(示例请看下文)
fontSizeNumber(单位:rpx)文字大小
colorString颜色
opacityInt1为不透明,0为透明
lineHeightNumber(单位:rpx)行高
lineNumInt根据宽度换行,最多的行数
widthNumber(单位:rpx)没有指定为画布宽度
marginLeftNumber(单位:rpx)当text字段为Object可以使用,用来控制多行文字间距
marginRightNumber(单位:rpx)当text字段为Object可以使用,用来控制多行文字间距
textDecorationString目前只支持 line-through(贯穿线),默认为none
baseLineStringtop, hanging, middle, alphabetic, ideographic, bottom基线对齐方式
textAlignStringleft|center|right对齐方式
zIndexInt层级,越大越高
fontFamilyString小程序默认字体为'sans-serif', 请输入小程序支持的字体,例如:'STSong'
fontWeightString'bold'加粗字体,目前小程序不支持 100 - 900 加粗
fontStyleString'italic'倾斜字体

images字段

字段类型必填描述
xNumber(单位:rpx)右上角的坐标
yNumber(单位:rpx)右上角的坐标
urlString图片url(需要添加到下载白名单域名中)仅支持网络图片
widthNumber(单位:rpx)宽度(会根据图片的尺寸同比例缩放
heightNumber(单位:rpx)高度(会根据图片的尺寸同比例缩放
borderRadiusNumber(单位:rpx)圆角,跟css一样
borderWidthNumber(单位:rpx)边框宽度
borderColorString边框颜色
zIndexInt层级,越大越高

lines字段

字段类型必填描述
startXNumber(单位:rpx)起始坐标
startYNumber(单位:rpx)起始坐标
endXNumber(单位:rpx)终结坐标
endYNumber(单位:rpx)终结坐标
widthNumber(单位:rpx)线的宽度
colorString线的颜色
zIndexInt层级,越大越高

事件

success

返回生成海报图片的本地url,如下

 onPosterSuccess(e) {
        const {
            detail
        } = e;
        this.setData({
            imgURL: detail
        })
    },

fail

返回错误信息

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago