HSV and HSL gradient Tools ( Built-in Drop-in replacement )

HSV and HSL Gradient Tool Alternatives and helpers. Demo'd is built-in in the middle with HSL/HSV gradients on top/bottom
TODO: Solve for #000000 issue
rgbhsv(_col)
RGB Color to HSV Values
Parameters:
_col: Color input (#abc012 or color.name or color.rgb(0,0,0,0))
Returns: [h,s,v,a] values
rgbhsv(_r, _g, _b, _t)
RGB Color to HSV Values
Parameters:
_r: Red 0 - 255
_g: Green 0 - 255
_b: Blue 0 - 255
_t: Transp 0 - 100
Returns: [h,s,v,a] values
hsv(_h, _s, _v, _a)
HSV colors, Auto fix if past boundaries
Parameters:
_h: Hue Input (-360 - 360) or further
_s: Saturation 0.- 1.
_v: Value 0.- 1.
_a: Alpha 0.- 1.
Returns: Color output
hue(_col)
returns 0-359 hue on color wheel
Parameters:
_col:
Returns: 360 degree hue value
hsv_gradient(signal, _startVal, _endVal, _startCol, _endCol)
Color Gradient Replacement Function for HSV calculated Gradents
Parameters:
signal: Control signal
_startVal: start color limit
_endVal: end color limit
_startCol: start color
_endCol: end color
Returns: HSV calculated gradient
hsl_gradient(signal, _startVal, _endVal, _startCol, _endCol)
Color Gradient Replacement Function for HSV calculated Gradents
Parameters:
signal: Control signal
_startVal: start color limit
_endVal: end color limit
_startCol: start color
_endCol: end color
Returns: HSV calculated gradient
hsl/inv Upgrades..
Added:
rgbhsl(_col)
HSL vals from rgb col in
Parameters:
_col: The Color
Returns: HSLA tuple out
hsl(h, s, l)
HLS input to color output
Parameters:
h: hue
s: saturation
l: lightness
Returns: The RGB Color
relativeluminance(color)
Parameters:
color: (hex,rgb,color.___)
return float
hsvInvert(_color)
Invert a color with hsv method (original experimental)
Parameters:
_color: color input
Returns: inverted color
hslInvert(_color)
Invert a color with hsl method (original experimental)
Parameters:
_color: color input
Returns: inverted color
UPDATED
Rewrote HSL chain and fixed problems with out of limit values
should be bulletproofed now and is faster than it was
thanks @NeonTL8 for notifying me of the problem.
Library "hsvColor"
HSV and HSL Gradient Tool Alternatives
rgbhsv(_col)
RGB Color to HSV Values
Parameters:
_col: Color input (#abc012 or color.name or color.rgb(0,0,0,0))
Returns: [h,s,v,a] values
rgbhsv(_r, _g, _b, _t)
RGB Color to HSV Values
Parameters:
_r: Red 0 - 255
_g: Green 0 - 255
_b: Blue 0 - 255
_t: Transp 0 - 100
Returns: [h,s,v,a] values
hsv(_h, _s, _v, _a)
HSV colors, Auto fix if past boundaries
Parameters:
_h: Hue Input (-360 - 360) or further
_s: Saturation 0.- 1.
_v: Value 0.- 1.
_a: Alpha 0.- 1.
Returns: Color output
hue(_col, _rotate)
returns 0-359 hue on color wheel
Parameters:
_col:
_rotate: Turn output by N degrees (+/-)
Returns: 360 degree hue value
rgbhsl(_col)
HSL vals from rgb col in
Parameters:
_col: The Color
Returns: HSLA tuple out
hsl(h, s, l)
HLS input to color output
Parameters:
h: hue
s: saturation
l: lightness
Returns: The RGB Color
relativeluminance(color)
Parameters:
color: (hex,rgb,color.___)
Returns: float
hsvInvert(_color)
Invert a color with hsv method (original experimental)
Parameters:
_color: color input
Returns: inverted color
hslInvert(_color)
Invert a color with hsl method (original experimental)
Parameters:
_color: color input
Returns: inverted color
hsv_gradient(signal, _startVal, _endVal, _startCol, _endCol)
Color Gradient Replacement Function for HSV calculated Gradents
Parameters:
signal: Control signal
_startVal: start color limit
_endVal: end color limit
_startCol: start color
_endCol: end color
Returns: HSV calculated gradient
hsl_gradient(signal, _startVal, _endVal, _startCol, _endCol)
Color Gradient Replacement Function for HSV calculated Gradents
Parameters:
signal: Control signal
_startVal: start color limit
_endVal: end color limit
_startCol: start color
_endCol: end color
Returns: HSV calculated gradient
upgrades, bugfixes
Added:
hslimit(_h, _s, _vl, _a)
Parameters:
_h: h input to limit signals before using color.
_s: s input to limit signals before using color.
_vl: v input to limit signals before using color.
_a: a input to limit signals before using color.
bright(col)
Calculate Brightness Level of color.
Parameters:
col: (hex,rgb,color.___)
Returns: float brightness level
tripswitch(_color, _th, _colora, _colorb)
Switch between colors based on Color Brightness
Parameters:
_color: color control signal
_th: threshold for switch between colors
_colora: if below threshold (default white)
_colorb: if above threshold (default black)
Returns: Contrasting color switched by input control color
Bugs Squished on out-of-boundaries input values.
For those interested in the color math, renamed all variables.
minified version available if requested/required
Also moved gradient calc to function from calc library,
on 0 distance between start and end it will default to first color.
i suggest iff you want to maintain on cross, use this:
abbv versio:
Have an indicator you wish to style? send me a message :)
Added two Helpful tools for creating multileveled colors
Current (nov 2022) Demo image is 100% original non-standard indicators, an same script with different sources and parameters..
built minimal using these two new tools, and 8 fills with 9colors each layer fades to a gradient of the last.
fixed bug on crossing end of gradient value and beginning value which caused hue glitch.
thanks @NeonTL8
Sorry! accidental wrong version published ..
upgrades and nitpick fixes (0 hue transp cols)
for found bug on pinned values on gradients when past limits and saturation is 0 on one and full on other.
Faster. Way faster.
Optimized a bunch, Fast as i can get it.
Bibliothèque Pine
Dans le plus pur esprit TradingView, l'auteur a publié ce code Pine en tant que bibliothèque open-source afin que d'autres programmeurs Pine de notre communauté puissent le réutiliser. Bravo à l'auteur! Vous pouvez utiliser cette bibliothèque en privé ou dans d'autres publications à code source ouvert, mais la réutilisation de ce code dans des publications est régie par nos Règles.
Clause de non-responsabilité
Bibliothèque Pine
Dans le plus pur esprit TradingView, l'auteur a publié ce code Pine en tant que bibliothèque open-source afin que d'autres programmeurs Pine de notre communauté puissent le réutiliser. Bravo à l'auteur! Vous pouvez utiliser cette bibliothèque en privé ou dans d'autres publications à code source ouvert, mais la réutilisation de ce code dans des publications est régie par nos Règles.