0.0.11 • Published 1 year ago

@inottn/miniposter v0.0.11

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

特性

  • 使用 TypeScript 编写,提供完整的类型定义
  • 使用 新版 canvas 2d 接口,性能更佳
  • 支持 微信 / 支付宝小程序

安装

使用 pnpm 安装:

pnpm add @inottn/miniposter

使用 yarnnpm 安装:

# 使用 yarn
yarn add @inottn/miniposter

# 使用 npm
npm i @inottn/miniposter

快速上手

const miniposter = new MiniPoster(canvas, {
  width: 375,
  height: 600,
  pixelRatio: 2,
});

const renderConfig = {
  backgroundColor: '#fff',
  borderRadius: 8,
  overflow: 'hidden',
  children: [
    {
      type: 'image',
      top: 12,
      left: 12,
      width: 32,
      height: 32,
      src: 'xxxxx',
      borderRadius: 16,
      objectFit: 'cover',
    },
    {
      type: 'text',
      top: 18,
      left: 53,
      content: 'hello',
    },
  ],
}; // 渲染配置,参考下方文档

miniposter.render(renderConfig).then(() => {
  const exportConfig = { ... }; // 导出配置,参考下方文档

  miniposter.export(exportConfig).then(({ tempFilePath }) => {
    // tempFilePath 对应图片文件路径
  });
});

实例化 MiniPoster

使用 canvas 和 config 实例化一个 miniposter 对象

const miniposter = new MiniPoster(canvas, config);

canvas

画布实例

config

字段名类型默认值说明
widthnumber-(必填)画布宽度
heightnumber-(必填)画布高度
pixelRationumber1像素缩放比

miniposter.render(config)

config

字段名类型默认值说明
backgroundColornumber-背景颜色
borderRadiusnumber0边框圆角
childrenobject[]-子元素

可绘制的元素类型如下:

type: container

const container = {
  type: 'container',
  // 其余属性,如下
};
字段名类型默认值说明
leftnumber | () => number-(必填)相对父元素x轴的偏移
topnumber | () => number-(必填)相对父元素y轴的偏移
widthnumber-(必填)容器宽度
heightnumber-(必填)容器高度
backgroundColorstring-背景颜色
borderRadiusnumber0边框圆角
overflow'visible' | 'hidden''visible'子元素溢出时的行为,可参考对应 CSS 属性
childrenobject[]-子元素

type: image

const image = {
  type: 'image',
  // 其余属性,如下
};
字段名类型默认值说明
leftnumber | () => number-(必填)相对父元素x轴的偏移
topnumber | () => number-(必填)相对父元素y轴的偏移
widthnumber-(必填)图像宽度
heightnumber-(必填)图像高度
backgroundColorstring-背景颜色
borderRadiusnumber0边框圆角
objectFit'fill' | 'contain' | 'cover''fill'图片的展示模式,可参考对应 CSS 属性

type: text

const text = {
  type: 'text',
  // 其余属性,如下
};
字段名类型默认值说明
idstring-可以通过 getSize 方法获取对应的宽高信息
leftnumber | () => number-(必填)相对父元素x轴的偏移
topnumber | () => number-(必填)相对父元素y轴的偏移
widthnumber-文本宽度
contentstring-文本内容
colorstring-字体颜色
fontSizenumber14字体大小
fontWeightstring'normal'字体的粗细程度,一些字体只提供 normal 和 bold 两种值
fontFamilystring'sans-serif'字体名称
fontSrcstring-字体资源地址
lineClampnumber-文本最大行数,超过即显示省略号,需设置文本宽度
lineHeightnumber字体大小的 1.43 倍文本行高
textAlign'left' | 'center' | 'right''left'文本的水平对齐方式,需设置文本宽度
textDecoration'none' | 'line-through''none'文本上的装饰性线条的外观,可参考对应 CSS 属性

miniposter.getSize(id)

获取指定元素的宽高信息

miniposter.export(config)

将当前画布指定区域导出为图片

字段名类型默认值说明
xnumber0指定的画布区域的左上角横坐标
ynumber0指定的画布区域的左上角纵坐标
widthnumber画布宽度指定的画布区域的宽度
heightnumber画布高度指定的画布区域的高度
destWidthnumber画布宽度输出的图片的宽度
destHeightnumber画布高度输出的图片的高度
fileType'png' | 'jpg''png'目标文件的类型
qualitynumber1图片的质量,目前仅对 jpg 有效。取值范围为 (0, 1],不在范围内时当作 1 处理。
0.0.11

1 year ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago