[Mapserver-users] Sending image to stdout under Apache
    Eric Bridger 
    eric at gomoos.org
       
    Wed Mar  5 00:59:12 PST 2003
    
    
  
The list archives show that this came up last Dec.
(http://mapserver.gis.umn.edu/data2/wilma/mapserver-users/0212/msg00265.html) and while a work around was suggested there was no solution to the problem given, so I was wondering if anyone else had run into this problem. 
I'm having a problem using Perl mapscript $img->saveImage(undef, ...),
to send an image, PNG and/or JPEG, to the standard output under Apache. 
Running in /cgi-bin I have the following script: 
my $map = new mapscript::mapObj($ms_dir . "/test.map"); 
my $ref_img = $map->drawReferenceMap(); 
# This works fine: 
#$ref_img->saveImage("junk.png", $mapscript::MS_PNG,  
$map->{transparent}, $map->{interlace}, 0); 
print "HTTP/1.0 200 OK\n"; 
print "Content-type: image/png\r\n\r\n"; 
binmode STDOUT; 
# this produces no output on Apache's STDOUT 
$ref_img->saveImage("", $mapscript::MS_PNG, $map->{transparent},
$map->{interlace}, 0); 
$ref_img->free(); 
exit; 
>From the command line this script works as expected.  But when run under
Apache/mod_perl  it's as if the C msSaveImage() stdout stream is
pointing somewhere other than the Apache stdout (i.e. the client
browser). 
The work around of course is to save a disk file and then print it, but
the whole point of this is to avoid the temp. disk files.  I've noticed
a significant increase in performance when using mapserv as an image
engine rather then using temp disk files. 
Thanks. 
Eric 
Setup: 
Apache/1.3.26 (Unix) 
Mapserv 3.6.4 
mod_perl 1.22 
    
    
More information about the MapServer-users
mailing list