X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=NDWeb%2FImage.pm;fp=NDWeb%2FImage.pm;h=792f1ce629cbbab997b311a2ffa3ca2602b82966;hb=d6c9085e748c4d61901aaea72f0e1546dcc7cdda;hp=0000000000000000000000000000000000000000;hpb=ac65e241f748773959b94d66691ee93019fcae84;p=ndwebbie.git diff --git a/NDWeb/Image.pm b/NDWeb/Image.pm new file mode 100644 index 0000000..792f1ce --- /dev/null +++ b/NDWeb/Image.pm @@ -0,0 +1,50 @@ +#************************************************************************** +# Copyright (C) 2006 by Michael Andreen * +# * +# This program is free software; you can redistribute it and/or modify * +# it under the terms of the GNU General Public License as published by * +# the Free Software Foundation; either version 2 of the License, or * +# (at your option) any later version. * +# * +# This program is distributed in the hope that it will be useful, * +# but WITHOUT ANY WARRANTY; without even the implied warranty of * +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# GNU General Public License for more details. * +# * +# You should have received a copy of the GNU General Public License * +# along with this program; if not, write to the * +# Free Software Foundation, Inc., * +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * +#**************************************************************************/ + +package ND::Web::Image; +use strict; +use warnings; + +use base qw/ND::Web::Page/; + + +sub render { + my $self = shift; + + my $img; + eval { + $img = $self->render_body; + }; + if (defined $img){ + if ((my $rc = $self->{R}->meets_conditions) != Apache2::Const::OK){ + $self->{R}->status($rc); + }else{ + $self->{R}->headers_out->set(Content_Length => length $img); + $self->{R}->content_type('image/png'); + $self->{R}->rflush; + binmode STDOUT; + print $img; + } + }elsif(defined $@){ + $self->{R}->content_type('text/plain'); + print $@; + } +}; + +1;