> Christian Bolstad wrote:
> > On Sun, 21 Dec 2003, Andrew Gaffney wrote:
> > 
> >>I think I've fixed this, too. It looks like it was some 
> weird caching 
> >>issue with Apache and mod_perl. I renamed the script and it works 
> >>correctly every time now. Thank you for the suggestion to use 
> >>stringTTF() or stringFT() to generate the text. I was able 
> to use the 
> >>array returned by it to center the text in the middle of 
> the generated 
> >>image. Thanks.
> > 
> > would you care to share your complete code? i just want it for some 
> > benchmarking to compare it with other ways to output random 
> text nifty 
> > to a image :)

Just curiouse as to why you'd want to replace a png with a gif?
Why no just keep the png and ditch the gif, whats their faces want 
to charge you for using gif format anyway.

> 
> #!/usr/bin/perl
> 
> use GD;
> use CGI;
> use Image::Magick;
> 
> my $im = new GD::Image(61,20);
> my $cgi = new CGI;
> my $text = $cgi->param('text');
> 
> $white = $im->colorAllocate(255,255,255);
> $black = $im->colorAllocate(0,0,0);
> $gray = $im->colorAllocate(132,132,132);
> $blue = $im->colorAllocate(206,206,255);
> # Different shades of blue are to give it a slightly more 3D 
> effect $leftblue = $im->colorAllocate(231,231,255); 
> $bottomblue = $im->colorAllocate(165,165,206); $rightblue = 
> $im->colorAllocate(123,123,156); $topblue = 
> $im->colorAllocate(214,214,255);
> 
> $im->transparent($white);
> $im->interlaced('true'); 
> $im->filledRectangle(0,0,60,19,$white); # Transparent 
> background $im->filledRectangle(3,3,60,19,$gray); # Draw gray 
> "shadow" rectangle $im->filledRectangle(0,0,57,16,$blue); # 
> Draw blue foreground rectangle 
> $im->rectangle(0,0,57,16,$white); # Make blue rectangle 
> border transparent $im->line(1,0,56,0,$topblue); 
> $im->line(57,1,57,15,$rightblue); $im->line(1,16,56,16,$bottomblue);
> $im->line(0,1,0,15,$leftblue);
> # Determine size of generated text in order to center it on 
> the blue rectangle my @bounds = 
> GD::Image->stringFT($black,"/share/skyline-src/arialnb.ttf",9,
> 0,0,0,$text);
> $im->stringFT($black,"/share/skyline-src/arialnb.ttf",9,0,((57
> -$bounds[2])/2),13,$text);
> 
> # Write image to temporary PNG file
> open IMAGE, "> /tmp/genbutton.png";
> binmode IMAGE;
> print IMAGE $im->png;
> close IMAGE;
> # Convert image to GIF file
> my $image = new Image::Magick; $image->Read('/tmp/genbutton.png');
> srand;
> my $filernd = int(rand 999);
> my $file = "/home/httpd/htdocs/genbutton-${filernd}.gif";
> $image->Write($file);
> print $cgi->header;
> print <<EOF;
> <html>
> <body>
> <h3>A button has been generated with the text "${text}". It 
> has been saved to the file 
> "${file}". It is also shown below.</h3>
> <p>
> <img src='/genbutton-${filernd}.gif'>
> </body>
> </html>
> EOF
> 
> -- 
> Andrew Gaffney
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED] 
<http://learn.perl.org/> <http://learn.perl.org/first-response>



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to