1.0.37 • Published 1 year ago

mp-rox v1.0.37

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

Rox

npm install mp-rox
yarn add mp-rox

Demo

  • json
{
  "usingComponents": {
    "poster": "mp-rox/poster/poster"
  }
}
  • wxml
<view>
  <poster
          id="post"
          width="{{width}}"
          height="{{height}}"
          bg="#fff"
          items="{{items}}"
          catch:textBottom="getTextBottom"
  ></poster>
  <image src="{{imageSrc}}" wx:if="{{imageSrc}}"></image>
  <button catch:tap="getImage">get image</button>
  <button catch:tap="saveImage">save image</button>
</view>
  • js
const { windowWidth: width, windowHeight: height } = wx.getSystemInfoSync()
const canvasWidth = width - 10
const canvasHeight = height - 20

Page({
  data: {
    width: canvasWidth,
    height: canvasHeight,
    visible: true,
    imageSrc: '',
    items: [
      {
        image: 'https://qa-resource.roxmotor.com/images/634dfd79e4b002e1fc3d9a5d.jpg?imageView2/2/w/350/q/80',
        x: 0,
        y: 0,
        width: canvasWidth,
        height: canvasWidth,
      },
      {
        image: '/images/logo1.png',
        x: (canvasWidth - 80) / 2,
        y: (canvasWidth - 29 - 6),
        width: 80,
        height: 6,
      },
      {
        text: 'hello',
        x: 20,
        y: canvasWidth + 24,
        size: 30,
        family: 'bold',
        align: 'left',
        color: 'rgba(26, 23, 27, 1)',
      },
      {
        text: 'it is very good',
        x: 20,
        y: canvasWidth + 24 + 36 + 12,
        size: 14,
        align: 'left',
        family: 'bold',
        lineHeight: 24,
        color: 'rgba(26, 23, 27, 0.5)',
      },
      {
        image: '/images/logo2.png',
        x: 20,
        width: 92,
        height: 23,
        bottom: 12,
      },
      {
        image: '/images/qrcode.png',
        x: canvasWidth - 24 - 92,
        width: 92,
        height: 92,
        bottom: 12,
      },
    ],
  },
  
  getImage() {
    const instance = this.selectComponent('#post')
    const response = instance.getImagePath()
    this.setData({ imageSrc: response.image })
  },
  getTextBottom({ detail }) {
  },
  onLoad(options) {
    const { windowWidth, windowHeight } = wx.getSystemInfoSync()
    const height = windowHeight - 200
    this.data.items.filter(item => item.bottom !== undefined).forEach(item => {
      item.y = canvasHeight - item.bottom - item.height
    })
    this.setData({ items: this.data.items })
  },
  saveImage() {
    const ins = this.selectComponent('#post')
    ins.saveImage()
  },
})

Generator Image By Component Instance Function -> drawImage

Tip: Both passing and changing the items property cause cavans to redraw, so you might not use the method: drawImage

const instance = this.selectComponent('#post') // id -> post, you can use className
instance.getImagePath()  // get Image Path  response -> {image: ''}

Events

  • bind:getTextBottom -> get text position after fillText ( wrap words while words is too long, so you need to know the position that after fillText )
  • bind:customAuthTip -> authorize
  • bind:saveSuccess -> saveImage successfully

Method

  • getImagePath -> get Image Path by this.selectComponent('#post')?.getImagePath()

Properties

propertytypedefaultdescription
bgStringrgba(255, 255, 255, 1)canvas background / poster image background
widthNumber / StringwindowWidthcanvas width
heightNumber / StringwindowHeightcanvas height
canvasStyleString""canvas Style (tip: use in development)
saveSuccessTitleString''the title that save image successfully (do not show tip when value is null or '')
openSettingTitleString''the modal title that no permission
openSettingContentString''the modal content that no permission
itemsArray[]canvas content info

Tip: Both passing and changing the items property cause cavans to redraw, so you might not use the method: drawImage

Prop items

propertytypedescription
imageStringimage path
xNumberposition
yNumberposition
widthNumberimage width / text max width
heightNumberimage height
radiusString / Numberimage radius
lineNumbertext line
lineHeightNumbertext lineHeight (usefully if wrap words)
textStringcontent
sizeNumbercontent fontSize
alignStringtext align type
colorStringtext color
1.0.37

1 year ago

1.0.36

1 year ago

1.0.35

1 year ago

1.0.34

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.29

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago