X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/53beb697f81d7715d042af69374e599dceb3f8e0..40affe00ed4dbe9612e6c53c35444b7ecae7b079:/termcol.plp diff --git a/termcol.plp b/termcol.plp index 8d707ec..b3bb7b5 100644 --- a/termcol.plp +++ b/termcol.plp @@ -127,13 +127,11 @@ for my $term (@termlist) { print "\n\n"; } - if (my $colours = $info->{list}) { - if (my $reorder = $info->{ansiorder} and $get{v}) { - $colours = [ map { $colours->[$_] =~ s/:|$/:$_/r } @{$reorder} ]; - } + if (my $palette = $info->{list}) { + my $colours = colorder($palette, $get{v} && $info->{ansiorder}); my $rows = 8; - my $columns = ceil(@{$colours} / $rows); + my $columns = ceil(@{$palette} / $rows); print '', "\n"; printf "\n", $caption; @@ -149,11 +147,21 @@ for my $term (@termlist) { } } - print "
%s
", img_egapal(\@{$colours}, @{$_}) for @draw; + for (@draw) { + my $imgpal = colorder($palette, $info->{ansiorder}); + print "
", img_egapal($imgpal, @{$_}); + } print "
\n\n"; } } +sub colorder { + my ($palette, $reorder) = @_; + return [ map { $palette->[$_] =~ s/:|$/:$_/r } @{$reorder} ]; + if $reorder; + return $palette; +} + sub coltable_hsv { my ($dim, $rgbval, $greyramp) = @_; @@ -179,8 +187,9 @@ sub coltable_hsv { } $h = 1; # greyscale hue - $s = 1; # lowest saturation for other hues - $v = $s = $vmax if !$v; # black at full saturation + $s = $smax - $v + 1; # spread brightness over saturation groups + $v &&= $smax # highest saturation + or $v = $s = 1; # black at initial column } $h *= $hmax; @@ -197,7 +206,7 @@ sub coltable_hsv { my $huerow = $colmap[0][0]; # first {$_} map { @{$_} } @colmap; for my $h (grep { $huerow->[$_] } 0 .. $#{$huerow}) { $out .= ''; - $out .= colcell(@$_) for map { $_->[$h] } map { @{$_} } @colmap; + $out .= colcell(@$_) for map { $_->[$h] } map { reverse @{$_} } @colmap; } if (@greymap) {