FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Percentage color change
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Percentage color change
Posted: Thu Jul 10, 2025 05:12 AM

Hi,

There is a base color (for example, green). I need to get 2 colors out of it. -

  1. on 20% lighter

  2. on 20% darker

How can I do this ?

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Percentage color change
Posted: Thu Jul 10, 2025 05:43 AM
PROCEDURE Main()
    LOCAL aBaseColor := { 0, 128, 0 }  // green
    LOCAL aLighter, aDarker

    aLighter := AdjustColor( aBaseColor[1], aBaseColor[2], aBaseColor[3], 0.2 )
    aDarker  := AdjustColor( aBaseColor[1], aBaseColor[2], aBaseColor[3], -0.2 )

    ? "Base Color:   ", aBaseColor
    ? "20% Lighter:  ", aLighter
    ? "20% Darker:   ", aDarker
RETURN

FUNCTION AdjustColor( nRed, nGreen, nBlue, nFactor )
    LOCAL nNewRed, nNewGreen, nNewBlue

    nNewRed   := Min( 255, Max( 0, nRed   + Int( nRed   * nFactor ) ) )
    nNewGreen := Min( 255, Max( 0, nGreen + Int( nGreen * nFactor ) ) )
    nNewBlue  := Min( 255, Max( 0, nBlue  * ( 1 + nFactor ) ) )

    RETURN { nNewRed, nNewGreen, nNewBlue }
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Percentage color change
Posted: Thu Jul 10, 2025 07:26 AM

Thanks more!

Continue the discussion