shell_pipe=set -o pipefail; set -e;
make_pnm = pnmdepth 255 | pnmnoraw $o
-pumpkin-books.ps: pumpkin-books.ps.pl bag.pgm pot.pgm
+pumpkin-books.ps: pumpkin-books.ps.pl bag.pgm pot.pgm droplet.ppm
./$< $o
pumpkin-books.pdf: pumpkin-books.ps
| pnminvert \
| $(make_pnm)
-droplet.pgm: droplet.svg Makefile
+droplet.ppm: droplet.svg Makefile
$(use_rsvg)
$(shell_pipe) \
pngtopnm <$@.tmp.png -mix -background 'white' \
- | pnmdepth 255
+ | pnmdepth 255 \
| $(make_pnm)
pubssh=c
my ($ncomps, $name) = @_;
my $ext = $ncomps == 1 ? 'pgm' : $ncomps == 3 ? 'ppm' : die;
+ my $oper = $ncomps == 1 ? 'image' :
+ $ncomps == 3 ? 'false 3 colorimage' : die;
+ my $magic = $ncomps == 1 ? 'P2' : $ncomps == 3 ? 'P3' : die;
open B, "$name.$ext" or die $!;
- <B> eq "P2\n" or die;
+ <B> eq "$magic\n" or die "$name.$ext expected $magic";
local $/ = undef;
my @d = split ' ', <B>;
close B;
$w $h 8
[ -$sz 0 0 -$sz $w 2 div $h 2 div ]
END
- for (my $i=0; $i< $w*$h; $i++) {
+ for (my $i=0; $i< $w*$h*$ncomps; $i++) {
printf "%02x", shift @d or die $!;
}
print <<END or die $!;
->} image
+>} $oper
} def
END
}
def_image(1, "bag");
def_image(1, "pot");
+def_image(3, "droplet");
print "gsave\n" or die $!;