Что лучший способ состоит в том, чтобы составить в среднем два цвета, которые определяют линейный градиент?

Вы можете использовать потоки, которые сделают это за вас.

Например:

 maxLengthNickname = mentorList
                .stream()
                .mapToInt(mentor -> mentor.getNickname().getLength())
                .max();

Однако недостатком является то, что как в вашем примере, так и в этом случае вы будете повторять один и тот же цикл несколько раз.

Возможно, имеет больше смысла сделать один цикл и сделать их все внутри.

40
задан Ilmari Karonen 27 July 2015 в 14:42
поделиться

4 ответа

Смотрите на ответы на этот вопрос .

В основном, Вы хотите преобразовать цвета во что-то позвонившее пространство Лаборатории и найти их среднее число в том пространстве.

пространство Лаборатории является способом представить цвета, где точки, которые являются друг близко к другу, являются теми, которые выглядят подобными друг другу людям.

23
ответ дан Community 27 November 2019 в 01:43
поделиться

Усреднение в цветовое пространство HSL могло бы привести к лучшим результатам.

6
ответ дан mmcdole 27 November 2019 в 01:43
поделиться

Я не знаю, является ли взятие простого среднего числа компонентов "лучшим" с перцептивной точки зрения (который походит на вопрос для психолога), но вот несколько примеров с помощью простого усреднения компонента.

alt text

red-mustard-green каждый ужасен, но интерполяция кажется достаточно разумной.

6
ответ дан Spooky 27 November 2019 в 01:43
поделиться

Да. Можно насчитать два цвета вместе как этот. Это - подход, привыкший OpenGL к совмещенным цветам вместе (например, в создании mip карты для рендеринга удаленных объектов или рендеринга 50%-й прозрачной структуры). Это быстро, просто, и "достаточно хорошо" для многих ситуаций. Это не абсолютно реалистично, однако, и вероятно не использовалось бы на изображениях качества фотографии.

4
ответ дан Cybis 27 November 2019 в 01:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: