【问题标题】:A bit number of Color channel of RGB, ARGB and RGBARGB、ARGB 和 RGBA 颜色通道的位数
【发布时间】:2014-04-05 20:22:09
【问题描述】:

这是来自wiki的颜色通道位数的顺序 ARGB and RGBA

但与其他网站的顺序不同

哪个是正确的??

RBG的顺序怎么样???

【问题讨论】:

    标签: java colors rgb rgba argb


    【解决方案1】:

    维基百科的图片:

    描述了 little-endian 架构上 32 位 ARGB 整数的字节布局。

    而您问题中的图片对应于相同ARGB 整数的big-endian 布局。

    所以,答案是:两张图片都是正确的,它们只是在内存中的位寻址方面考虑了不同的架构。

    你应该关心的是,不管字节顺序如何,ARGBA 是 32 位值的最高有效字节,R 在第二个最高有效字节, ... 和 B 可以作为最低有效字节找到。

    因此,无论您是什么类型的“endian”平台,您都可以通过相应的位移操作正确提取它们。

    编辑 实际上,您的问题中的图片对我来说似乎很奇怪,因为它以相反的顺序显示ARGB 字节(即使正确寻址它们)。我建议您坚持使用维基百科中的图表来避免混淆。

    回答您的评论:与 TYPE_INT_RGB 相比,Java 的 TYPE_INT_BGRrgb 颜色进行了反转编码,请参阅 java.awt.image.BufferedImage.java

    case TYPE_INT_BGR:
             {
                 colorModel = new DirectColorModel(24,
                                                       0x000000ff,   // Red
                                                       0x0000ff00,   // Green
                                                       0x00ff0000    // Blue
                                                       );
    

    使用哪一个取决于您的需要,但我猜您可以使用 RGBARGB

    希望有帮助

    【讨论】:

    • 在Java api中,有两个TYPE_INT_BGR和TYPE_INT_RGB。两者顺序不同??
    • 我更新了我的答案。是的,这些类型有不同的顺序。我建议你坚持使用最广泛的RGBARGB
    猜你喜欢
    • 2017-06-29
    • 2011-01-04
    • 1970-01-01
    • 2012-12-13
    • 2016-02-19
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多