【问题标题】:Java Change Saturation Of ImageJava改变图像的饱和度
【发布时间】:2016-02-07 16:25:00
【问题描述】:

我正在尝试在 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

【问题讨论】:

  • image 对应的class 是什么?
  • java.awt.image.BufferedImage 是我正在使用的图像类型。

标签: java


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多