color.ts 895 B

123456789101112131415161718192021222324252627282930
  1. export default {
  2. //hex颜色转rgb颜色
  3. HexToRgb(str) {
  4. str = str.replace('#', '');
  5. const hxs = str.match(/../g);
  6. for (let i = 0; i < 3; i++) hxs[i] = parseInt(hxs[i], 16);
  7. return hxs;
  8. },
  9. //rgb颜色转hex颜色
  10. RgbToHex(a, b, c) {
  11. const hexs = [a.toString(16), b.toString(16), c.toString(16)];
  12. for (let i = 0; i < 3; i++) {
  13. if (hexs[i].length == 1) hexs[i] = '0' + hexs[i];
  14. }
  15. return '#' + hexs.join('');
  16. },
  17. //加深
  18. darken(color, level) {
  19. const rgbc = this.HexToRgb(color);
  20. for (let i = 0; i < 3; i++) rgbc[i] = Math.floor(rgbc[i] * (1 - level));
  21. return this.RgbToHex(rgbc[0], rgbc[1], rgbc[2]);
  22. },
  23. //变淡
  24. lighten(color, level) {
  25. const rgbc = this.HexToRgb(color);
  26. for (let i = 0; i < 3; i++) rgbc[i] = Math.floor((255 - rgbc[i]) * level + rgbc[i]);
  27. return this.RgbToHex(rgbc[0], rgbc[1], rgbc[2]);
  28. },
  29. };