Tcl & Tk/팁 (Tip)

파스텔 컬러 변환

티클러 2025. 7. 18. 10:34

아래는 입력한 #RRGGBB 컬러를 파스텔 컬러로 변환하는 코드입니다.

proc pastelize {hex {ratio 0.2}} {
    if {[string index $hex 0] == "#"} {
        set hex [string range $hex 1 end]
    }

    if {[string length $hex] != 6} {
        error "The hex value must be 6 digits (#rrggbb)."
    }

    set r [expr 0x[string range $hex 0 1]]
    set g [expr 0x[string range $hex 2 3]]
    set b [expr 0x[string range $hex 4 5]]

    set r [expr {int($r * (1-$ratio) + 255 * $ratio)}]
    set g [expr {int($g * (1-$ratio) + 255 * $ratio)}]
    set b [expr {int($b * (1-$ratio) + 255 * $ratio)}]

    set hex [format "#%02X%02X%02X" $r $g $b]
    return $hex
}