【发布时间】:2011-02-07 05:59:45
【问题描述】:
我目前正在研究颜色操作/选择等,并遇到了以下代码。我想知道有人可以告诉我以下代码在做什么,并为我分解它,谢谢!
$newVal = round(round(($rgb['red'] / 0x33)) * 0x33);
特别是什么是 0x33
谢谢您
【问题讨论】:
我目前正在研究颜色操作/选择等,并遇到了以下代码。我想知道有人可以告诉我以下代码在做什么,并为我分解它,谢谢!
$newVal = round(round(($rgb['red'] / 0x33)) * 0x33);
特别是什么是 0x33
谢谢您
【问题讨论】:
正如@Seth 所指出的,它将颜色四舍五入到最接近的“网络安全”颜色。这是一个古老的想法,可以追溯到大多数彩色显示器都是 8 位的时候。 Visibone 是使其流行的人之一,因为他们的“网络安全颜色图表”是他们的第一个产品。
更多信息请参见Web Colours。
【讨论】:
0x33 是 51,因此它将单个字节的 0-255 值缩放为 0-5,然后将其缩小。这导致该值被限制为低于该值的 51 的最高倍数。
【讨论】:
它似乎正在将$rgb['red'] 转换为最接近的 0x33 倍数。
可能是这样做的,所以颜色最终会出现在所谓的“网络安全”调色板中,它(如果我没记错的话)由 rgb 值是 0x33 倍数的颜色组成。
0x33 是 51(十进制)的 base-16(十六进制)表示。
【讨论】:
0x33 只是 33 的十六进制值。
我不太确定发生了什么,但我猜它会计算任何颜色的网络安全十六进制。或者类似的东西。
【讨论】: