Apache-UpnpImgBrowser

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
name:         Apache-UpnpImgBrowser
version:      0.01
version_from: UpnpImgBrowser.pm
installdirs:  site
requires:
    Cache::FileCache:              
    Data::Dumper:                  
    Image::Magick:                 
    LWP::Simple:                   
    Net::UPnP:                     
    SOAP::Lite:                    
    URI::Escape:                   
    XML::Simple:                   

distribution_type: module
generated_by: ExtUtils::MakeMaker version 6.17

Makefile.PL  view on Meta::CPAN

##
# Constants
##


my $NAME = 'Apache::UpnpImgBrowser';
my $VERSION_FROM = 'UpnpImgBrowser.pm';
my $COMPRESS = 'gzip';
my $SUFFIX = '.gz';
my $DEFAULT_PREREQ_PM = {
			  Image::Magick => '',
  			  Net::UPnP => '',
 			  SOAP::Lite => '',
  			  XML::Simple => '',
			  Data::Dumper => '',
			  Cache::FileCache => '',
			  URI::Escape => '',
			  LWP::Simple => '',
                        };

#my @NON_IPC_TESTS = ( 't/1_test.t',

README  view on Meta::CPAN

  Apache::UpnpImgBrowser

DESCRIPTION

Apache::UpnpImgBrowser is a simple mod_perl application for displaying photos. 
hosted on a UPNP DLNA compliant Media Server.  


REQUIREMENTS

  Image::Magick
  Net::UPnP
  SOAP::Lite 
  XML::Simple
  Data::Dumper
  Cache::FileCache
  URI::Escape
  LWP::Simple


INSTALLATION

UpnpImgBrowser.pm  view on Meta::CPAN


package Apache::UpnpImgBrowser;
use strict;
use Apache2;
use Apache::RequestRec;
use Apache::RequestIO;
use Apache::Const qw(:common HTTP_OK);
use Apache::Log;
use APR::Const qw(:filetype);
use APR::Finfo;
use Image::Magick ();
use DirHandle ();
use FileHandle ();
use File::Basename qw(fileparse);
use Net::UPnP::ControlPoint;
use Net::UPnP::AV::MediaServer;
use SOAP::Lite maptype => {}; 
use XML::Simple;
use Data::Dumper;
use POSIX qw(strftime);
use Cache::FileCache;

UpnpImgBrowser.pm  view on Meta::CPAN

       (jpg => 'image/jpeg', gif => 'image/gif', png => 'image/png');
    my ($name, $path, $ext) = fileparse($r->filename, qr{\.\w*$});
    my($w, $h) = split('x', $gOptions{'thumb-size'});

    $name =~ s/^\.//g;
    $path =~ s/\/$//g;
    $ext =~ s/^\.//g;
 
    (my $imgName = $name) =~ s/-thumb$//i;
    my($thumbName) = "$name.$ext";
    my($Img) = Image::Magick->new();
    my($tw, $th) = (0, 0);

    if(-f "$path/$thumbName") {
        ($tw, $th) = $Img->Ping("$path/$thumbName");
    }

    # build the thumbnail if it doesn't exist
    if( ($w != $tw && $h != $th) || $gOptions{'force'} ) {
        $Img->Read("$path/../$imgName.$ext");
        $Img->Resize(geometry=>"$gOptions{'thumb-size'}"); 

UpnpImgBrowser.pm  view on Meta::CPAN


    # only allow scaling to 25% and 200% of image size
    if($in{'scale'} < -75) { $in{'scale'} = -75 };
    if($in{'scale'} > 100) { $in{'scale'} = 100 };

    if(%in) {
       my($tmpfile) = "/tmp/$name." . time . ".$$.$ext";
      
       my $scale = $in{'scale'} + 100; 
 
       my($Img) = Image::Magick->new;
       $Img->Read($imgfile);
       $Img->Rotate(degrees=>$in{'rot'}) if($in{'rot'});
       $Img->Scale(geometry=>"${scale}%x${scale}%") if($in{'scale'});
       $Img->Write("$tmpfile");

       my($fh)  = FileHandle->new("$tmpfile");

       unless($fh) {
          $r->log_error("Couldn't open file '$tmpfile'");
          return SERVER_ERROR;



( run in 1.078 second using v1.01-cache-2.11-cpan-beeb90c9504 )