C#: Создайте более легкий/более темный цвет на основе системного цвета

Подумайте, это то, что вы ищете: Как вызвать функцию JavaScript из PHP?

Файл PHP на стороне сервера - да, так что Javascript зависит от того, что вы делаете с Это. PHP может абсолютно выполнить скрипт Javascript в своем основном .php-файле. Вы просто не можете нигде включать в свою программу, как раньше.

Ниже приведен пример запуска сценария Javascript, который просто предупреждает браузер о строке «pong». Обратите внимание, как выполняется оператор PHP.

Мы могли бы быть более полезными, если вы опубликовали полный код и очень эффективно и подробно объяснили, на что вам нужно было ответить.

Скопируйте и вставьте этот код в файл PHP самостоятельно, чтобы вы могли без каких-либо ошибок протестировать ваш полный код: index.php







57
задан Community 23 May 2017 в 10:31
поделиться

5 ответов

ControlPaint .Light .Dark .DarkDark и т. Д.

Color lightRed = ControlPaint.Light( Color.Red );
97
ответ дан 24 November 2019 в 19:13
поделиться

Вот код JavaScript, который я использую для осветления / затемнения данного цвета. Вы можете использовать его в качестве основы для эквивалентной функции C #

. Она работает путем вычисления расстояния от чистого белого каждого из компонентов RGB, а затем корректирует это расстояние с помощью предоставленного коэффициента. Новое расстояние используется для расчета нового цвета. Коэффициент от 0 до 1 темнеет, коэффициент выше 1 светлее

function Darken( hexColor, factor )
    {   
        if ( factor < 0 ) factor = 0;

        var c = hexColor;
        if ( c.substr(0,1) == "#" )
        {
            c = c.substring(1);
        }

        if ( c.length == 3 || c.length == 6 )
        {
            var i = c.length / 3;

            var f;  // the relative distance from white

            var r = parseInt( c.substr(0, i ), 16 );
            f = ( factor * r / (256-r) );
            r = Math.floor((256 * f) / (f+1));

            r = r.toString(16);
            if ( r.length == 1 ) r = "0" + r;

            var g = parseInt( c.substr(i, i), 16);
            f = ( factor * g / (256-g) );
            g = Math.floor((256 * f) / (f+1));
            g = g.toString(16);
            if ( g.length == 1 ) g = "0" + g;

            var b = parseInt( c.substr( 2*i, i),16 );
            f = ( factor * b / (256-b) );
            b = Math.floor((256 * f) / (f+1));
            b = b.toString(16);
            if ( b.length == 1 ) b = "0" + b;

            c =  r+g+b;
         }   

         return "#" + c;

    }
4
ответ дан 24 November 2019 в 19:13
поделиться

Использование библиотеки HSI Converter (поиск в Google). Затем настройте I-канал на более светлый / темный цвет.

0
ответ дан 24 November 2019 в 19:13
поделиться

Взгляните на класс ControlPaint:

MSDN: члены ControlPaint

0
ответ дан 24 November 2019 в 19:13
поделиться

Вы также можете сделать это с помощью функции Lerp . Он есть в XNA, но его легко написать самому.

См. мой ответ на этот аналогичный вопрос для реализации C #.

Функция позволяет вам сделать это:

// make red 50% lighter:
Color.Red.Lerp( Color.White, 0.5 );

// make red 75% darker:
Color.Red.Lerp( Color.Black, 0.75 );

// make white 10% bluer:
Color.White.Lerp( Color.Blue, 0.1 );
13
ответ дан 24 November 2019 в 19:13
поделиться
Другие вопросы по тегам:

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