[Mapserver-users] Sending image to stdout under Apache
Joe Bussell
joe at otsys.com
Wed Mar 5 15:51:10 PST 2003
I like the idea, but I have not been able to reproduce your results. I
currently produce maps for TrafficDodger using the two-step temp file
technique. I would like to rip the image right to Apache. The
filehandle OUT is not defined in my system. I wonder what you have set,
or exported to get this to produce useful results. Have you declared an
output file?
If I write to STDOUT I get complaints "Use of uninitialized value in
null operation". It appears that $img->saveImage( undef,
$mapscript::MS_PNG, 1, 1, 95 ); is not returning anything useful for the
print call. Any ideas?
Is this dependent on the latest rev of Mapserver?
Cordially,
Joe Bussell
Lowell Filak wrote:
> Doh!
> That's what I get for being in a hurry.
> From what I've read:
> 1) You don't need binmode on *n*x.
> 2) You need to print to OUT as opposed to STDOUT or the content is shipped before the content-type.
> print OUT $ref_img->saveImage(undef, $mapscript::MS_PNG, $map->{transparent}, $map->{interlace}, 0);
> HTH
> Lowell F.
>
> The following message was sent by Eric Bridger <eric at gomoos.org> on 05 Mar 2003 10:57:23 +0000.
>
>
>>Thanks Lowell,
>>
>>Yes, that was the work-around I mentioned. But avoiding the write to
>>disk is what I am after. I have found that using /cgi-bin/mapserv as an
>>image engine results in significant performance improvements for our
>>mapscript application. But constructing the proper query strings to
>>manipulate the map is cumbersome and seems to have certain limitations.
>>I'd prefer to manipulate the map using mapscript and then print it to
>>the stdout. But somehow, using $img->saveImage(undef, ...) which spends
>>some time doing something, never sends the image to the stdout when run
>>as a CGI. From the command line, it works.
>>
>>We don't have this problem with a graphing application in the same
>>environment which uses GD.pm.
>>
>>
>>On Wed, 2003-03-05 at 15:27, Lowell Filak wrote:
>>
>>>Hmmm...
>>>I thought I replied back concerning that.?
>>>Just do a:
>>>print "Content-type: image/png\n\n";
>>>system("cat junk.png");
>>>and that will send the image to stdout/the browser.
>>>HTH
>>>Lowell F.
>>>
>>>The following message was sent by Eric Bridger <eric at gomoos.org> on 05 Mar 2003 08:59:12 +0000.
>>>
>>>
>>>>
>>>>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
>>>>
>>>>
>>>>_______________________________________________
>>>>Mapserver-users mailing list
>>>>Mapserver-users at lists.gis.umn.edu
>>>>http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>>>
>>>_______________________________________________
>>>Mapserver-users mailing list
>>>Mapserver-users at lists.gis.umn.edu
>>>http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>>>
>>
>>
>>_______________________________________________
>>Mapserver-users mailing list
>>Mapserver-users at lists.gis.umn.edu
>>http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>
>
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>
More information about the MapServer-users
mailing list