chiark / gitweb /
wip ppm
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 26 Oct 2021 23:48:58 +0000 (00:48 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 26 Oct 2021 23:48:58 +0000 (00:48 +0100)
Makefile
pumpkin-books.ps.pl

index bb1412345c7e5f471041fac19fe6031d03c0efbf..69a2f7caaff2415fc23ab7bed15ff1043461df89 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ use_rsvg=rsvg-convert -f png -o $@.tmp.png $<
 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
@@ -34,11 +34,11 @@ pot.pgm: 146_Kaldrono.svg Makefile
        | 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
index dbeace468420ee30a97aaff5b33c5130af805136..9927a18b526ae4cb55a0ebbadd4f8a8b1628cb43 100755 (executable)
@@ -711,9 +711,12 @@ sub def_image ($$) {
   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;
@@ -731,17 +734,18 @@ sub def_image ($$) {
   $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 $!;