util.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. export const COMPONENT_NAME = "wx-qr";
  2. export const DEFAULT_SIZE = "200rpx";
  3. const screenWidth = wx.getSystemInfoSync()['screenWidth'];
  4. export function getPxFromRpx(rpx) {
  5. return Math.round(rpx * screenWidth / 750);
  6. }
  7. export function getRpxFromPx(px) {
  8. return Math.round(px * 750 / screenWidth);
  9. }
  10. export function loadImage(canvas, imgSrc) {
  11. return new Promise((reslove, reject) => {
  12. const img = canvas.createImage();
  13. img.src = imgSrc;
  14. img.onload = () => {
  15. reslove(img);
  16. };
  17. img.onerror = (e) => {
  18. reject(e);
  19. };
  20. });
  21. }
  22. export function resetCanvasHeighAndWidth(canvas, size, scale) {
  23. const ctx = canvas.getContext('2d');
  24. let dpr = wx.getSystemInfoSync().pixelRatio;
  25. if (scale) {
  26. dpr = scale;
  27. }
  28. canvas.width = size * dpr;
  29. canvas.height = size * dpr;
  30. ctx.scale(dpr, dpr);
  31. return canvas;
  32. }
  33. export function getRoundNum(num, fixedNum = 0) {
  34. return Number(num.toFixed(fixedNum));
  35. }
  36. export function getPxFromStringOrNumber(pixel) {
  37. let px = 0;
  38. if (!pixel) {
  39. return px;
  40. }
  41. if (typeof pixel !== 'string') {
  42. return getPxFromRpx(pixel);
  43. }
  44. px = Number(pixel.match(/\d+\.?\d+?/)[0]);
  45. if (pixel.endsWith('px')) {
  46. return px;
  47. }
  48. else {
  49. return getPxFromRpx(px);
  50. }
  51. }
  52. export function getRpxFromStringOrNumber(rpx) {
  53. let px = 0;
  54. if (!rpx) {
  55. return px;
  56. }
  57. if (typeof rpx === 'number') {
  58. return rpx;
  59. }
  60. px = Number(rpx.match(/\d+\.?\d+?/)[0]);
  61. if (rpx.endsWith('px')) {
  62. return getRpxFromPx(px);
  63. }
  64. else {
  65. return px;
  66. }
  67. }