44 lines
1.0 KiB
JavaScript
44 lines
1.0 KiB
JavaScript
// 工具函数
|
||
|
||
import {
|
||
description as appDesc,
|
||
} from '@package-json';
|
||
|
||
/** 将十六进制颜色值转为灰度值 */
|
||
export function colorHexToGrayLevel(hex = '') {
|
||
|
||
let rgb = colorHexToRgb(hex);
|
||
|
||
return Math.round(rgb.r * 0.299 + rgb.g * 0.587 + rgb.b * 0.114);
|
||
|
||
}
|
||
|
||
/** 将十六进制颜色值转为 RGB */
|
||
export function colorHexToRgb(hex = '') {
|
||
|
||
// 去除可能存在的 '#' 字符
|
||
hex = hex.replace('#', '');
|
||
|
||
// 检查十六进制颜色值的长度,并根据长度决定如何处理
|
||
if (hex.length === 3) {
|
||
// 如果是简写形式,如 #FFF,需要将其转换为完整形式 #FFFFFF
|
||
hex = hex.split('').map(char => char + char).join('');
|
||
}
|
||
|
||
// 分别解析出红色、绿色和蓝色的值
|
||
let r = parseInt(hex.slice(0, 2), 16);
|
||
let g = parseInt(hex.slice(2, 4), 16);
|
||
let b = parseInt(hex.slice(4, 6), 16);
|
||
|
||
return { r, g, b };
|
||
|
||
}
|
||
|
||
/**
|
||
* @description 更新页面标题
|
||
* @param {string} title
|
||
*/
|
||
export function updateAppTitle(title = '') {
|
||
document.title = (title ? `${title} - ${appDesc}` : appDesc);
|
||
}
|