# mp_canvas_drawer
**Repository Path**: hihopeorg/mp_canvas_drawer
## Basic Information
- **Project Name**: mp_canvas_drawer
- **Description**: 图片、图形绘制组件
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-10-14
- **Last Updated**: 2022-05-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# mp_canvas_drawer
## 简介
> canvas绘制图片助手,一个json就制作分享朋友圈图片

## 下载安装
```shell
npm install @ohos/canvasdrawer --save
```
OpenHarmony npm环境配置等更多内容,请参考 [如何安装OpenHarmony npm包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md) 。
## 使用说明
### 1、在页面 `**.hml` 文件中添加library:
```
```
### 2、在页面 `**.hml` 文件中加入如下代码:
```
```
`painting` 是需要传入的 `json`。
## 接口说明
对象结构一览
```js
{
width: 375,
height: 500,
views: [
{
type: 'image',
url: 'url',
top: 0,
left: 0,
width: 375,
height: 500
},
{
type: 'text',
content: 'content',
fontSize: 16,
color: '#402D16',
textAlign: 'left',
top: 33,
left: 96
},
{
type: 'rect',
background: 'color',
top: 0,
left: 0,
width: 375,
height: 500
}
]
}
```
数据对象的第一层需要三个参数: `width`、`height`、`mode`、`views`。配置中所有的数字都是没有单位的。这就意味着 `canvas` 绘制的是一个比例图。`views` 数组中的顺序代表绘画的先后顺序,会有覆盖的现象。
`mode` 可选值有 `same`, 默认值为空。
当前可以绘制3种类型的配置: `image`、`text`、`rect`。
### image(图片)
| 属性 | 含义 | 默认值 | 可选值 |
| ------ | ---------------------------------------------------- | ------ | ------ |
| url | 绘制的图片地址,可以是本地图片,如:`/images/1.jpeg` | | |
| top | 左上角距离画板顶部的距离 | | |
| left | 左上角距离画板左侧的距离 | | |
| width | 要画多宽 | 0 | |
| height | 要画多高 | 0 | |
### text(文本)
| 属性 | 含义 | 默认值 | 可选值 |
| -------------- | ------------------------------------------------------------ | -------------- | ------------------------------------------- |
| content | 绘制文本 | ''(空字符串) | |
| color | 颜色 | black | |
| fontSize | 字体大小 | 16 | |
| textAlign | 文字对齐方式 | left | center、right |
| lineHeight | 行高,只有在多行文本中才有用 | 20 | |
| top | 文本左上角距离画板顶部的距离 | 0 | |
| left | 文本左上角距离画板左侧的距离 | 0 | |
| breakWord | 是否需要换行 | false | true |
| MaxLineNumber | 最大行数,只有设置 `breakWord: true` ,当前属性才有效,超出行数内容的显示为... | 2 | |
| width | 和 `MaxLineNumber` 属性配套使用,`width` 就是达到换行的宽度 | | | |
| textDecoration | 显示中划线、下划线效果 | none | underline(下划线)、line-through(中划线) |
### rect (矩形,线条)
| 属性 | 含义 | 默认值 | 可选值 |
| ---------- | ------------------------ | ------ | ------ |
| background | 背景颜色 | black | |
| top | 左上角距离画板顶部的距离 | | |
| left | 左上角距离画板左侧的距离 | | |
| width | 要画多宽 | 0 | |
| height | 要画多高 | 0 | |
## 兼容性
支持 OpenHarmony API version 6 及以上版本。
## 目录结构
````
|---- mp_canvas_drawer
| |---- entry # 示例代码文件夹
| |---- canvasdrawer # canvasdrawer库文件夹
| |---- src
| |---- main
| |---- ets
| |---- components
| |---- canvasdrawer
| |---- canvasdrawer.js #canvas绘制实现
| |---- README.md # 安装使用方法
````
## 贡献代码
使用过程中发现任何问题都可以提 [Issue](https://gitee.com/hihopeorg/mp_canvas_drawer/issues) 给我们,当然,我们也非常欢迎你给我们发 [PR](https://gitee.com/hihopeorg/mp_canvas_drawer/pulls) 。
## 开源协议
本项目基于 [MIT](https://gitee.com/hihopeorg/mp_canvas_drawer/blob/master/LICENSE) ,请自由地享受和参与开源。