将0xFF转换为RGB值

时间:2012-11-08 21:53:09

标签: java rgb processing hex

我有一段代码片段我用于Java应用程序,我试图将0xFF的十六进制值替换成蓝色等不同的颜色,最好用RGB值表示,这可能吗?

void trailBlurEffect(int blendAmount, PGraphics buffer) {
   for (int i = 0, y = 0; y < buffer.height; y++) {
     for (int x = 0; x < buffer.width; x++, i++) {
       buffer.pixels[i] = 0xff000000 | (( buffer.pixels[i]  & 0xFF) * blendAmount) >> 8;
     }
   }
   nodeBuffer.updatePixels();
}

编辑: 我试图写一个不同的颜色但是我无法得到一个有效的结果,例如用十六进制等效的红色代替0xFF(蓝色)= 0xFF0000我的画布什么都没画。我的代码来自这个例子:openprocessing.org/sketch/52388

2 个答案:

答案 0 :(得分:1)

目前还不清楚你想要完成什么。 RGB颜色以三个不同的数字给出:红色,绿色和蓝色值。每个值的范围为0 - 255. 0xFF不是RGB值,它是表示其中一种颜色的值。要获得完整的RGB颜色,您必须使用类似0xFF0000的颜色。所以不,你不能神奇地将0xFF变成蓝色,你也必须知道其他颜色的值。你可以接受三个值,然后从那里制定颜色,IE接受rValue,gValue和bValue,然后将它们全部粘在一起以获得经典的RGB​​格式0xRRGGBB。

希望这有帮助!

答案 1 :(得分:1)

我不知道二进制数学,但我认为这是在

中完成的
  buffer.pixels[i]  & 0xFF

0xFF是要应用于buffer.pixels [i]的掩码。所以这不是你获得所需颜色的方式。您可以尝试在draw()中的ellipse()之前调用fill(wantedColor),但正如作者在您指向的页面中说的那样,对于路径他只使用蓝色通道我认为路径仍然是蓝色。