
This is a clutter-reduction step, separating the packaging and code-integrity checks from the stuff for maintaining mainline campaigns. I've also added documentation comments to some scripts.
68 lines
2.1 KiB
Perl
Executable file
68 lines
2.1 KiB
Perl
Executable file
#!/usr/bin/perl -w
|
|
|
|
if($#ARGV !=1){
|
|
die"TeamColorizer.pl input-file output-file\n";
|
|
}
|
|
$infilename=shift(@ARGV);
|
|
$outfilename=shift(@ARGV);
|
|
|
|
$team_red=255;
|
|
$team_green=0;
|
|
$team_blue=0;
|
|
$team_red_max=255;
|
|
$team_green_max=255;
|
|
$team_blue_max=255;
|
|
$team_red_min=0;
|
|
$team_green_min=0;
|
|
$team_blue_min=0;
|
|
|
|
$flag_rgb="244,154,193,63,0,22,85,0,42,105,0,57,123,0,69,140,0,81,158,0,93,177,0,105,195,0,116,214,0,127,236,0,140,238,61,150,239,91,161,241,114,172,242,135,182,246,173,205,248,193,217,250,213,229,253,233,241";
|
|
#$flag_rgb="236,0,140,244,154,193,63,0,22,85,0,42,105,0,57,123,0,69,140,0,81,158,0,93,177,0,105,195,0,116,214,0,127,238,61,150,239,91,161,241,114,172,242,135,182,246,173,205,248,193,217,250,213,229,253,233,241";
|
|
|
|
@flag=split(/,/,$flag_rgb);
|
|
|
|
if($#flag<3){die "error, flag_rgb not well defined";}
|
|
|
|
$base_red=$flag[0];
|
|
$base_green=$flag[1];
|
|
$base_blue=$flag[2];
|
|
$base_sum=$base_red+$base_green+$base_blue;
|
|
|
|
while($#flag>2){
|
|
$red=shift(@flag);
|
|
$green=shift(@flag);
|
|
$blue=shift(@flag);
|
|
$old_rgb=sprintf("%lx", $red*256*256+$green*256+$blue);
|
|
|
|
$sum=$red+$green+$blue;
|
|
if($sum<=$base_sum){
|
|
$ratio=$sum/$base_sum;
|
|
$new_red=$team_red*$ratio+$team_red_min*(1-$ratio);
|
|
$new_green=$team_green*$ratio+$team_green_min*(1-$ratio);
|
|
$new_blue=$team_blue*$ratio+$team_blue_min*(1-$ratio);
|
|
}else{
|
|
$ratio=$base_sum/$sum;
|
|
$new_red=$team_red*$ratio+$team_red_max*(1-$ratio);
|
|
$new_green=$team_green*$ratio+$team_green_max*(1-$ratio);
|
|
$new_blue=$team_blue*$ratio+$team_blue_max*(1-$ratio);
|
|
}
|
|
$new_red=sprintf("%d",$new_red);
|
|
$new_green=sprintf("%d",$new_green);
|
|
$new_blue=sprintf("%d",$new_blue);
|
|
$new_rgb=sprintf("%lx", $new_red*256*256+$new_green*256+$new_blue);
|
|
|
|
# print "red: $red\tgreen: $green\tblue: $blue\t$old_rgb\n";
|
|
# print "\tred: $new_red\tgreen: $new_green\tblue: $new_blue\t$new_rgb\n";
|
|
$fill_cmd="-fill \"#$new_rgb\" -opaque \"#$old_rgb\"";
|
|
# print "$fill_cmd\n";
|
|
push(@fill,$fill_cmd);
|
|
}
|
|
|
|
$convert="convert ";
|
|
foreach(@fill){
|
|
# print "$_";
|
|
$convert="$convert $_";
|
|
}
|
|
$convert = "$convert $infilename $outfilename";
|
|
print "$convert\n";
|
|
system($convert);
|