+
+my $bitmap;
+
+if ( $magic eq 'P4' ) {
+ local $/ = undef;
+ $bitmap = <$fh>;
+} elsif ( $magic eq 'P6' ) {
+ my $max_color = <$fh>; chomp $max_color;
+
+ my $trashold = $max_color / 2;
+
+ local $/ = undef;
+ my $rgb = <$fh>;
+
+ my $mask = 0x80;
+ my $byte = 0;
+
+ my $o = 0;
+ while ( $o < length($rgb) ) {
+ my $px = ord(substr($rgb,$o,1)); $o += 3;
+ $byte ^= $mask if $px < $trashold;
+ $mask >>= 1;
+ if ( ! $mask ) {
+ $bitmap .= chr($byte);
+ $byte = 0;
+ $mask = 0x80;
+ }
+ }
+
+ warn dump $bitmap;
+
+} else {
+ die "$pnm_file magick $magic not supported\n";
+}
+