使用java结合rgb通道和输出通道

时间:2014-07-11 11:42:16

标签: java visualization rgb bufferedimage

我已经输出了三个图像通道,但根据颜色显得不对

public class RGB {
   public static int getR(int pixel) {
       return(pixel >> 16  & 0xff);
   }

   public static int getG(int pixel) {
       return (pixel >> 8  & 0xff);
   }

   public static int getB(int pixel) {
       return (pixel & 0xff);
   }

   public static int combine(int r, int g, int b) {
       int rgb = (r << 16) | (g << 8) | b;
       return rgb;
   }
}

我换错了吗?我能做什么?

1 个答案:

答案 0 :(得分:0)

使用java.awt.Color类作为参考,他们改变了一些事情:

public int getRed(int pixel) {
    return (pixel >> 16) & 0xFF;
}

public int getGreen(int pixel) {
    return (pixel >> 8) & 0xFF;
}

public int getBlue(int pixel) {
    return (pixel >> 0) & 0xFF;
}

public static combine(int r, int g, int b) {
    return combine(r, g, b, 255);
}

public static combine(int r, int g, int b, int a) {
    return ((a & 0xFF) << 24) |
            ((r & 0xFF) << 16) |
            ((g & 0xFF) << 8)  |
            ((b & 0xFF) << 0);
}

我的基础是结合他们的构造函数。它有点不同,他们在不同的地方为他们的吸气者括号。