#!/usr/bin/perl
#
# strbuilder
#
# Copyright (c) 2000 Eric Shepherd
#
# Please don't distribute without my written permission.
#
# Generate GIF files from strings, using the
# Apple IIgs font - Now it's FAA Runway Signs.
#
use GD;
my $str = $::ARGV[0]; # first parameter is the string
my $path = $::ARGV[1]; # second parameter is the path
my $strlen = length($str);
my $imWidth = $strlen*20;
# Create the new image - always 415 pixels wide
my $im = new GD::Image(415, 35);
$black = $im->colorAllocate(0, 0, 0);
$im->fill(20, 35, $black);
# Scan the string
my $i = 0;
my $x = 3 + ($imWidth-20);
for ($i = 0; $i < $strlen; $i++) {
# figure out which image file to load
my $letter = chop($str);
my $imagenum = 0;
# if ($letter ge '@' && $letter le '_') {
# $imagenum = ord($letter) - 64;
# } elsif ($letter ge ' ' && $letter le '?') {
# $imagenum = ord($letter);
# } elsif ($letter ge '`' && $letter le '~') {
# $imagenum = ord($letter);
# }
$imagenum = ord($letter);
# read the letter image file
warn $imagenum;
next unless -f "normal/norm$imagenum.png";
open (PNG, "normal/norm$imagenum.png") || die "$!";
my $letterImage = newFromPng GD::Image(PNG) || die;
close PNG;
print ("Width: %s, Height: %s\n", $gd->width, $height);
# copy it into the new image
#copyResized(sourceImage,dstX,dstY,srcX,srcY,destW,destH,srcW,srcH) object method
#This method is similar to copy() but allows you to choose different sizes for the source and destination rectangles. The source and destination rectangle's are specified independently by (srcW,srcH) and (destW,destH) respectively. copyResized() will stretch or shrink the image to accomodate the size requirements.
$im->copyResized($letterImage, $x, 0, 0, 0, 20, 35, 20, 35);
$x = $x - 20;
}
# Write the output file
open (OUTF, "> $path") || die;
binmode OUTF;
print OUTF $im->png;
close OUTF;