[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