Hex String 转换成 Hex Unit

本文介绍如何将颜色的Hex RGB值(如#FF0000)转换为ActionScript中的Unit值,并用于graphics.beginFill方法进行图形填充。通过简单的代码示例,展示了这一转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们使用 graphics.beginFill(bgColor) 的时候,我们需要给它传递一个unit参数, 但通常情况下,我们并不熟悉color的unit值,而只知道color的Hex的RGB值,例如#FF0000。

 

这样,我们就需要将这RGB转化成unit。代码很简单:

 

 

unit i 是一个数字,如果trace它将得到 16711680。

在C++中,将`std::string`类型的十六进制字符串转换成`std::vector<uint8_t>`(通常称为byte数组),你可以按照以下步骤操作: 1. 首先,你需要读取`std::string`中的每个字符,判断它是否代表一个有效的十六进制数字(0-9, A-F, a-f)。如果不是,可能需要处理异常或者忽略错误。 2. 对于每一个有效的十六进制字符,将其转换成对应的十进制整数。对于'A'到'F',其值比'0'大6;同样'a'到'f'也是相同的规则。例如,'A'对应10,'B'对应11,以此类推。 3. 将得到的十进制数乘以16的相应次方(基于当前位置在十六进制字符串中的位置),然后将结果累加到目标`std::vector<uint8_t>`中。 4. 最后,将整个过程应用到所有有效字符上,生成的`std::vector<uint8_t>`就是原始十六进制字符串的二进制表示。 下面是一个简单的示例代码片段,假设`input_str`是待转换的十六进制字符串: ```cpp #include <iostream> #include <string> #include <vector> #include <cctype> std::vector<uint8_t> hexToBytes(const std::string &input_str) { std::vector<uint8_t> result; for (size_t i = 0; i < input_str.length(); ++i) { char c = input_str[i]; if ('0' <= c && c <= '9') { result.push_back(c - '0'); } else if ('a' <= c && c <= 'f') { result.push_back(c - 'a' + 10); } else if ('A' <= c && c <= 'F') { result.push_back(c - 'A' + 10); } else { // 如果遇到非十六进制字符,可以选择跳过或抛出异常 continue; } } return result; } int main() { std::string hexStr = "ffAB"; std::vector<uint8_t> bytes = hexToBytes(hexStr); for (uint8_t byte : bytes) { std::cout << static_cast<int>(byte) << " "; } // 输出二进制表示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值