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.
Perpustakaan Pine
Dalam semangat sebenar TradingView, penulis telah menerbitkan kod Pine ini sebagai perpustakaan sumber terbuka supaya pengaturcara Pine lain dari komuniti kami boleh menggunakannya semula. Sorakan kepada penulis! Anda juga boleh menggunakan perpustakaan ini secara peribadi atau dalam penerbitan sumber terbuka lain, tetapi penggunaan semula kod ini dalam penerbitan adalah tertakluk kepada Peraturan Dalaman.
Penafian
Perpustakaan Pine
Dalam semangat sebenar TradingView, penulis telah menerbitkan kod Pine ini sebagai perpustakaan sumber terbuka supaya pengaturcara Pine lain dari komuniti kami boleh menggunakannya semula. Sorakan kepada penulis! Anda juga boleh menggunakan perpustakaan ini secara peribadi atau dalam penerbitan sumber terbuka lain, tetapi penggunaan semula kod ini dalam penerbitan adalah tertakluk kepada Peraturan Dalaman.