Я экспериментировал с примером Change HUE/Saturation
, найденным на веб-сайте EFG: http://www.efg2.com/Lab/Library/Delphi/Graphics /Color.htm
Я хочу использовать методы, найденные в этом примере, для изменения значений цвета некоторых растровых изображений (для использования в TImage). Есть одна проблема, с которой я сталкиваюсь, и это с TImages, которые имеют прозрачные растровые изображения; Я не хочу, чтобы цвет фона менял свой оттенок, а просто фактические данные изображения.
Возьмите этот образец изображения, с которым мы можем работать (хотя можно использовать любое изображение с прозрачностью):
Change HUE/Saturation
по ссылке вверху.Некоторые выходные результаты:
Здесь я хотел бы сохранить исходный цвет фона (определяемый крайним нижним левым пикселем) и отрегулировать оттенок только для остальной части изображения. Таким образом, результаты вывода на самом деле будут выглядеть следующим образом (отредактировано в Paint.NET):
Позвольте мне использовать для тестирования другой образец изображения, который содержит больше данных изображения:
Как и в случае с первым образцом изображения, результаты может быть что-то вроде:
Когда желаемые результаты должны быть такими:
У меня была идея после изменения ОТТЕНКА заменить крайний левый нижний цвет цветом из оригинала, но я не уверен, что это правильный подход или нет, и даже если это так, я не уверен, как заменить цвет X на другой цвет. (Графика и математика выше моего понимания).
Например, если я нарисовал два круга синего цвета на ухе Микки (синий был исходным прозрачным цветом от нижнего левого крайнего пикселя), а также покрасил его глаза:
Повторное изменение ОТТЕНКА может выглядеть так:
когда на самом деле это должно быть так:
Проще говоря, я хотел бы изменить оттенок изображения, будь то методы, используемые в демонстрации EFG, или другое решение. Прозрачный цвет, определяемый самым нижним левым пикселем, не должен изменяться при изменении оттенка, он должен оставаться таким же, как показано на примерах изображений.
Как изменить оттенок растрового изображения, сохранив цвет фона?