#!/usr/bin/perl -w

#This makes a PPM out of an RGBA, throwing away the alpha channel like
#yesterday's newspaper. 

die "Usage: genMIFFfromRGBA.pl <input RGBA raw> <output PPM> <width> <height>\n" unless $#ARGV==3;

$in = shift;
$out = shift;
$width = shift;
$height = shift;

open(INFILE, "<$in") or die "Can't open $in: $!";
open(OUTFILE, ">$out") or die "Can't open $out: $!";

syswrite( OUTFILE, "id=ImageMagick\n ");
syswrite( OUTFILE, "class=DirectClass  matte=True\n" );
syswrite( OUTFILE, "columns=$width  \nrows=$height \ndepth=8\n"  );
syswrite( OUTFILE, "iterations=0\n" );
syswrite( OUTFILE, ":" );
syswrite( OUTFILE, (pack("C", 10 ) ), 1 );

while( read(INFILE, $byte, 4) != 0 ) {
    
    $r = vec($byte, 0, 8);
    $g = vec($byte, 1, 8);
    $b = vec($byte, 2, 8);
    $a = vec($byte, 3, 8);

#    printf ( "%d, ", $rgb);
#    printf ("%d, ", $r);

    syswrite( OUTFILE, (pack("C", $r ) ), 1 );
    syswrite( OUTFILE, (pack("C", $g ) ), 1 );
    syswrite( OUTFILE, (pack("C", $b ) ), 1 );
    syswrite( OUTFILE, (pack("C", $a ) ), 1 );
}
close INFILE;
close OUTFILE;
