私は色を取り、より暗い色を得たいと思っています。色は、Tcl で色に許可されている形式、つまり、tcl が色として認識するその他の形式のいずれかで指定できますblue
。#0000FF
これを行う方法はありますか?
必要なものの例として、色を取得するときに、赤、青、緑の値から定数 (または定数部分、つまり * 0.8) を減算して、同じ色のより暗い色合いにします。
色の RGB 値を取得するには、次を使用しますwinfo rgb
。
lassign [winfo rgb . $thecolor] r g b
残念ながら、返される値は 0 ~ 65535 の範囲です。それらを解析可能な色に再パックしたい場合は、いくつかの作業を行う必要があります。
set thecolor [format "#%02x%02x%02x" [expr {$r/256}] [expr {$g/256}] [expr {$b/256}]]
したがって、より暗い色を取得するには、次のようにします。
proc darker {color {ratio 0.8}} {
lassign [winfo rgb . $color] r g b
set r [expr {$r * $ratio}]
set g [expr {$g * $ratio}]
set b [expr {$b * $ratio}]
return [format "#%02x%02x%02x" \
[expr {int($r/256)}] [expr {int($g/256)}] [expr {int($b/256)}]]
}