我学getPixel32()和位图和位图数据的类。基本上,我想知道如何输出从十六进制值的ARGB的一个简单的跟踪。

作为一个之外,我印象,我假设下很/希望是错误的,十六进制值不能产生尽可能多的颜色的RGBA值。或许是“网络安全”已抛出我了与理解的实用性或希望使用的颜色与十六进制值产生。

有帮助吗?

解决方案

要提取您必须用位运算符的工作颜色信息。色彩会保存像0xAARRGGBB所以你要提取的部分。小片段应该做的工作:

var hex: uint = 0x00ff00ff;
var a: int = (hex >>> 0x18) & 0xff;
var r: int = (hex >>> 0x10) & 0xff;
var g: int = (hex >>> 0x08) & 0xff;
var b: int = hex & 0xff;

trace(a, r, g, b);

根据您指定RGBA值的答案可能会改变。如果其中一个字节指定的每个通道使用RGBA值,你可以准确地表达尽可能多颜色的十六进制值。你的“十六进制值”是由4个字节的无符号整数。在Flash中也有其所以每个信道将被表示64位的consitsts一个8字节,而不是一个Number类型。你可以想像,你有更多的精度。然而,可能是你的屏幕设置为“真彩色(32位)”,将不能够显示很多颜色。你去甚至超越双精度(64位)和使用小数精度,其主要用于财务计算。每个值由128位,这使得每个信道的16个字节的。这使用十六进制表示时是16倍以上即可。当然,这是更精确,但如果显示器无法处理它。

一个侧面说明。您的图像大小也宽度高度频道*(每个通道字节)。所以,如果你每通道是使用一个字节的8位你已经足够的颜色。对于一个大的图像的差异是相当大的,如果你从8位到每信道32位。

一个1024×768图像用8位精度是3072KB而相同的32位的图像是12288kb在存储器中。同一幅图像将使用Flash的号码类型占用24576kb。所以,你可能与8位精度应该是足够在大多数情况下保持较好。

我希望帮助和你现在更好地理解,图像和它们的结构。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top