print "</table>\n\n";
}
- if (my $colours = $info->{list}) {
- if (my $reorder = $info->{ansiorder} and $get{v}) {
- $colours = [ map { $colours->[$_] =~ s/:|$/:$_/r } @{$reorder} ];
+ if (my $table = $info->{table}) {
+ print '<table class="color mapped">'."\n";
+ printf "<caption>%s</caption>\n", $caption;
+ for my $row (@$table) {
+ print '<tr>';
+ print colcell(@$_) for @$row;
}
+ print "</table>\n\n";
+ }
+
+ if (my $palette = $info->{list}) {
+ my $order = $get{order} && $get{order}.'order';
+ my $colours = colorder($palette,
+ $info->{$order} // $palettes->{ $info->{parent} }->{$order}
+ );
my $rows = 8;
- my $columns = ceil(@{$colours} / $rows);
+ my $columns = ceil(@{$palette} / $rows);
print '<table class=color>', "\n";
printf "<caption>%s</caption>\n", $caption;
}
}
- print "<tr><td colspan=$columns>", img_egapal(\@{$colours}, @{$_}) for @draw;
+ for (@draw) {
+ my $imgpal = colorder($palette,
+ $info->{ansiorder} // $palettes->{ $info->{parent} }->{ansiorder}
+ );
+ print "<tr><td colspan=$columns>", img_egapal($imgpal, @{$_});
+ }
print "</table>\n\n";
}
}
+sub colorder {
+ my ($palette, $reorder) = @_;
+ return [ map { $palette->[$_] =~ s/:(?![^:])|$/:$_/r } @{$reorder} ]
+ if $reorder;
+ return $palette;
+}
+
sub coltable_hsv {
my ($dim, $rgbval, $greyramp) = @_;
}
$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;
my $huerow = $colmap[0][0]; # first {$_} map { @{$_} } @colmap;
for my $h (grep { $huerow->[$_] } 0 .. $#{$huerow}) {
$out .= '<tr>';
- $out .= colcell(@$_) for map { $_->[$h] } map { @{$_} } @colmap;
+ $out .= colcell(@$_) for map { $_->[$h] } map { reverse @{$_} } @colmap;
}
if (@greymap) {