2016-02-07 20 views
5

Belirli bir görüntünün doygunluğunu Java'da değiştirmeye çalışıyorum. Zaten pikselin renk tonunu ve parlaklığını nasıl düzenleyeceğimi biliyorum, ama doygunluğun nasıl yapılacağını tahmin ediyorum. İşte bilmeniz gerekiyorsa, piksellerin her birinde dolaşmak için kullandığım döngü. Performans için iyi olmadığını biliyorum, ama geçicidir. Döngü: KısacasıJava Görüntü Doygunluğunu Değiştirin

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: 
     //????????????????????? 
    } 
} 

, bir pikselin doygunluğunu nasıl değiştirileceği emin değilim, ama nasıl olduğunu bilmek istiyorum. Yukarıda kullanıyorum döngü mükemmel çalışıyor, bu yüzden orada sorun yok. Teşekkürler! : D

+0

'image' için' class' nedir? –

+0

java.awt.image.BufferedImage kullanıyorum görüntü türüdür. –

cevap

1

Sen kullanabilirsiniz:

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

Teşekkürler, ahbap! : D –

+1

Kabul ettim: D –

İlgili konular