123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- import Wxml2Canvas from '../../src/index';
- Page({
- data: {
- },
- onLoad (res) {
- this.drawImage1();
- this.drawImage2();
- this.drawImage3();
- this.drawImage4();
- this.drawImage5();
- this.drawImage6();
- this.drawImage7();
- this.drawImage8();
- },
- drawImage1 () {
- this.drawImage1 = new Wxml2Canvas({
- width: 340,
- height: 210,
- element: 'canvas1',
- gradientBackground: {
- color: ['#27326b', '#540821'],
- line: [0, 0, 0, 210]
- },
- finish(url) {
- },
- error (res) {
- }
- });
- },
- drawImage2 () {
- this.drawImage2 = new Wxml2Canvas({
- width: 340,
- height: 210,
- element: 'canvas2',
- background: '#f0f0f0',
- finish(url) {
- },
- error (res) {
- }
- });
- let data2 = {
- list: [{
- type: 'rect',
- x: 10,
- y: 10,
- style: {
- width: 150,
- height: 80,
- fill: {
- color: ['#27326b', '#540821'],
- line: [0, 0, 0, 110]
- },
- border: '10px solid #aaaaaa',
- }
- },{
- type: 'rect',
- x: 170,
- y: 100,
- style: {
- width: 150,
- height: 80,
- fill: '#3762ab',
- border: '10px dashed #540821',
- boxShadow: '10 20 20 rgba(0, 0, 0, 0.4)',
- // dash: [10, 20, 10]
- }
- }]
- }
- this.drawImage2.draw(data2);
- },
- drawImage3 () {
- this.drawImage3 = new Wxml2Canvas({
- width: 340,
- height: 210,
- element: 'canvas3',
- background: '#f0f0f0',
- finish(url) {
- },
- error (res) {
- }
- });
- let text = '一行很长很长很长很长很长很长很长很长很长很长的文字';
- let data3 = {
- list: [{
- type: 'text',
- text,
- x: 0,
- y: 0,
- style: {
- textAlign: 'left',
- width: 130,
- height: 80,
- fontSize: 14,
- lineHeight: 16,
- fontWeight: 'bold',
- boxShadow: '5 5 20 rgba(255, 0, 0, 0.5)',
- }
- }, {
- type: 'text',
- text,
- x: 170,
- y: 0,
- style: {
- textAlign: 'center',
- width: 130,
- fontSize: 14,
- lineHeight: 16,
- color: '#888888',
- }
- }, {
- type: 'text',
- text,
- x: 0,
- y: 70,
- style: {
- textAlign: 'right',
- width: 130,
- fontSize: 14,
- lineHeight: 16,
- fontFamily: 'Serif'
- }
- }, {
- type: 'text',
- text,
- x: 170,
- y: 70,
- style: {
- textAlign: 'center',
- width: 130,
- lineClamp: 2,
- fontSize: 14,
- lineHeight: 16,
- }
- }, {
- type: 'text',
- text,
- x: 0,
- y: 140,
- style: {
- textAlign: 'left',
- width: 130,
- fontSize: 14,
- lineHeight: 16,
- height: 60,
- background: 'rgba(0, 111, 255, 0.5)',
- color: '#ffffff'
- }
- }, {
- type: 'text',
- text,
- x: 170,
- y: 140,
- style: {
- textAlign: 'left',
- width: 130,
- background: 'rgba(255, 0, 0, 0.3)',
- fontSize: 14,
- lineHeight: 16,
- height: 60,
- border: '2px solid #000000',
- padding: '5 10 0 10'
- }
- }]
- }
- this.drawImage3.draw(data3);
- },
- drawImage4 () {
- this.drawImage4 = new Wxml2Canvas({
- width: 340,
- height: 210,
- element: 'canvas4',
- background: '#f0f0f0',
- finish(url) {
- },
- error (res) {
- }
- });
- let data4 = {
- list: [{
- type: 'circle',
- x: 30,
- y: 30,
- style: {
- r: 40,
- fill: {
- color: ['#27326b', '#540821'],
- line: [0, 0, 0, 110]
- },
- border: '10px solid #aaaaaa',
- boxShadow: '10 10 20 rgba(0, 0, 0, 0.6)',
- }
- },{
- type: 'circle',
- x: 200,
- y: 100,
- style: {
- r: 40,
- fill: '#3762ab',
- border: '10px dashed #540821',
- // dash: [10, 20, 10]
- }
- }]
- }
- this.drawImage4.draw(data4);
- },
- drawImage5 () {
- this.drawImage5 = new Wxml2Canvas({
- width: 340,
- height: 210,
- element: 'canvas5',
- background: '#f0f0f0',
- finish(url) {
- },
- error (res) {
- }
- });
- let data5 = {
- list: [{
- type: 'line',
- x: 30,
- y: 30,
- x2: 200,
- y2: 30,
- style: {
- width: 10,
- // stroke: '#3762ab',
- stroke: {
- color: ['#27326b', '#540821'],
- line: [0, 0, 200, 10]
- },
- }
- },{
- type: 'line',
- x: 30,
- y: 100,
- x2: 200,
- y2: 100,
- style: {
- r: 40,
- width: 10,
- stroke: '#3762ab',
- dash: [10, 10, 0],
- boxShadow: '20 20 20 rgba(0, 0, 0, 0.3)',
- }
- }]
- }
- this.drawImage5.draw(data5);
- },
- drawImage6 () {
- this.drawImage6 = new Wxml2Canvas({
- width: 340,
- height: 210,
- element: 'canvas6',
- background: '#f0f0f0',
- finish(url) {
- },
- error (res) {
- }
- });
- let data6 = {
- list: [{
- type: 'image',
- x: 10,
- y: 10,
- url: 'https://mmocgame.qpic.cn/wechatgame/duc2TvpEgSQCEa0WicosqlEgJiacYLaTLEDFB8Kq9Hr7LjAVhM8wu8TT77KqNezQnH/0',
- style: {
- width: 150,
- height: 80,
- border: '10px solid #aaaaaa',
- boxShadow: '10 20 20 rgba(0, 0, 0, 0.4)',
- }
- },{
- type: 'image',
- x: 170,
- y: 100,
- url: './img/demo.png',
- style: {
- width: 150,
- height: 80,
- border: '10px dashed #540821',
- // dash: [10, 20, 10]
- }
- }]
- }
- this.drawImage6.draw(data6);
- },
- drawImage7 () {
- this.drawImage7 = new Wxml2Canvas({
- width: 340,
- height: 210,
- element: 'canvas7',
- background: '#f0f0f0',
- finish(url) {
- },
- error (res) {
- }
- });
- let data7 = {
- list: [{
- type: 'radius-image',
- x: 10,
- y: 10,
- url: './img/demo.png',
- style: {
- r: 40,
- border: '10px solid #aaaaaa',
- boxShadow: '10 10 20 rgba(0, 0, 0, 0.6)',
- }
- },{
- type: 'radius-image',
- x: 170,
- y: 100,
- url: './img/demo.png',
- style: {
- r: 40,
- border: '10px dashed #540821',
- // dash: [10, 20, 10]
- }
- }]
- }
- this.drawImage7.draw(data7);
- },
- drawImage8 () {
- this.drawImage8 = new Wxml2Canvas({
- width: 340,
- height: 400,
- element: 'canvas8',
- background: '#f0f0f0',
- finish(url) {
- },
- error (res) {
- }
- });
- let style = {
- text: {
- textAlign: 'left',
- width: 320,
- fontSize: 16,
- lineHeight: 25,
- }
- }
- let text = [
- 'Wxml2Cavnas库,是一个生成小程序分享图的通用方案,提供了两种绘制方式:',
- '封装基础图形的绘制接口,包括矩形、圆形、线条、图片、圆角图片、纯文本等,使用时只需要声明元素类型并提供关键数据即可,不需要再关注canvas的具体绘制过程;',
- 'wxml直接转换成canvas元素,使用时传入待绘制的wxml节点的class类名,并且声明绘制此节点的类型(图片、文字等),会自动读取此节点的computedStyle,利用这些数据完成元素的绘制。',
- ]
-
- let height1 = 20 + Math.ceil(this.drawImage8.measureWidth(text[0], '16px pingfang') / style.text.width) * style.text.lineHeight;
- let height2 = height1 + 10 + Math.ceil(this.drawImage8.measureWidth(text[1], '16px pingfang') / style.text.width) * style.text.lineHeight;
- let data8 = {
- list: [
- {
- type: 'text',
- text: text[0],
- x: 10,
- y: 10,
- style: style.text
- }, {
- type: 'text',
- text: text[1],
- x: 10,
- y: height1,
- style: style.text
- }, {
- type: 'image',
- x: 10,
- y: height2,
- url: './img/demo.png',
- style: {
- width: 100,
- height: 60,
- }
- }, {
- type: 'text',
- text: text[2],
- x: 15,
- y: height2 + 80,
- style: style.text
- }
- ]
- }
- this.drawImage8.draw(data8);
- }
- });
|