处理如何从颜色数组中获取最接近的颜色

问题描述 投票:0回答:1

我有int[]处理颜色(它包含重新缩放为1x1以获得“平均”颜色的图像颜色)。我有这个东西,必须检索我最接近数组的颜色:

public static int getNearestColor(int[] colors, int color) {
    return colors.stream()
        .min(Comparator.comparingInt(i -> Math.abs(i - color)))
        .orElseThrow(() -> new NoSuchElementException("No value present"));
}

但是,当我这样做时,它返回的颜色比输入的颜色更远[[远]],但是数组包含的颜色比输入的颜色更接近,this是我的问题,我不知道不明白吗?

我有一个int []处理颜色(它包含重新缩放为1x1以获得“平均”颜色的图像颜色)。我有这个东西必须检索我最接近的数组颜色:public static ...
java arrays colors processing
1个回答
0
投票
java中的数组没有流方法;也许您的意思是Arrays.stream(colors)IntStream除了自然顺序外,没有其他方法可以进行比较。您可以先映射到差异(abs(i - color)),但是现在您已删除了要查找的信息(原始颜色),因此也将不起作用。装箱吧。这将导致以下代码,该代码与您的代码完全一样,只不过此代码可以编译和运行。然后,我还将添加一个测试用例,使其成为一个独立的示例:
© www.soinside.com 2019 - 2024. All rights reserved.