Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@inottn/miniposter

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@inottn/miniposter

使用 canvas 轻松绘制小程序海报

  • 0.0.8
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
13
increased by550%
Maintainers
1
Weekly downloads
 
Created
Source

logo

使用 canvas 轻松绘制小程序海报

特性

  • 使用 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[]-子元素

可绘制的元素类型如下:

container

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

image

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

text

const text = {
  type: 'text',
  // 其余属性,如下
};
字段名类型默认值说明
idstring-可以通过 getSize 方法获取对应的宽高信息
leftnumber | () => number-(必填)相对父元素x轴的偏移
topnumber | () => number-(必填)相对父元素y轴的偏移
widthnumber-文本宽度
contentstring-文本内容
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)

获取指定元素的宽高信息

Keywords

FAQs

Package last updated on 22 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc