Java如何处理像素颜色

Java如何处理像素颜色,java,colors,Java,Colors,int索引=0; 对于(int r=0;r

int索引=0;
对于(int r=0;r<6;r++){
对于(int g=0;g<6;g++){
对于(int b=0;b<6;b++){
int rr=r*255/5;
int gg=g*255/5;
int bb=b*255/5;

colors[index++]=rr前2位代码似乎使用数组将颜色存储为基本
256
数字,但只允许rgb分量是
51
的倍数。其余代码中不使用该数组

get
方法似乎可以将3位数的底色
10
数字转换为底色
6
数字

第三个代码块似乎有四种颜色(以3位数为基数
10
数字表示),将它们转换为基数
6
(出于某种原因),并将它们打包成单个
int


前半部分代码似乎与后半部分不相关。

前两位代码似乎使用一个数组来存储颜色作为基本
256
数字,但只允许是
51
倍数的rgb组件。该数组不用于代码的其余部分

get
方法似乎可以将3位数的底色
10
数字转换为底色
6
数字

第三个代码块似乎有四种颜色(以3位数为基数
10
数字表示),将它们转换为基数
6
(出于某种原因),并将它们打包成单个
int

代码的前半部分似乎与后半部分无关

private int[] colors = new int[6 * 6 * 6];
int index = 0;
for(int r = 0 ; r < 6 ; r++){
    for(int g = 0 ; g < 6 ; g++){
        for(int b = 0 ; b < 6 ; b++){
            int rr = r * 255 / 5;
            int gg = g * 255 / 5;
            int bb = b * 255 / 5;

            colors[index++] = rr << 16 | gg << 8 | b;
        }
    }
}
public static int getColor(int color1, int color2, int color3, int color4){
    return(get(color4) << 24 + get(color3) << 16 + get(color2) << 8 + get(color1));
}

private static int get(int color){
    if(color < 0) return 255;
    int r = color / 100 % 10;
    int g = color / 10 % 10;
    int b = color / 1 % 10;

    return r * 36 + g * 6 + b;
}