#!/usr/bin/perl -w # RUN THIS ON A MACHINE WITH ImageMagick 6.x.x OR HIGHER # The -distort option is not available in older revs. # # Greg Ercolano 2008 # my $frm = 546; # start frame my $efrm = 1635; # end frame (-1 = entire range) my $filename = defined($ARGV[0]) ? $ARGV[0] : "out"; $ENV{SHELL} = "/bin/sh"; # force use of the bourne shell while ( 1 ) { my $in = sprintf("$filename-%04d.tga", $frm); my $tmp = "tmp.bmp"; my $tmp2 = "tmp2.bmp"; my $out = sprintf("$filename-persp-left-%04d.bmp", $frm); if ( $frm++ > $efrm && $efrm != -1 ) { print "--- REACHED SPECIFIED END FRAME $efrm\n"; exit(0); } if ( ! -r $in ) { print "--- NO MORE FRAMES\n"; exit(0); } print STDERR "Working on $out\n"; print STDERR " 1) Crop out a strip\n"; my $crop = "convert $in -crop 20x400+355+0 $tmp"; print STDERR " Executing: $crop\n"; if ( system($crop) != 0 ) { print STDERR "--- CROP FAILED\n"; exit(1); } print STDERR " 2) Perspective conversion..\n"; my $persp = "convert $tmp ". "-distort Perspective ". " '0,0 0,400 20,355 20,48 ". # input trapezoid " 0,0 0,400 20,400 20,0' ". # output image "$out"; print STDERR " Executing: $persp\n"; if ( system($persp) != 0 ) { print STDERR "--- PERSPECTIVE FAILED\n"; exit(1); } # print STDERR " 3) scale compress\n"; # my $scale = "convert $tmp2 -scale 50%x100%\! $out"; # print STDERR " Executing: $scale\n"; # if ( system($scale) != 0 ) # { print STDERR "--- SCALE FAILED\n"; exit(1); } # if ( $count++ > 10 ) { exit(0); } }