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;
}