#!/usr/bin/perl -w
### Fun with bitmaps!
### Author: Gary Johnson

use strict;

die "Usage: pixflip.pl <input file> <output file>\n" if @ARGV != 2;

my @imgdata = ();
my @bmheader = ();

####################################################################

open (INFILE, "<$ARGV[0]") or die "Cannot read from $ARGV[0]: $!\n";
while (<INFILE>) { push(@imgdata, split(//, $_)); }
close (INFILE) or die "Cannot close $ARGV[0]: $!\n";

print "Bytes read in: ", scalar(@imgdata), "\n";

####################################################################

@bmheader[0..53] = @imgdata[0..53];
for (0..53) { shift @imgdata; }
while (@imgdata) { push(@bmheader, pop(@imgdata)); }


####################################################################

open (OUTFILE, ">$ARGV[1]") or die "Cannot write to $ARGV[1]: $!\n";
print OUTFILE join('', @bmheader);
close (OUTFILE) or die "Cannot close $ARGV[1]: $!\n";

print "Bytes written out: ", scalar(@bmheader), "\n";

####################################################################
