TradingView
kaigouthro
٤ أيلول سبتمبر ٢٠٢٢ ٢١:٢٣

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

FIL / TetherUS PERPETUAL CONTRACTBinance

الوصف

Library "hsvColor"
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

ملاحظات الأخبار

v2

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

ملاحظات الأخبار

new image for demo.

ملاحظات الأخبار

v4
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

ملاحظات الأخبار

v5
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

ملاحظات الأخبار

v6
Bugs Squished on out-of-boundaries input values.

ملاحظات الأخبار

v7

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:
var _col .... _col := switch _start == _end => _col => h.....(gradient here w/ start and end)


Have an indicator you wish to style? send me a message :)

ملاحظات الأخبار

v8

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.

ملاحظات الأخبار

v8

ملاحظات الأخبار

v10
fixed bug on crossing end of gradient value and beginning value which caused hue glitch.

thanks @NeonTL8

ملاحظات الأخبار

v11
update small to fix an otherwise non-noticed brightness glitch

ملاحظات الأخبار

v14

Sorry! accidental wrong version published ..
upgrades and nitpick fixes (0 hue transp cols)

ملاحظات الأخبار

v15

for found bug on pinned values on gradients when past limits and saturation is 0 on one and full on other.
التعليقات
theheirophant
beast mode bro, well done
kaigouthro
@theheirophant, demo of a few ways this can be used.. all of these use 9 sources, 9 hsv_gradients and 9 fills. invisible lots .
tradingview.com/chart/27m8rhCj/ :) you ever hear that old funky track "pink Cadillac" ? that's how i feel about charts. not necessarily the words..
loxx
absolutely love the colors
kaigouthro
@loxx, thank you very lots. i appreciate the encouragement. i got big bot script dreams in my heart, long way yet to reach the things i want to realize.
LucF
Great functions. Kudos!
kaigouthro
@LucF, Thank you, =) i have over 20,000 lines of code in 80 more libraries on deck. i am super stoked about what's coming next.. :)
BobbyBanksX
henyo.
PineCoders
KioseffTrading
Great job!
kaigouthro
@KioseffTrading, Thank you So Much!! If you're interested, i can invite you to a script for my private stuff. :)
المزيد