kaigouthro

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

kaigouthro 업데이트됨   
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: 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: 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: 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: 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.
파인 라이브러리

트레이딩뷰 정신에 따라 오써는 이 파인 코드를 오픈 소스 라이브러리로 퍼블리쉬하여 당사 커뮤니티의 다른 파인 프로그래머들이 쓸 수 있도록 하였습니다. 오써에게 찬사를! 여러분은 이 라이브러리를 프라이빗 또는 오픈 소스 퍼블리케이션에 쓸 수 있지만 퍼블리케이션에 재사용은 하우스룰을 따릅니다.

면책사항

이 정보와 게시물은 TradingView에서 제공하거나 보증하는 금융, 투자, 거래 또는 기타 유형의 조언이나 권고 사항을 의미하거나 구성하지 않습니다. 자세한 내용은 이용 약관을 참고하세요.

이 라이브러리를 쓰시겠습니까?

텍스트를 클립보드에 카피한 뒤 님의 스크립트에 붙여 넣기.