739 proc auto_mix_colors {color type diff} {
746 if {[
set odiff [
expr 255 - ($r + $diff)]] >= 0} {
749 set d [
expr abs($odiff) / 2]
751 set g [
expr (($g - $d) > 0) ? ($g - $d) : 0]
752 set b [
expr (($b - $d) > 0) ? ($b - $d) : 0]
756 if {[
set odiff [
expr 255 - ($g + $diff)]] >= 0} {
759 set d [
expr abs($odiff) / 2]
761 set r [
expr (($r - $d) > 0) ? ($r - $d) : 0]
762 set b [
expr (($b - $d) > 0) ? ($b - $d) : 0]
766 if {[
set odiff [
expr 255 - ($b + $diff)]] >= 0} {
769 set d [
expr abs($odiff) / 2]
771 set r [
expr (($r - $d) > 0) ? ($r - $d) : 0]
772 set g [
expr (($g - $d) > 0) ? ($g - $d) : 0]
777 return [
format {#%02x%02x%02x} $r $g $b]