1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| int [] [] rgb1 = new int [this.img.getWidth ()] [this.img.getHeight ()];
int alpha, rgb;
float r, g, b;
Color clr;
float[] hsb;
double sat = 1, intens;
for (int i = 0; i < this.img.getWidth (); i++) {//for
for (int j = 0; j < this.img.getHeight (); j++) {//for
r = this.img.getColorModel ().getRed (this.img.getRGB (i, j));
g = this.img.getColorModel ().getGreen (this.img.getRGB (i, j));
b = this.img.getColorModel ().getBlue (this.img.getRGB (i, j));
intens = Math.sqrt ((0.241 * r) * (0.241 * r) + (0.691 * g) * (0.691 * g) + (0.068 * b) * (0.068 * b));
if (intens < 100 && intens > 0) {//if
intens /= 100;
/*r = Math.round (r * ( 1 + intens / 100));
g = Math.round (g * ( 1 + intens / 100));
b = Math.round (b * ( 1 + intens / 100));
rgb1 [i] [j] = (r << 16) + (g << 8) + b/* + this.img ().getColorModel ().getAlpha (this.img.getRgb () [i] [j])*/;
clr = new Color (this.img.getImg ().getRGB (i, j), true);
alpha = clr.getAlpha ();
hsb = Color.RGBtoHSB (clr.getRed(), clr.getGreen(), clr.getBlue(), null);
hsb[1] = (float) (hsb[1] * sat);
hsb[2] = (float) (hsb[2] * intens);
rgb = Color.HSBtoRGB (hsb[0], hsb[1], hsb[2]);
clr = new Color (rgb);
clr = new Color (clr.getRed(), clr.getGreen(), clr.getBlue(), alpha);
rgb1 [i] [j] = clr.getRGB ();
}//if
else
rgb1 [i] [j] = this.pn.getImg ().getRGB (i, j);
}//for
}//for |
Partager