Vue2 项目使用 CRC32 和 Unicode 编码生成字符串对应的颜色值

简介: 这篇文章介绍了在Vue 2项目中使用CRC32算法和Unicode编码来生成字符串对应的颜色值的两种方法,包括如何导入依赖、编写工具函数、在Vue原型上挂载以及具体的使用示例。

前言

简单记录一下在 Vue2 项目使用 CRC32 和 Unicode 编码生成字符串对应的颜色值。

一、使用 CRC32 转换字符串来生成十六进制颜色值

1.导入依赖

npm install crc-32

2.示例代码

(1)/src/utils/colorUtil.js

import Vue from 'vue'
import CRC32 from 'crc-32'

const stringToColor = (str) => {
   
    if (str) {
   
        str = Math.abs(CRC32.str(str)).toString(10);
        return '#' + str.substring(0, 6);
    } else {
   
        return 'transparent'; // 透明
    }
}

Vue.prototype.$stringToColor= stringToColor

3.全局引入

import './utils/colorUtil'

4.使用方式

示例一

const color = this.$stringToColor("这是一段字符串");
console.log(color);


示例二
<p>{
   {
    $stringToColor('HelloWorld') }}</p>

二、使用字符串 Unicode 编码生成 RGB 颜色值

1.示例代码

(1)/src/utils/colorUtil.js

import Vue from 'vue'

const stringToColor = (str) => {
   
    let hash = 0;
    for (var i = 0; i < str.length; i++) {
   
        hash = hash * 31 + str.charCodeAt(i);
        hash = intValue(hash);
    }
    let r = (hash & 0xFF0000) >> 16;
    let g = (hash & 0x00FF00) >> 8;
    let b = (hash & 0x0000FF);
    return 'rgba(' + r + ',' + g + ',' + b + ',' + '0.2)';
}

function intValue(num) {
   
    var MAX_VALUE = 0x7fffffff;
    var MIN_VALUE = -0x80000000;
    if(num > MAX_VALUE || num < MIN_VALUE)
    {
   
        return num &= 0xFFFFFFFF;
    }
    return num;
}

Vue.prototype.$stringToColor = stringToColor

2.全局引入

import './utils/colorUtil'

3.使用方式

示例一

const color = this.$stringToColor("这是一段字符串");
console.log(color);


示例二
<p>{
   {
    $stringToColor('HelloWorld') }}</p>
目录
相关文章
|
域名解析 网络协议 测试技术
性能测试-弱网测试参数选择标准
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。
13482 0
性能测试-弱网测试参数选择标准
|
缓存 网络协议 数据可视化
WinSCP下载安装并实现远程SSH本地服务器上传文件
WinSCP下载安装并实现远程SSH本地服务器上传文件
1197 1
|
缓存 Java 区块链
【Springboot】springboot项目替换掉默认的小叶子ico
【Springboot】springboot项目替换掉默认的小叶子ico
654 0
element-el-time-picker 开始时间-结束时间-回显(整理)
element-el-time-picker 开始时间-结束时间-回显(整理)
|
移动开发 小程序 API
uniapp通过蓝牙传输数据 (ios)
uniapp通过蓝牙传输数据 (ios)
1120 1
|
存储 缓存 Windows
释放C盘空间:WinSXS文件夹真实性大小判断及释放占用空间
WinSXS文件夹存储了不同版本的系统组件和动态链接库(DLL),包括各个Windows更新、Service Pack和功能更新安装后保留的旧版文件。即使新版本已经安装并投入使用,旧版本文件仍被保存以确保与依赖旧版本的应用程序兼容。
2101 0
释放C盘空间:WinSXS文件夹真实性大小判断及释放占用空间
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
10300 1
|
PHP 开发者
slowlog 和 request_slowlog_timeout
slowlog 和 request_slowlog_timeout
527 4