2016-02-07 55 views
5

私はJavaで特定の画像の彩度を変更しようとしています。私はすでにピクセルの色相と明るさを編集する方法を知っていますが、私はどのように彩度を行うのが難しいです。あなたがそれを知る必要があるならば、私は各ピクセルを循環するために私が使用するループです。私はそれがパフォーマンスには良くないと知っていますが、一時的です。 ループ:要するにJavaの画像の彩度を変更

for(int y = 0; y < height; y++) { 
    for(int x = 0; x < width; x++) { 
     int pixel = image.getRGB(x, y); 
     int r = (pixel >> 16) & 0xFF; 
     int g = (pixel >> 8) & 0xFF; 
     int b = (pixel) & 0xFF; 

     //Adjust saturation: 
     //????????????????????? 
    } 
} 

は、私は、画素の彩度を変更するかどうかはわかりませんが、私は方法を知りたいです。私が上で使用しているループは完全に動作しているので、問題はありません。ありがとう! :D

+0

'image'ための' class'とは何ですか? –

+0

java.awt.image.BufferedImageは、私が使用しているイメージのタイプです。 –

答えて

1

あなたが使用することができます。

int red = ...; 
int green = ...; 
int blue = ...; 

float[] hsb = Color.RGBtoHSB(red, green, blue, null); 

float hue = hsb[0]; 
float saturation = hsb[1]; 
float brightness = hsb[2]; 

/* then change the saturation... */ 

int rgb = Color.HSBtoRGB(hue, saturation, brightness); 

red = (rgb>>16)&0xFF; 
green = (rgb>>8)&0xFF; 
blue = rgb&0xFF; 
+1

ありがとう、おい! :D –

+1

私はそれを受け入れた:D –

関連する問題