
use strict;
$#ARGV == 1 or die "usage: perl latex2png.pl <eqn> <file>";

my $latex = $ARGV[0];
my $output = $ARGV[1];

my $temp_dir = "/tmp/";
my $latex_file = "temp.tex";
my $dvi_file = "temp.dvi";
my $eps_file = "temp.eps";
my $png_file = "temp.png";
my $png2_file = "temp2.png";
my $png3_file = "temp3.png";

sub cmd {
	my $s = "cd $temp_dir && " . $_[0];
	#print "$s\n";
	`$s`;
	return $?;
}

&cmd("echo '\\documentclass{article}' >$latex_file");
&cmd("echo '\\pagestyle{empty}' >>$latex_file");
&cmd("echo '\\begin{document}' >>$latex_file");
&cmd("echo '\\[' >>$latex_file");
&cmd("echo '$latex' >>$latex_file");
&cmd("echo '\\]' >>$latex_file");
&cmd("echo '\\end{document}' >>$latex_file");

if ( &cmd("cat /dev/zero | latex '\\scrollmode\\input{$latex_file}' 2>/dev/null") != 0 ) {
	die "bad function!";
}

&cmd("dvips -E -Ppdf -x 50000.0 $dvi_file -o $eps_file 2>/dev/null");
&cmd("convert $eps_file $png_file");
&cmd("convert -colorspace GRAY -negate $png_file $png2_file");
&cmd("convert -colorize 100 $png2_file $png3_file");
&cmd("convert -monochrome $png3_file $png_file");
&cmd("composite -compose CopyOpacity $png2_file $png_file $png3_file");

my $s = `convert -scale 3% $temp_dir$png3_file $output`;
print "$s\n";
`$s`;


