花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 26|回复: 13

颜色转换

[复制链接]
  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2025-11-20 19:36 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    颜色转换

    十六进制 : 点击生成随机颜色 RGB : 点击生成随机颜色 HSL : 点击生成随机颜色 十六进制转RGB RGB转十六进制 十六进制转HSL HSL转十六进制 RGB转HSL HSL转RGB HEX RGB HSL

    评分

    参与人数 2威望 +100 金钱 +200 经验 +100 收起 理由
    红影 + 50 + 100 + 50 赞一个!
    小辣椒 + 50 + 100 + 50 赞一个!

    查看全部评分

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-20 19:37 | 显示全部楼层
    源码

    1. <style>
    2.     .pa { margin: 10px auto; width: 740px; height: 740px; font-size: 16px; position: relative; }
    3.     #msvg { position: absolute; width: 100%; height: 90%; }
    4.     #msvg circle { cursor: pointer; }
    5.     #msvg text { font-size: 10px; text-anchor: middle; dominant-baseline: middle; }
    6.     #msvg line { cursor: pointer; stroke: silver; stroke-width: 4; }
    7.     .pa h1 { margin: 0; padding: 20px; font-size: 2em; text-align: center; }
    8. </style>

    9. <div id="pa" class="pa">
    10.     <h1 class="txtCenter">颜色转换</h1>
    11.     <svg id="msvg" viewBox="-200 -200 400 400">
    12.         <marker id="arrow" viewBox="0 0 5 5" refX="3.5" refY="2.5" markerWidth="3" markerHeight="3" orient="auto">
    13.             <path d="M 0 0 L 5 2.5 L 0 5 z" fill="gray" />
    14.         </marker>
    15.         <circle id="cHex" cx="-120" cy="-100" r="75" fill="transparent" stroke="silver">
    16.             <title>十六进制 : 点击生成随机颜色</title>
    17.         </circle>
    18.         <circle id="cRgb" cx="120" cy="-100" r="75" fill="transparent" stroke="silver">
    19.             <title>RGB : 点击生成随机颜色</title>
    20.         </circle>
    21.         <circle id="cHsl" cx="0" cy="100" r="75" fill="transparent" stroke="silver">
    22.             <title>HSL : 点击生成随机颜色</title>
    23.         </circle>
    24.         <line id="lHex2Rgb" x1="-10" y1="-110" x2="10" y2="-110" marker-end="url(#arrow)">
    25.             <title>十六进制转RGB</title>
    26.         </line>
    27.         <line id="lRgb2Hex" x1="10" y1="-90" x2="-10" y2="-90" marker-end="url(#arrow)">
    28.             <title>RGB转十六进制</title>
    29.         </line>
    30.         <line id="lHex2Hsl" x1="-80" y1="-10" x2="-70" y2="10" marker-end="url(#arrow)">
    31.             <title>十六进制转HSL</title>
    32.         </line>
    33.         <line id="lHsl2Hex" x1="-50" y1="10" x2="-60" y2="-10" marker-end="url(#arrow)">
    34.             <title>HSL转十六进制</title>
    35.         </line>
    36.         <line id="lRgb2Hsl" x1="70" y1="-10" x2="60" y2="10" marker-end="url(#arrow)">
    37.             <title>RGB转HSL</title>
    38.         </line>
    39.         <line id="lHsl2Rgb" x1="40" y1="10" x2="50" y2="-10" marker-end="url(#arrow)">
    40.             <title>HSL转RGB</title>
    41.         </line>

    42.         <text id="tHex" x="-120" y="0">HEX</text>
    43.         <text id="tRgb" x="120" y="0">RGB</text>
    44.         <text id="tHsl" x="0" y="190">HSL</text>
    45.     </svg>
    46. </div>

    47. <script type="module">
    48.     const getRanHex = () => `#${Math.random().toString(16).substring(2,8)}`;

    49.     const getRanRgb = () => {
    50.         const r = Math.floor(Math.random() * 256);
    51.         const g = Math.floor(Math.random() * 256);
    52.         const b = Math.floor(Math.random() * 256);
    53.         return `rgb(${r}, ${g}, ${b})`;
    54.     };

    55.     const getRanHsl = () => `hsl(${Math.floor(Math.random() * 361)}, 100%, 50%)`;

    56.     const HexColor2Rgb = (str) => {
    57.         const fullHex = (str) => {
    58.             let newStr = str.replace('#', '');
    59.             if (newStr.length === 3) {
    60.                 return newStr.split('').map(i => i.repeat(2)).join('');
    61.             }
    62.             return newStr;
    63.         };
    64.         const Hex2Dec = (str) => parseInt(str, 16);
    65.         const ar = fullHex(str).match(/.{2}/g).map(a => Hex2Dec(a));
    66.         return 'rgb(' + ar.join(', ') + ')';
    67.     };

    68.     const RgbColor2Hex = (str) => {
    69.         const regex = /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*([0-9.]+))?\s*\)/i;
    70.         const matches = str.match(regex);
    71.           if (!matches) return null;
    72.         let r = Math.min(255, Math.max(0, parseInt(matches[1], 10)));
    73.         let g = Math.min(255, Math.max(0, parseInt(matches[2], 10)));
    74.         let b = Math.min(255, Math.max(0, parseInt(matches[3], 10)));
    75.         const toHex = (n) => n.toString(16).padStart(2, '0');
    76.         let hex = `#${toHex(r)}${toHex(g)}${toHex(b)}`;
    77.         return hex;
    78.     };

    79.     const RgbColor2Hsl = (str) => {
    80.         const rgb2Hsl = (r, g, b) => {
    81.             r /= 255;
    82.             g /= 255;
    83.             b /= 255;
    84.             const max = Math.max(r, g, b);
    85.             const min = Math.min(r, g, b);
    86.             let h, s, l = (max + min) / 2;
    87.             if (max === min) {
    88.                 h = s = 0;
    89.             } else {
    90.                 const d = max - min;
    91.                 s = l > 0.5 ? d / (2 - max - min) : d /(max + min);
    92.                 switch (max) {
    93.                     case r: h = (g - b) / d + (g < b ? 6 : 0); break;
    94.                     case g: h = (b - r) / d + 2; break;
    95.                     case b: h = (r - g) / d + 4; break;
    96.                 }
    97.                 h /= 6;
    98.             }
    99.             return [h, s, l];
    100.         };

    101.         const regex = /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*([0-9.]+))?\s*\)/i;
    102.         const matches = str.match(regex);
    103.         if (!matches) return null;
    104.         let r = Math.min(255, Math.max(0, parseInt(matches[1], 10)));
    105.         let g = Math.min(255, Math.max(0, parseInt(matches[2], 10)));
    106.         let b = Math.min(255, Math.max(0, parseInt(matches[3], 10)));
    107.         const colors = rgb2Hsl(r, g, b);
    108.         const h = Math.round(colors[0] * 360);
    109.         const s = Math.round(colors[1] * 100) + '%';
    110.         const l = Math.round(colors[2] * 100) + '%';
    111.         return `hsl(${h}, ${s}, ${l})`;
    112.     };

    113.     const HslColor2Rgb = (str) => {
    114.         const hsl2Rgb = (h, s, l) => {
    115.             let r, g, b;
    116.             if(s === 0) {
    117.                 r = g = b = l;
    118.             } else {
    119.                 const hue2rgb = function hue2rgb(p, q, t) {
    120.                     if(t < 0) t += 1;
    121.                     if(t > 1) t -= 1;
    122.                     if(t < 1/6) return p + (q - p) * 6 * t;
    123.                     if(t < 1/2) return q;
    124.                     if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
    125.                     return p;
    126.                  }
    127.                 const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
    128.                 const p = 2 * l - q;
    129.                 r = hue2rgb(p, q, h + 1/3);
    130.                 g = hue2rgb(p, q, h);
    131.                 b = hue2rgb(p, q, h - 1/3);
    132.             }
    133.             return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
    134.         };

    135.         const regex = /hsla?\((\d+),\s*([\d.]+)%,\s*([\d.]+)%(\s*,\s*[\d.]+)?\)/i;
    136.         const matches = str.match(regex);
    137.         if (!matches) return null;
    138.         const h = parseInt(matches[1], 10) / 360;
    139.         const s = parseFloat(matches[2]) / 100;
    140.         const l = parseFloat(matches[3]) / 100;
    141.         const colors = hsl2Rgb(h, s, l);
    142.         const r = colors[0];
    143.         const g = colors[1];
    144.         const b = colors[2];
    145.         return `rgb(${r}, ${g}, ${b})`;
    146.     };

    147.     cHex.onclick = () => {
    148.         const color = getRanHex();
    149.         cHex.setAttribute('fill', color);
    150.         tHex.textContent = color;
    151.     }

    152.     cRgb.onclick = () => {
    153.         const color = getRanRgb();
    154.         cRgb.setAttribute('fill', color);
    155.         tRgb.textContent = color;
    156.     };

    157.     cHsl.onclick = () => {
    158.         const color = getRanHsl();
    159.         cHsl.setAttribute('fill', color);
    160.         tHsl.textContent = color;
    161.     };

    162.     lHex2Rgb.onclick = () => {
    163.         const color = HexColor2Rgb(tHex.textContent);
    164.         cRgb.setAttribute('fill', color);
    165.         tRgb.textContent = color;
    166.     };

    167.     lRgb2Hex.onclick = () => {
    168.         const color = RgbColor2Hex(tRgb.textContent);
    169.         cHex.setAttribute('fill', color);
    170.         tHex.textContent = color;
    171.     };

    172.     lRgb2Hsl.onclick = () => {
    173.         const color = RgbColor2Hsl(tRgb.textContent)
    174.         cHsl.setAttribute('fill', color);
    175.         tHsl.textContent = color;
    176.     };

    177.     lHsl2Rgb.onclick = () => {
    178.         const color = HslColor2Rgb(tHsl.textContent);
    179.         cRgb.setAttribute('fill', color);
    180.         tRgb.textContent = color;
    181.     };

    182.     lHsl2Hex.onclick = () => {
    183.         const color = RgbColor2Hex(HslColor2Rgb(tHsl.textContent));
    184.         cHex.setAttribute('fill', color);
    185.         tHex.textContent = color;
    186.     };

    187.     lHex2Hsl.onclick = () => {
    188.         const color = RgbColor2Hsl(HexColor2Rgb(tHex.textContent));
    189.         cHsl.setAttribute('fill', color);
    190.         tHsl.textContent = color;
    191.     };

    192.     window.onload = () => {
    193.         const hexColor = getRanHex();
    194.         const rgbColor = getRanRgb();
    195.         const hslColor = getRanHsl();
    196.         cHex.setAttribute('fill', hexColor);
    197.         tHex.textContent = hexColor;
    198.         cRgb.setAttribute('fill', rgbColor);
    199.         tRgb.textContent = rgbColor;
    200.         cHsl.setAttribute('fill', hslColor);
    201.         tHsl.textContent = hslColor;
    202.     };
    203. </script>
    复制代码


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-20 19:45 | 显示全部楼层
    .pa 选择器规范了 svg 的尺寸,所以本演示具备自适应高宽能力,只需设置好 .pa 选择器的 width 和 height 属性值。

    颜色的转换难度最大的是 hsl,由于颜色空间的体系不同,转换时会涉及到浮点数和三角函数运算,由于JS处理浮点数的天生缺陷,rgb - hsl 之间的往返转换会导致浮点数精准度的流失,特别是 hsl 转为 rgb 时表现明显,不过颜色效果人眼无法识别。

    本演示颜色转换的核心算法,有一部分使用或参考了开源的代码,这是允许的也是合理的。特此声明。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-20 19:50 | 显示全部楼层
    另外:

    一、演示代码已经支持对 hsl 的饱和度、亮度的支持,处于简化,演示固定了正常饱和度为 100%,亮度为 50%,s 和 l 的变化未参与到演示中。

    二、演示未处理颜色 alpha 通道,但所使用的匹配颜色表达式德尔正则均一纳入 alpha通道,需要时可以随时启用。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-25 21:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    1416

    主题

    6万

    回帖

    12万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    122271
    金钱
    766570
    经验
    1746822
    主题
    1416
    精华
    779
    在线时间
    2555 小时
    注册时间
    2018-7-8
    最后登录
    2025-11-20

    花潮美女多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀青草情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀男儿情怀鹰傲苍穹心香一瓣音画大师天籁妙音风雨同行我心永远喜乐安康中秋征文指尖上的流年花潮管理

    发表于 2025-11-20 23:05 | 显示全部楼层
    魔术一样
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-25 21:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    1416

    主题

    6万

    回帖

    12万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    122271
    金钱
    766570
    经验
    1746822
    主题
    1416
    精华
    779
    在线时间
    2555 小时
    注册时间
    2018-7-8
    最后登录
    2025-11-20

    花潮美女多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀青草情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀男儿情怀鹰傲苍穹心香一瓣音画大师天籁妙音风雨同行我心永远喜乐安康中秋征文指尖上的流年花潮管理

    发表于 2025-11-20 23:06 | 显示全部楼层
    马黑黑 发表于 2025-11-20 19:45
    .pa 选择器规范了 svg 的尺寸,所以本演示具备自适应高宽能力,只需设置好 .pa 选择器的 width 和 height  ...

    惊叹,代码的魔力
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-25 21:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    1416

    主题

    6万

    回帖

    12万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    122271
    金钱
    766570
    经验
    1746822
    主题
    1416
    精华
    779
    在线时间
    2555 小时
    注册时间
    2018-7-8
    最后登录
    2025-11-20

    花潮美女多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀青草情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀男儿情怀鹰傲苍穹心香一瓣音画大师天籁妙音风雨同行我心永远喜乐安康中秋征文指尖上的流年花潮管理

    发表于 2025-11-20 23:07 | 显示全部楼层
    马黑黑 发表于 2025-11-20 19:50
    另外:

    一、演示代码已经支持对 hsl 的饱和度、亮度的支持,处于简化,演示固定了正常饱和度为 100%,亮 ...

    先睡觉去了,明天抽时间再上来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1879

    主题

    32万

    回帖

    36万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    368852
    金钱
    76855
    经验
    6951834
    主题
    1879
    精华
    498
    在线时间
    11948 小时
    注册时间
    2016-10-2
    最后登录
    2025-11-21

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-11-20 23:53 | 显示全部楼层
    三种颜色可以相互转换,这个厉害了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1879

    主题

    32万

    回帖

    36万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    368852
    金钱
    76855
    经验
    6951834
    主题
    1879
    精华
    498
    在线时间
    11948 小时
    注册时间
    2016-10-2
    最后登录
    2025-11-21

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-11-21 00:01 | 显示全部楼层
    马黑黑 发表于 2025-11-20 19:50
    另外:

    一、演示代码已经支持对 hsl 的饱和度、亮度的支持,处于简化,演示固定了正常饱和度为 100%,亮 ...

    固定了饱和度和亮度也很不易了,否则需要考虑的更多了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-21 08:13 | 显示全部楼层
    红影 发表于 2025-11-21 00:01
    固定了饱和度和亮度也很不易了,否则需要考虑的更多了

    算法都已经集成了,这已经不是问题。

    主要演示页面的设计没有提供改变饱和度和亮度,使用的是正常情况下的颜色呈现,所以固定s和l分量
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-21 08:19 | 显示全部楼层
    红影 发表于 2025-11-20 23:53
    三种颜色可以相互转换,这个厉害了

    这是现在Web页最常用到的三种颜色表示法。Hex和RGB同属于一个颜色体系,二者的颜色转换仅需要在进制中完成便可;hsl是另外的颜色空转,和前二者间的换有些难度,需要掌握的原理很多很深(维基百科上有详细介绍换算方法),但在实际应用中它更好控制,也能产生出更多更细致的颜色,很多场景需要用到它。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-21 08:19 | 显示全部楼层
    小辣椒 发表于 2025-11-20 23:07
    先睡觉去了,明天抽时间再上来

    88
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-21 08:20 | 显示全部楼层
    小辣椒 发表于 2025-11-20 23:06
    惊叹,代码的魔力

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-21 08:10
  • 签到天数: 1646 天

    [LV.Master]伴坛终老

    3013

    主题

    12万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    性别
    保密
    积分
    280355
    金钱
    2591662
    经验
    3494900
    主题
    3013
    精华
    1217
    在线时间
    4137 小时
    注册时间
    2021-3-2
    最后登录
    2025-11-21

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-11-21 08:20 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-11-21 13:22 , Processed in 0.076585 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表