Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2025, 18:38   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 685
По умолчанию Смена цвета на картинке

Вопрос больше касательно формул расчёта, чем самого программирования.

Задача такая: сменить цвет объекта на картинке. Допустим он был фиолетовым, а надо сделать его жёлтым. Но учитывая то что рисунок же не монотоннотонный, а используются разные оттенки - светлее-темнее, надо чтобы это сохранялось и в новом изображнении.

Просто сменить красный на синий - понятное дело - легко
Код:
b[i].rgbtRed:=a[i].rgbtBlue;
b[i].rgbtBlue:=a[i].rgbtRed
А вот как сделать так, когда изначальный цвет и новый цвет - оба имеют все значения RGB где-то между 0 и 255

Допустим начальный цвет 64 85 100, а нужно сменить на 128 62 34. Но при этом чтобы все оттенки которые где-то возле базового цвета - потянуть тоже
Kronos913 вне форума Ответить с цитированием
Старый 24.05.2025, 19:15   #2
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 194
По умолчанию

Первый способ, наверное, перевести базовый цвет в HSV или HSL, а в них близкие оттенки легко делаются. Потом обратно в RGB.
https://en.wikipedia.org/wiki/HSL_an...re_programming
https://stackoverflow.com/questions/...0-255-for-both
https://stackoverflow.com/questions/...ange-algorithm

Говорят что более прогрессивные цветовые пространства L*, u*, v* и L*, a*, b*, потому что они при преобразовании учитывают как человек видит цвета.
https://en.wikipedia.org/wiki/CIELUV
https://en.wikipedia.org/wiki/CIELAB_color_space
DeepFlake вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клик по картинке - смена фона Форсировка JavaScript, Ajax 6 16.01.2011 14:01
Смена цвета Krasi HTML и CSS 7 10.08.2010 19:00
Смена цвета. Stranger333 Общие вопросы Delphi 6 07.10.2009 21:14
Смена цвета в ListCtrl assasin Общие вопросы C/C++ 0 22.08.2009 01:13