ASCII 颜色到十六进制颜色

问题描述 投票:0回答:3

我是一名老式 MUD 的构建者。我的任务是制作一个基于网络的房间/对象/移动编辑器。这对我来说不是问题,而且已经快完成了。我唯一的问题是色卡。我不知道如何将 ASCII 颜色从 Lope 的颜色系统转换为十六进制值以在 CSS 中使用。

例如,红色定义为:

#define C_RED       "\e[0;31m"  

我不确定如何将其以十六进制更改为红色以用于CSS,以及哪种色调(洛普的颜色系统中有两种红色色调。一种深色,一种浅色。大多数颜色相同)。

有人知道从一种转换为另一种的方法吗?

c++ hex mud
3个回答
0
投票

手动输入每个条目将是我的第一个猜测,除非您可以遵循控制台颜色的模式。


0
投票

我记得,这里只有 10 种“颜色”需要担心:

  • 红色
  • 绿色
  • 蓝色
  • 青色
  • 洋红色(紫色)
  • 黄色
  • 黑色
  • 白色

幸运的是,这些只是 RGB 系统中的原色和间色:

  • 红色:
    0xFF0000
  • 绿色:
    0x00FF00
  • 蓝色:
    0x0000FF
  • 青色:
    0x00FFFF
  • 洋红色(紫色):
    0xFF00FF
  • 黄色:
    0xFFFF00
  • 黑色:
    0x000000
  • 白色:
    0xFFFFFF

对于深色版本,尝试将每个字节减半为 7F


0
投票

您的示例是 4 位(16 色):

#define C_RED       "\e[0;31m"  

您可以通过 ascii 代码显示 24 位颜色,如下所示: 示例:

// Param 1: ForeGroundColor = 38, BackGroundColor = 48
// Param 2: 2 = 24 Bit, 5 = 8 Bit
// Param 3: R = 0-255
// Param 4: G = 0-255
// Param 5: B = 0-255

// Example of 24 bit Foreground Color Red = #FF0000:
\x1b[38;2;255;0;0m
© www.soinside.com 2019 - 2024. All rights reserved.