【问题标题】:Converting 0xFF to RGB value [closed]将 0xFF 转换为 RGB 值
【发布时间】:2012-10-29 04:56:14
【问题描述】:

我有一个用于 Java 应用程序的代码 sn-p,我正在尝试将 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(blue) 替换为红色的十六进制等效值 = 0xFF0000,我的画布什么也没画。我的代码来自这个例子:openprocessing.org/sketch/52388

【问题讨论】:

  • 你试过了吗?你有什么问题吗?
  • 我正在尝试将 0xFF 转换为除蓝色以外的其他颜色,如果我使用转换器让我们说红色,它等于 FF0000 的十六进制格式,这是行不通的。
  • 这有点像说您正在尝试将数字 2 转换为数字 3。目前尚不清楚您要完成什么。如果你想写一个不同的颜色:写一个不同的颜色。
  • @user813611:这更清楚了,谢谢。不过,您应该使用上面的这些改进来编辑问题。

标签: java rgb processing hex


【解决方案1】:

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

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    我不知道二进制数学,但我认为这就是正在做的事情

      buffer.pixels[i]  & 0xFF
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-24
      • 2013-05-10
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多