svgTobase64.ts 1004 B

12345678910111213141516171819202122232425262728293031323334
  1. import axios from "axios";
  2. // @ts-ignore
  3. import crypto from "crypto-js";
  4. /**
  5. * svg流转换为base64字符串
  6. *
  7. * @param url 获取base的路径
  8. */
  9. export function svgTobase64(url: string) {
  10. let baseUrl = "";
  11. return new Promise((relve, res) => {
  12. if (url.includes(".svg")) {
  13. axios
  14. .get(url)
  15. .then(res => {
  16. if (res.data) {
  17. const index = res.data.indexOf('"UTF-8"?>');
  18. const str = res.data.substr(index + 9);
  19. const a = crypto.enc.Utf8.parse(str);
  20. baseUrl =
  21. "data:image/svg+xml;base64," +
  22. crypto.enc.Base64.stringify(a);
  23. }
  24. relve(baseUrl);
  25. })
  26. .catch(err => {
  27. res(err);
  28. });
  29. } else {
  30. baseUrl = url;
  31. relve(baseUrl);
  32. }
  33. });
  34. }