首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StageXL和颜色值

StageXL和颜色值
EN

Stack Overflow用户
提问于 2014-03-08 21:25:27
回答 2查看 385关注 0票数 1

我试图设置一个任意颜色选择器,以获取要传递给Graphics.fillColor()的值。

该方法的签名是“动态fillColor(int颜色)”,因此颜色似乎不是RGB/RGBA,而是一些整数。Color类为这些值定义了一组常量,但我希望能够使用用户在我的颜色选择器中选择的任何颜色。

我尝试使用以下过程从RGB转换为十六进制:

代码语言:javascript
复制
String r_hex_str   = p_rbg_color_lst[0].toRadixString(16); //to hexadecimal
String g_hex_str   = p_rbg_color_lst[1].toRadixString(16);
String b_hex_str   = p_rbg_color_lst[2].toRadixString(16);
String rgb_hex_str = '0x$r_hex_str$g_hex_str$b_hex_str';

int color_rgb_int = int.parse(rgb_hex_str);

return color_rgb_int;

但是fillColor()方法并没有对新的颜色参数做出反应。为了举例说明,上面的过程以100,145,185作为颜色RGB三重奏,输出6590905作为整数输出。

StageXL.Color.Red常数为4294901760

6590905和4294901760的长度不一样,这告诉我我使用的algo是错误的.

有什么想法吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-09 00:40:09

它似乎使用额外的两个字节来存储alpha值。因此,您需要修改代码以添加以下内容:

代码语言:javascript
复制
String a_hex_str   = 255.toRadixString(16); // 255 is ff, or fully opaque
String r_hex_str   = p_rbg_color_lst[0].toRadixString(16); 
String g_hex_str   = p_rbg_color_lst[1].toRadixString(16);
String b_hex_str   = p_rbg_color_lst[2].toRadixString(16);
String rgb_hex_str = '0x$a_hex_str$r_hex_str$g_hex_str$b_hex_str';

int color_rgb_int = int.parse(rgb_hex_str);

return color_rgb_int;

这为输入100,145,185提供了4284780985。

票数 2
EN

Stack Overflow用户

发布于 2014-10-01 07:31:34

StageXL中的颜色存储为ARGB整数。如果您查看十六进制格式的值(如: 0xFFAABBCC ),则会更容易。这个值意味着alpha = 0xFF,red = 0xAA,green = oxBB,blue = 0xCC。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22275294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档