0xV3NOMx
Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64



Your IP : 18.216.146.89


Current Path : /proc/thread-self/root/usr/bin/
Upload File :
Current File : //proc/thread-self/root/usr/bin/ppmrainbow

#!/usr/bin/perl -wl
#
# written by Arjen Bax
#
# Contributed to the public domain. This software is provided in
# the hope that it will be useful, but without warranty.


use strict;
use Getopt::Long;
use File::Temp "tempdir";

my ($FALSE, $TRUE) = (0,1);

(my $myname = $0) =~ s#\A.*/##;

my ($Twid, $Thgt, $tmpdir, $verbose);

# set defaults
$Twid = 600;
$Thgt = 8;
$verbose = $FALSE;

(my $usage = <<EOD ) =~ s/^\t//mg;
	Usage: $myname [ options ] color ...

	Creates a color bar with smoothly changing colors.

	Options:
	    -width	width of the color bar (default $Twid)
	    -height	height of the color bar (default $Thgt)
	    -tmpdir	working directory (default envar TMPDIR or \/tmp)
	    -verbose	echo shell commands to STDERR
EOD

GetOptions("width=i" => \$Twid,
           "height=i" => \$Thgt,
           "tmpdir=s" => \$tmpdir,
           "verbose!" => \$verbose);

die "invalid width and/or height\n" unless $Twid >= 1 && $Thgt >= 1;

my $verboseCommand = $verbose ? "set -x;" : "";

if (@ARGV < 1) {
    die("You must specify at least one color as an argument");
}

my $numcol = scalar @ARGV;
push @ARGV, $ARGV[0];

my $tempdir = tempdir("$myname.XXXXXXX", CLEANUP => 1)
    || die "Cant create tmpdir"; #219019
my @outlist = ();
my $n = 0;

while (@ARGV >= 2) {
    push @outlist, my $outfile = sprintf "%s/%03u.ppm", $tmpdir, $n;
    my $w = int(($Twid-1)/$numcol)+1;
    0 == system qq{$verboseCommand pgmramp -lr $w $Thgt | pgmtoppm "$ARGV[0]-$ARGV[1]" >$outfile}
	or exit 1;
    $Twid -= $w;
    $numcol--;
    $n++;
    shift @ARGV;
}

0 == system qq{$verboseCommand pnmcat -lr @outlist}
    or exit 1;

exit 0;

# no need to delete anything, as this is automatically done via tempdir