插件窝 干货文章 使用 Bash 制作 Web 安全颜色

使用 Bash 制作 Web 安全颜色

颜色 values 安全 Web 551    来源:    2025-04-15

使用 Bash 生成 Web 安全颜色

Web 安全颜色是指那些在 256 色显示器上显示时不会抖动的颜色,由 00、33、66、99、CC 和 FF 组成的十六进制 RGB 值。以下是几种使用 Bash 生成 Web 安全颜色的方法:

方法1:生成所有 Web 安全颜色

#!/bin/bash

# 定义 Web 安全颜色的十六进制值
values=("00" "33" "66" "99" "CC" "FF")

# 生成所有可能的组合
for r in "${values[@]}"; do
  for g in "${values[@]}"; do
    for b in "${values[@]}"; do
      echo "#$r$g$b"
    done
  done
done

这将生成 6×6×6=216 种 Web 安全颜色。

方法2:随机选择 Web 安全颜色

#!/bin/bash

# Web 安全颜色值
values=("00" "33" "66" "99" "CC" "FF")

# 随机选择 RGB 分量
random_color() {
  local r=${values[$RANDOM % 6]}
  local g=${values[$RANDOM % 6]}
  local b=${values[$RANDOM % 6]}
  echo "#$r$g$b"
}

# 生成10个随机 Web 安全颜色
for i in {1..10}; do
  random_color
done

方法3:带颜色预览的 Web 安全颜色生成器

#!/bin/bash

values=("00" "33" "66" "99" "CC" "FF")

# 使用 ANSI 转义序列显示颜色
show_color() {
  local hex=$1
  # 转换为 RGB 十进制值
  local r=$((16#${hex:1:2}))
  local g=$((16#${hex:3:2}))
  local b=$((16#${hex:5:2}))

  printf "\e[48;2;%d;%d;%dm      \e[0m %s\n" $r $g $b "$hex"
}

# 生成并显示所有 Web 安全颜色
for r in "${values[@]}"; do
  for g in "${values[@]}"; do
    for b in "${values[@]}"; do
      show_color "#$r$g$b"
    done
  done
done

方法4:按亮度排序的 Web 安全颜色

#!/bin/bash

values=("00" "33" "66" "99" "CC" "FF")

# 计算颜色亮度 (0-255)
calculate_brightness() {
  local r=$((16#$1))
  local g=$((16#$2))
  local b=$((16#$3))
  echo $(( (r*299 + g*587 + b*114) / 1000 ))
}

# 生成所有颜色并计算亮度
declare -a colors
for r in "${values[@]}"; do
  for g in "${values[@]}"; do
    for b in "${values[@]}"; do
      brightness=$(calculate_brightness "$r" "$g" "$b")
      colors+=("$brightness #$r$g$b")
    done
  done
done

# 按亮度排序并输出
printf "%s\n" "${colors[@]}" | sort -n | cut -d' ' -f2

使用技巧

  1. 可以将这些脚本保存为 .sh 文件并添加执行权限:

    chmod +x web_safe_colors.sh
    ./web_safe_colors.sh
    
  2. 要保存颜色列表到文件:

    ./web_safe_colors.sh > web_colors.txt
    
  3. 在网页开发中,可以将这些颜色用于 CSS 或 HTML 颜色选择器。

Web 安全颜色在现代显示器上已不像过去那么重要,因为大多数设备现在都支持数百万种颜色,但在某些特殊场景下(如终端应用或低端设备)仍然有用。