大家好,请教一个关于图像像素的问题,java中的BufferedImage 类有一个setRGB(x, y, rgb)的类,是用来设置图像某个点像素的的值,但是这个rgb值是个怎么样的值,如何把三原色十进制的值转化为rgb值,比如某点的R=203,G=125,B=178.怎样转化成一个RGB值?
求详解。

解决方案 »

  1.   

    RGB,不知道是不是这样算的:
    203转成十六进制的两位cb
    125转成十六进制的两位7b
    178转成十六进制的两位b2
    组成cb7bb2的整数值:13335474
      

  2.   

    看源码啊
        public int getRGB(Object inData) {
            return (getAlpha(inData) << 24)
                | (getRed(inData) << 16)
                | (getGreen(inData) << 8)
                | (getBlue(inData) << 0);
        }
      

  3.   

    不行的话再试试
    r*255*255+g*255+g
    看看这个帖子:http://topic.csdn.net/u/20101011/00/c5dea3a7-b430-4d2a-9570-f84095415c32.html
      

  4.   

    你好,谢谢你的解答,我用的java中BufferedImage类的getRGB(x,y)方法,得到的几组RGB的数值和三原色数值的对比,可以参考一下,不过里面的rgb数值是负数。
    RGB=-3685173
    (199,196,203),
    RGB=-2829864
    (212,209,216),
    RGB=-2105628
    (223,222,228)。
      

  5.   

    r*256*256+g*256+b
    这个就是我第一个回答的时候
    r,g,b都转成十六进制,然后转成整数
    255*256*256刚才就是16711680
    也就是FF0000转成整数值