Apache-UpnpImgBrowser
view release on metacpan or search on metacpan
# 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',
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 0.639 second using v1.01-cache-2.11-cpan-beeb90c9504 )