libreccm-legacy/ccm-iaw-aplaws/doc/docs-stuff/img2eps

64 lines
1.2 KiB
Perl

#!/usr/bin/perl
#
#
# convert image to Encapsulated Postscript, with possible scaling of width
#
# Example: img2eps --width=3 myfile.gif
# (width in inches)
#
$width = "";
if ($ARGV[0] =~ /^--width=(.+)$/) {
$width = $1;
shift (@ARGV);
}
#print "width =",$width,"\n";
#print "argv =",$ARGV[0],"\n";
$infile = $ARGV[0];
if (!(-e $infile)) {
print "File doesn't exist\n";
exit 1;
}
$imagesz = `identify $ARGV[0]`;
($name, $type, $size, $rest) = split / /, $imagesz, 4;
#print "split:", $name, " ", $type, " ", $size, " ", $rest, "\n";
#print "size = ",$size,"\n";
($x, $y) = split /x/, $size, 2;
($y, $rest) = split /\+/, $y, 2;
#print $x," by ",$y, "\n";
#
# if width set, we need to scale
#
if ($width != "") {
$scale = $width * (72.0/$x);
} else {
$scale = 1;
}
$scale = 72.0/$scale;
#print "scale = ",$scale,"\n";
$tmpfile = $infile;
$tmpfile =~ s/\.gif/\.ept/;
$outfile = $infile;
$outfile =~ s/\.gif/\.eps/;
#print $infile," ",$outfile,"\n";
system("convert $infile tmpimage.pgm");
#system("giftopnm $infile | ppmtopgm > tmpimage.pgm");
system("convert -density $scale tmpimage.pgm $tmpfile");
system("mv -f $tmpfile $outfile");
system("rm -f tmpimage.pgm");