用于计算十六进制颜色的相反(“差异”)的公式

发布于 2024-09-08 06:46:45 字数 263 浏览 6 评论 0原文

如何创建十六进制颜色的相反颜色?例如,我想将 0x000000(黑色)转换为 0xFFFFFF(白色),或将 0xFF0000(红色)转换为 0x00FFFF(青色)。这些是相当基本的颜色,而颜色的变体可以具有更复杂的十六进制值,例如 0x21B813(绿色)。

为此需要按位运算符吗?也许每个数字的循环来计算它从 0 到 15 或 0 到 F 的镜像(0 变成 F,6 变成 9 等)

我正在使用 ActionScript,所以我几乎可以肯定这会做同样的事情Java 中的方式。

How can I create the opposite of a hexadecimal color? For example, I'd like to convert 0x000000 (black) into 0xFFFFFF (white), or 0xFF0000 (red) into 0x00FFFF (cyan). Those are rather basic colors, while variants of colors can have more complex hexadecimal values, such as 0x21B813 (greenish).

Are bitwise operators required for this? Maybe a loop of each digit to calculate it's mirror from 0 to 15, or 0 to F (0 become F, 6 becomes 9, etc.)

I'm using ActionScript, so I'm almost certain that this would be done the same way in Java.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

も星光 2024-09-15 06:46:45

正如蜘蛛侠所说,只需使用 0xFFFFFF - 颜色。

在 ActionScript 中,您可以执行以下操作:

public static function pad(str:String, minLength:uint, pad:String):String { 
    while (str.length < minLength) str = pad + str; 
    return str; 
} 

var color:Number=0x002233;
var hexColorStr:String = "#" + pad((0xFFFFFF-color).toString(16), 6, "0");

在 Java 中:

int color = 0x002233;
String hex = String.format("06X", (0xFFFFFF - color)); 

在 C# 中:

int color = 0x002233;
string hex = (0xFFFFFF - color).ToString("X").PadLeft(6, '0');

As Spidey says just use 0xFFFFFF - COLOR.

In ActionScript you would do something like:

public static function pad(str:String, minLength:uint, pad:String):String { 
    while (str.length < minLength) str = pad + str; 
    return str; 
} 

var color:Number=0x002233;
var hexColorStr:String = "#" + pad((0xFFFFFF-color).toString(16), 6, "0");

In Java:

int color = 0x002233;
String hex = String.format("06X", (0xFFFFFF - color)); 

In C#:

int color = 0x002233;
string hex = (0xFFFFFF - color).ToString("X").PadLeft(6, '0');
﹏雨一样淡蓝的深情 2024-09-15 06:46:45

只需执行 0xFFFFFF - 颜色即可。

Just do 0xFFFFFF - COLOR.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文