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