vislite 1.2.1 → 1.3.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +18 -1
  3. package/LICENSE +20 -20
  4. package/README.md +9 -33
  5. package/lib/Buffer/index.es.js +1 -1
  6. package/lib/Buffer/index.es.min.js +1 -1
  7. package/lib/Canvas/index.es.js +36 -7
  8. package/lib/Canvas/index.es.min.js +2 -2
  9. package/lib/Cardinal/index.es.js +1 -1
  10. package/lib/Cardinal/index.es.min.js +1 -1
  11. package/lib/Eoap/index.es.js +1 -1
  12. package/lib/Eoap/index.es.min.js +1 -1
  13. package/lib/Hermite/index.es.js +1 -1
  14. package/lib/Hermite/index.es.min.js +1 -1
  15. package/lib/MapCoordinate/index.es.d.ts +3 -0
  16. package/lib/MapCoordinate/index.es.js +217 -0
  17. package/lib/MapCoordinate/index.es.min.d.ts +3 -0
  18. package/lib/MapCoordinate/index.es.min.js +5 -0
  19. package/lib/Matrix4/index.es.js +1 -1
  20. package/lib/Matrix4/index.es.min.js +1 -1
  21. package/lib/Mercator/index.es.js +1 -1
  22. package/lib/Mercator/index.es.min.js +1 -1
  23. package/lib/RawCanvas/index.es.js +36 -7
  24. package/lib/RawCanvas/index.es.min.js +2 -2
  25. package/lib/SVG/index.es.js +47 -20
  26. package/lib/SVG/index.es.min.js +2 -2
  27. package/lib/Shader/index.es.js +1 -1
  28. package/lib/Shader/index.es.min.js +1 -1
  29. package/lib/Texture/index.es.js +1 -1
  30. package/lib/Texture/index.es.min.js +1 -1
  31. package/lib/TreeLayout/index.es.js +1 -1
  32. package/lib/TreeLayout/index.es.min.js +1 -1
  33. package/lib/animation/index.es.js +1 -1
  34. package/lib/animation/index.es.min.js +1 -1
  35. package/lib/assemble/index.es.js +1 -1
  36. package/lib/assemble/index.es.min.js +1 -1
  37. package/lib/getLoopColors/index.es.js +1 -1
  38. package/lib/getLoopColors/index.es.min.js +1 -1
  39. package/lib/getWebGLContext/index.es.js +1 -1
  40. package/lib/getWebGLContext/index.es.min.js +1 -1
  41. package/lib/index.umd.js +198 -26
  42. package/lib/index.umd.min.js +2 -2
  43. package/lib/initOption/index.es.js +1 -1
  44. package/lib/initOption/index.es.min.js +1 -1
  45. package/lib/mergeOption/index.es.js +1 -1
  46. package/lib/mergeOption/index.es.min.js +1 -1
  47. package/lib/move/index.es.js +1 -1
  48. package/lib/move/index.es.min.js +1 -1
  49. package/lib/rotate/index.es.js +1 -1
  50. package/lib/rotate/index.es.min.js +1 -1
  51. package/lib/ruler/index.es.js +1 -1
  52. package/lib/ruler/index.es.min.js +1 -1
  53. package/lib/scale/index.es.js +1 -1
  54. package/lib/scale/index.es.min.js +1 -1
  55. package/lib/throttle/index.es.js +1 -1
  56. package/lib/throttle/index.es.min.js +1 -1
  57. package/minialipay/ui-canvas/drawImage.js +35 -35
  58. package/minialipay/ui-canvas/index.acss +4 -4
  59. package/minialipay/ui-canvas/index.axml +3 -3
  60. package/minialipay/ui-canvas/index.d.ts +1 -1
  61. package/minialipay/ui-canvas/index.js +100 -100
  62. package/minialipay/ui-canvas/index.json +6 -6
  63. package/miniprogram/ui-canvas/drawImage.js +35 -35
  64. package/miniprogram/ui-canvas/index.js +117 -117
  65. package/miniprogram/ui-canvas/index.json +4 -4
  66. package/miniprogram/ui-canvas/index.wxml +4 -4
  67. package/miniprogram/ui-canvas/index.wxss +5 -5
  68. package/package/Buffer/index.ts +2 -2
  69. package/package/Canvas/index.ts +2 -2
  70. package/package/Cardinal/index.ts +2 -2
  71. package/package/Eoap/index.ts +2 -2
  72. package/package/Hermite/index.ts +2 -2
  73. package/package/MapCoordinate/index.ts +3 -0
  74. package/package/Matrix4/index.ts +2 -2
  75. package/package/Mercator/index.ts +2 -2
  76. package/package/RawCanvas/index.ts +2 -2
  77. package/package/SVG/index.ts +2 -2
  78. package/package/Shader/index.ts +2 -2
  79. package/package/Texture/index.ts +2 -2
  80. package/package/TreeLayout/index.ts +2 -2
  81. package/package/animation/index.ts +2 -2
  82. package/package/assemble/index.ts +2 -2
  83. package/package/getLoopColors/index.ts +2 -2
  84. package/package/getWebGLContext/index.ts +40 -40
  85. package/package/index.ts +80 -75
  86. package/package/initOption/index.ts +2 -2
  87. package/package/mergeOption/index.ts +2 -2
  88. package/package/move/index.ts +2 -2
  89. package/package/rotate/index.ts +2 -2
  90. package/package/ruler/index.ts +2 -2
  91. package/package/scale/index.ts +2 -2
  92. package/package/throttle/index.ts +2 -2
  93. package/package.json +75 -77
  94. package/src/Canvas.ts +84 -84
  95. package/src/Eoap.ts +66 -66
  96. package/src/Matrix4/index.ts +84 -84
  97. package/src/Matrix4/move.ts +12 -12
  98. package/src/Matrix4/rotate.ts +15 -15
  99. package/src/Matrix4/scale.ts +11 -11
  100. package/src/Matrix4/transform.ts +64 -64
  101. package/src/Mercator.ts +27 -27
  102. package/src/SVG.ts +24 -24
  103. package/src/common/assemble.ts +22 -22
  104. package/src/common/canvas/arc.ts +51 -51
  105. package/src/common/canvas/config.ts +176 -158
  106. package/src/common/canvas/default.ts +64 -61
  107. package/src/common/canvas/gradient.ts +31 -31
  108. package/src/common/canvas/index.ts +188 -188
  109. package/src/common/canvas/painter.ts +443 -430
  110. package/src/common/canvas/texts.ts +18 -18
  111. package/src/common/map/getBoundary.ts +16 -0
  112. package/src/common/map/tool.ts +30 -0
  113. package/src/common/option.ts +29 -29
  114. package/src/common/setStyle.ts +5 -5
  115. package/src/common/svg/config.ts +213 -194
  116. package/src/common/svg/default.ts +29 -26
  117. package/src/common/svg/gradient.ts +53 -53
  118. package/src/common/svg/index.ts +332 -332
  119. package/src/common/svg/tool.ts +51 -42
  120. package/src/common/tree/index.ts +25 -25
  121. package/src/common/tree/toPlainTree.ts +132 -132
  122. package/src/common/type.ts +26 -26
  123. package/src/common/webgl/buffer.ts +79 -79
  124. package/src/common/webgl/getWebGLContext.ts +45 -45
  125. package/src/common/webgl/shader.ts +75 -75
  126. package/src/common/webgl/texture.ts +97 -97
  127. package/src/coordinate/MapCoordinate.ts +81 -0
  128. package/src/getLoopColors.ts +42 -42
  129. package/src/interpolation/Cardinal.ts +110 -110
  130. package/src/interpolation/Hermite.ts +65 -65
  131. package/src/move.ts +7 -7
  132. package/src/rotate.ts +7 -7
  133. package/src/ruler.ts +209 -209
  134. package/src/scale.ts +6 -6
  135. package/types/Buffer.d.ts +23 -23
  136. package/types/Canvas.d.ts +352 -344
  137. package/types/CanvasConfig.d.ts +88 -116
  138. package/types/CanvasOption.d.ts +8 -8
  139. package/types/CanvasOpts.d.ts +9 -9
  140. package/types/Cardinal.d.ts +13 -13
  141. package/types/Gradient.d.ts +14 -14
  142. package/types/Hermite.d.ts +18 -18
  143. package/types/Map.d.ts +9 -9
  144. package/types/MapConfig.d.ts +28 -0
  145. package/types/MapCoordinate.d.ts +23 -0
  146. package/types/Matrix4.d.ts +47 -47
  147. package/types/SVG.d.ts +243 -243
  148. package/types/SVGConfig.d.ts +71 -89
  149. package/types/Shader.d.ts +16 -16
  150. package/types/Texture.d.ts +16 -16
  151. package/types/TreeConfig.d.ts +36 -36
  152. package/types/TreeOption.d.ts +48 -48
  153. package/types/animation.d.ts +5 -5
  154. package/types/assemble.d.ts +5 -5
  155. package/types/getLoopColors.d.ts +5 -5
  156. package/types/getWebGLContext.d.ts +7 -7
  157. package/types/index.d.ts +179 -165
  158. package/types/move.d.ts +5 -5
  159. package/types/option.d.ts +12 -12
  160. package/types/painterConfig.d.ts +4 -4
  161. package/types/rotate.d.ts +5 -5
  162. package/types/ruler.d.ts +10 -10
  163. package/types/scale.d.ts +5 -5
  164. package/types/throttle.d.ts +5 -5
  165. package/types/ui-canvas.d.ts +4 -4
  166. package/types/uni-canvas.d.ts +3 -3
  167. package/uni-app/drawImage.js +19 -19
  168. package/uni-app/ui-canvas.vue +284 -284
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * rotate of VISLite JavaScript Library v1.2.1
2
+ * rotate of VISLite JavaScript Library v1.3.0-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function t(t,a,n,r,e){var o=Math.cos(n),s=Math.sin(n);return[(r-t)*o-(e-a)*s+t,(r-t)*s+(e-a)*o+a]}export{t as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ruler of VISLite JavaScript Library v1.2.1
2
+ * ruler of VISLite JavaScript Library v1.3.0-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function ruler (maxValue, minValue, num, option) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ruler of VISLite JavaScript Library v1.2.1
2
+ * ruler of VISLite JavaScript Library v1.3.0-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function n(n,r,t,e){if(n<r){var i=r;r=n,n=i}else if(n==r)return[n];var a=function(n){for(var r=n<100&&n>-100?10:.1,t=-1,e=n;10==r?e>=-100&&e<=100:e<=-100||e>=100;)t+=1,e*=r;if(10==r)return Math.pow(10,t);for(var i="0.",a=1;a<t;a++)i+="0";return+(i+"1")}(n-r),u=Math.ceil((n-r)*a/t),f=function(t){var e=({3:2,4:5,6:5,7:5,8:10,9:10,11:10,12:10,13:15,14:15,16:15,17:15,18:20,19:20,21:20,22:20,23:25,24:25,26:25,27:25}[u+t]||u+t)/a,i=Math.floor(r/e)*e,f=[];f.push(i);for(var l=1;f[f.length-1]<n;l++)f.push(i+e*l);return f},l=f(0),o=function(){for(var n=[],t=l[l.length-1]-(null==e?void 0:e.max),i=0;i<l.length;i++)i+1<l.length&&l[i+1]-t<r||n.push(l[i]-t);return n},h=function(){for(var r=[],t=l[0]-(null==e?void 0:e.min),i=0;i<l.length&&(r[i]=l[i]-t,!(n<=r[i]));i++);return r};if(e){if("max"in e&&"min"in e&&e.max>=n&&e.min<=r){var m=function(){if(l[0]>=e.min&&l[l.length-1]<=e.max)return!0;var n=o();if(n[0]>=e.min&&n[n.length-1]<=e.max)return l=n,!0;var r=h();return r[0]>=e.min&&r[n.length-1]<=e.max?(l=r,!0):void 0};if(m())return l;for(var v=1;v<100;v++){if(l=f(v),m())return l;if(l=f(-v),m())return l}}"max"in e&&e.max>=n?e.max<l[l.length-1]&&(l=o()):"min"in e&&e.min<=r&&e.min>l[0]&&(l=h())}for(var g=0;g<l.length;g++){var s=l[g]+"";/\./.test(s)&&(/9{7,}$/.test(s)?(s=s.replace(/9{7,}$/,""),l[g]=+(s.substring(0,s.length-1)+(+s[s.length-1]+1))):/0{7,}\d$/.test(s)&&(l[g]=+s.replace(/0{7,}\d$/,"")))}return l}export{n as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * scale of VISLite JavaScript Library v1.2.1
2
+ * scale of VISLite JavaScript Library v1.3.0-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function scale (cx, cy, times, x, y) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * scale of VISLite JavaScript Library v1.2.1
2
+ * scale of VISLite JavaScript Library v1.3.0-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function t(t,e,n,r,u){return[n*(r-t)+t,n*(u-e)+e]}export{t as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * throttle of VISLite JavaScript Library v1.2.1
2
+ * throttle of VISLite JavaScript Library v1.3.0-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function throttle(callback, _option) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * throttle of VISLite JavaScript Library v1.2.1
2
+ * throttle of VISLite JavaScript Library v1.3.0-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function t(t,e){var n={time:200,keep:!1,opportunity:"end"};if(e)for(var p in e)n[p]=e[p];var r,i=!1,o=!1,a=!1;return function(){const e=this;if(r=arguments,i)o=!0,a=!0;else{"end"!=n.opportunity&&t.apply(e,r),i=!0;var p=setInterval((()=>{o?n.keep||t.apply(e,r):("begin"!=n.opportunity&&(a||"end"==n.opportunity)&&t.apply(e,r),i=!1,a=!1,clearInterval(p)),o=!1}),n.time)}}}export{t as default};
@@ -1,36 +1,36 @@
1
- export default function (_this, drawImage, canvas) {
2
- return function (imgUrl, x, y, w, h) {
3
- return new Promise((resolve) => {
4
-
5
- let doit = (imgsrc) => {
6
- if (canvas.createImage) {
7
- let img = canvas.createImage();
8
- img.onload = function () {
9
- drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
- resolve({});
11
- });
12
- };
13
- img.src = imgsrc;
14
- }
15
-
16
- // 低版本兼容
17
- else {
18
- drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
- resolve({});
20
- });
21
- }
22
- };
23
-
24
- if (/^http/.test(imgUrl)) {
25
- my.downloadFile({
26
- url: imgUrl,
27
- success: function (res) {
28
- doit(res.tempFilePath);
29
- },
30
- })
31
- } else {
32
- doit(imgUrl);
33
- }
34
- });
35
- };
1
+ export default function (_this, drawImage, canvas) {
2
+ return function (imgUrl, x, y, w, h) {
3
+ return new Promise((resolve) => {
4
+
5
+ let doit = (imgsrc) => {
6
+ if (canvas.createImage) {
7
+ let img = canvas.createImage();
8
+ img.onload = function () {
9
+ drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
+ resolve({});
11
+ });
12
+ };
13
+ img.src = imgsrc;
14
+ }
15
+
16
+ // 低版本兼容
17
+ else {
18
+ drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
+ resolve({});
20
+ });
21
+ }
22
+ };
23
+
24
+ if (/^http/.test(imgUrl)) {
25
+ my.downloadFile({
26
+ url: imgUrl,
27
+ success: function (res) {
28
+ doit(res.tempFilePath);
29
+ },
30
+ })
31
+ } else {
32
+ doit(imgUrl);
33
+ }
34
+ });
35
+ };
36
36
  };
@@ -1,5 +1,5 @@
1
- /* 辅助的区域不应该可以看见 */
2
- .region {
3
- position: fixed;
4
- left: 50000px;
1
+ /* 辅助的区域不应该可以看见 */
2
+ .region {
3
+ position: fixed;
4
+ left: 50000px;
5
5
  }
@@ -1,4 +1,4 @@
1
- <view>
2
- <canvas type="2d" id="{{'painter-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" width="{{2*width+'px'}}" height="{{2*height+'px'}}" onTouchStart="doitstart"></canvas>
3
- <canvas a:if="{{region}}" type="2d" id="{{'region-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" id="{{'region-'+uniqueid}}" class="region"></canvas>
1
+ <view>
2
+ <canvas type="2d" id="{{'painter-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" width="{{2*width+'px'}}" height="{{2*height+'px'}}" onTouchStart="doitstart"></canvas>
3
+ <canvas a:if="{{region}}" type="2d" id="{{'region-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" id="{{'region-'+uniqueid}}" class="region"></canvas>
4
4
  </view>
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,101 +1,101 @@
1
- import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
- import drawImage from "./drawImage.js";
3
-
4
- // https://opendocs.alipay.com/mini/framework/custom-component-overview
5
-
6
- Component({
7
- props: {
8
- width: 300,
9
- height: 150,
10
- region: true,
11
- onDoTouchstart: () => { }
12
- },
13
- data: {
14
- uniqueid: (Math.random() * 10000).toFixed(0),
15
- help: {}
16
- },
17
- methods: {
18
- fetch() {
19
- return new Promise((resolve, reject) => {
20
-
21
- let getCanvasContext = (idName, doback) => {
22
- if (idName != 'region' || this.props.region) {
23
- my.createSelectorQuery().select('#' + idName + '-' + this.data.uniqueid).node().exec((res) => {
24
- const canvas = res[0].node;
25
- const ctx = canvas.getContext('2d');
26
-
27
- if (idName != "region") {
28
- ctx.scale(2, 2);
29
- }
30
-
31
- doback(ctx, idName != 'region' ? canvas : null);
32
-
33
- })
34
- } else {
35
- doback(null);
36
- }
37
- };
38
-
39
- getCanvasContext("painter", (painter, panvas) => {
40
- getCanvasContext("region", region => {
41
-
42
- this.data.help.instance = new RawCanvas({
43
- getContext() {
44
- return painter;
45
- }
46
- }, this.props.region ? {
47
- getContext() {
48
- return region;
49
- }
50
- } : null);
51
-
52
- this.data.help.instance.toDataURL = () => {
53
- return new Promise((resolveUrl) => {
54
- if (panvas.toDataURL) {
55
- resolveUrl(panvas.toDataURL());
56
- } else {
57
- panvas.toTempFilePath({
58
- x: 0,
59
- y: 0,
60
- width: this.props.widht,
61
- height: this.props.height,
62
- success(e) {
63
- resolveUrl(e.tempFilePath);
64
- },
65
- fail(error) {
66
- console.error(error);
67
- }
68
- });
69
- }
70
- });
71
- };
72
-
73
- this.data.help.instance.drawImage = drawImage(
74
- this.data.help.instance,
75
- this.data.help.instance.drawImage,
76
- panvas
77
- );
78
-
79
- resolve(this.data.help.instance);
80
- });
81
- });
82
-
83
- });
84
- },
85
- doit(event) {
86
- let x = event.touches[0].x;
87
- let y = event.touches[0].y;
88
-
89
- this.data.help.instance.getRegion(x, y).then((regionName) => {
90
- this.props.onDoTouchstart({
91
- name: regionName,
92
- x: x,
93
- y: y
94
- });
95
- });
96
- },
97
- doitstart(event) {
98
- this.doit(event);
99
- }
100
- }
1
+ import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
+ import drawImage from "./drawImage.js";
3
+
4
+ // https://opendocs.alipay.com/mini/framework/custom-component-overview
5
+
6
+ Component({
7
+ props: {
8
+ width: 300,
9
+ height: 150,
10
+ region: true,
11
+ onDoTouchstart: () => { }
12
+ },
13
+ data: {
14
+ uniqueid: (Math.random() * 10000).toFixed(0),
15
+ help: {}
16
+ },
17
+ methods: {
18
+ fetch() {
19
+ return new Promise((resolve, reject) => {
20
+
21
+ let getCanvasContext = (idName, doback) => {
22
+ if (idName != 'region' || this.props.region) {
23
+ my.createSelectorQuery().select('#' + idName + '-' + this.data.uniqueid).node().exec((res) => {
24
+ const canvas = res[0].node;
25
+ const ctx = canvas.getContext('2d');
26
+
27
+ if (idName != "region") {
28
+ ctx.scale(2, 2);
29
+ }
30
+
31
+ doback(ctx, idName != 'region' ? canvas : null);
32
+
33
+ })
34
+ } else {
35
+ doback(null);
36
+ }
37
+ };
38
+
39
+ getCanvasContext("painter", (painter, panvas) => {
40
+ getCanvasContext("region", region => {
41
+
42
+ this.data.help.instance = new RawCanvas({
43
+ getContext() {
44
+ return painter;
45
+ }
46
+ }, this.props.region ? {
47
+ getContext() {
48
+ return region;
49
+ }
50
+ } : null);
51
+
52
+ this.data.help.instance.toDataURL = () => {
53
+ return new Promise((resolveUrl) => {
54
+ if (panvas.toDataURL) {
55
+ resolveUrl(panvas.toDataURL());
56
+ } else {
57
+ panvas.toTempFilePath({
58
+ x: 0,
59
+ y: 0,
60
+ width: this.props.widht,
61
+ height: this.props.height,
62
+ success(e) {
63
+ resolveUrl(e.tempFilePath);
64
+ },
65
+ fail(error) {
66
+ console.error(error);
67
+ }
68
+ });
69
+ }
70
+ });
71
+ };
72
+
73
+ this.data.help.instance.drawImage = drawImage(
74
+ this.data.help.instance,
75
+ this.data.help.instance.drawImage,
76
+ panvas
77
+ );
78
+
79
+ resolve(this.data.help.instance);
80
+ });
81
+ });
82
+
83
+ });
84
+ },
85
+ doit(event) {
86
+ let x = event.touches[0].x;
87
+ let y = event.touches[0].y;
88
+
89
+ this.data.help.instance.getRegion(x, y).then((regionName) => {
90
+ this.props.onDoTouchstart({
91
+ name: regionName,
92
+ x: x,
93
+ y: y
94
+ });
95
+ });
96
+ },
97
+ doitstart(event) {
98
+ this.doit(event);
99
+ }
100
+ }
101
101
  });
@@ -1,6 +1,6 @@
1
- {
2
- "component": true,
3
- "usingComponents": {
4
-
5
- }
6
- }
1
+ {
2
+ "component": true,
3
+ "usingComponents": {
4
+
5
+ }
6
+ }
@@ -1,36 +1,36 @@
1
- export default function (_this, drawImage, canvas) {
2
- return function (imgUrl, x, y, w, h) {
3
- return new Promise((resolve) => {
4
-
5
- let doit = (imgsrc) => {
6
- if (canvas.createImage) {
7
- let img = canvas.createImage();
8
- img.onload = function () {
9
- drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
- resolve({});
11
- });
12
- };
13
- img.src = imgsrc;
14
- }
15
-
16
- // 低版本兼容
17
- else {
18
- drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
- resolve({});
20
- });
21
- }
22
- };
23
-
24
- if (/^http/.test(imgUrl)) {
25
- wx.downloadFile({
26
- url: imgUrl,
27
- success: function (res) {
28
- doit(res.tempFilePath);
29
- },
30
- })
31
- } else {
32
- doit(imgUrl);
33
- }
34
- });
35
- };
1
+ export default function (_this, drawImage, canvas) {
2
+ return function (imgUrl, x, y, w, h) {
3
+ return new Promise((resolve) => {
4
+
5
+ let doit = (imgsrc) => {
6
+ if (canvas.createImage) {
7
+ let img = canvas.createImage();
8
+ img.onload = function () {
9
+ drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
+ resolve({});
11
+ });
12
+ };
13
+ img.src = imgsrc;
14
+ }
15
+
16
+ // 低版本兼容
17
+ else {
18
+ drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
+ resolve({});
20
+ });
21
+ }
22
+ };
23
+
24
+ if (/^http/.test(imgUrl)) {
25
+ wx.downloadFile({
26
+ url: imgUrl,
27
+ success: function (res) {
28
+ doit(res.tempFilePath);
29
+ },
30
+ })
31
+ } else {
32
+ doit(imgUrl);
33
+ }
34
+ });
35
+ };
36
36
  };