PhillipHuang has asked for the wisdom of the Perl Monks concerning the following question:

Hello folks, I am newbie to perl and now be very interested to perl. When I follow with GD sample (from #perldoc GD):
#!/usr/local/bin/perl use GD; # create a new image $im = new GD::Image(100,100); # allocate some colors $white = $im->colorAllocate(255,255,255); $black = $im->colorAllocate(0,0,0); $red = $im->colorAllocate(255,0,0); $blue = $im->colorAllocate(0,0,255); # make the background transparent and interlaced $im->transparent($white); $im->interlaced('true'); # Put a black frame around the picture $im->rectangle(0,0,99,99,$black); # Draw a blue oval $im->arc(50,50,95,75,0,360,$blue); # And fill it with red $im->fill(50,50,$red); # make sure we are writing to a binary stream binmode STDOUT; # Convert the image to PNG and print it on standard out +put print $im->gif;
and save it as "color.pl" and then try to run it in command line, while it is mess(binary files is printed). And I know i can open a filehandle to snap the output and then print it in X GUI, while my question is, is there any method to let GD draw in the command line mode? Thanks, Phillip

Replies are listed 'Best First'.
Re: Would GD draws in command line
by Anonymous Monk on Oct 26, 2010 at 16:02 UTC
    As command lines are typically text-based, you need to pass the image data to something that can handle it, e.g. ImageMagick's display command:

    $ ./youscript.pl | display -

    (In case there are issues with autodetecting the image format, you can say something like gif:- instead of just - (the dash stands for stdin). This prefixing is specific to ImageMagick, though)

Re: Would GD draws in command line
by zentara (Cardinal) on Oct 26, 2010 at 19:11 UTC
    is there any method to let GD draw in the command line mode?

    Assuming you want to just save it to file? Yes!

    Instead of printing to STDOUT, (like in a CGI program), you print to a file.

    open(OUTPUT, ">$0.gif") or die "Can't open $0.gif: $!\n"; print OUTPUT $image->gif(); close(OUTPUT);

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku ................... flash japh
Re: Would GD draws in command line
by choroba (Cardinal) on Oct 26, 2010 at 16:04 UTC