Apache-Gallery
view release on metacpan or search on metacpan
lib/Apache/Gallery.pm view on Meta::CPAN
$value = 1/(exp($value*log(2)));
if ($value < 1) {
$value = "1/" . (int((1/$value)));
} else {
$value = int($value*10)/10;
}
};
if ($@) {
$value = $@;
} else {
$value = $value . " sec";
}
}
}
}
if ($exif_key eq 'ApertureValue') {
if ($value =~ /^(\d+)\/(\d+)$/) {
$value = eval { $1 / $2 };
if ($@) {
$value = $@;
} else {
# poor man's rounding
$value = int(exp($value*log(2)*0.5)*10)/10;
$value = "f" . $value;
}
}
}
if ($exif_key eq 'FNumber') {
if ($value =~ /^(\d+)\/(\d+)$/) {
$value = eval { $1 / $2 };
if ($@) {
$value = $@;
} else {
$value = int($value*10+0.5)/10;
$value = "f" . $value;
}
}
}
$imageinfo->{$human_key} = $value;
}
}
if ($r->dir_config('GalleryUseFileDate') &&
($r->dir_config('GalleryUseFileDate') eq '1'
|| !$imageinfo->{"Picture Taken"} )) {
my $st = stat($file);
$imageinfo->{"DateTimeOriginal"} = $imageinfo->{"Picture Taken"} = scalar localtime($st->mtime) if $st;
}
return $imageinfo;
}
sub get_imageinfo_from_thm_file {
my ($file, $width, $height) = @_;
my $imageinfo = undef;
# Windows based file extensions are often .THM, so check
# for both .thm and .THM
my $unix_file = $file;
my $windows_file = $file;
$unix_file =~ s/\.(\w+)$/.thm/;
$windows_file =~ s/\.(\w+)$/.THM/;
if (-e $unix_file && -f $unix_file && -r $unix_file) {
$imageinfo = image_info($unix_file);
$imageinfo->{width} = $width;
$imageinfo->{height} = $height;
}
elsif (-e $windows_file && -f $windows_file && -r $windows_file) {
$imageinfo = image_info($windows_file);
$imageinfo->{width} = $width;
$imageinfo->{height} = $height;
}
return $imageinfo;
}
sub readfile_getnum {
my ($r, $imageinfo, $filename) = @_;
my $rotate = 0;
print STDERR "orientation: ".$imageinfo->{Orientation}."\n";
# Check to see if the image contains the Orientation EXIF key,
# but allow user to override using rotate
if (!defined($r->dir_config("GalleryAutoRotate"))
|| $r->dir_config("GalleryAutoRotate") eq "1") {
if (defined($imageinfo->{Orientation})) {
print STDERR $imageinfo->{Orientation}."\n";
if ($imageinfo->{Orientation} eq 'right_top') {
$rotate=1;
}
elsif ($imageinfo->{Orientation} eq 'left_bot') {
$rotate=3;
}
}
}
if (open(FH, "<$filename")) {
my $temp = <FH>;
chomp($temp);
close(FH);
unless ($temp =~ /^\d$/) {
$rotate = 0;
}
unless ($temp == 1 || $temp == 2 || $temp == 3) {
$rotate = 0;
}
$rotate = $temp;
}
return $rotate;
}
sub get_filecontent {
my $file = shift;
open(FH, $file) or return undef;
my $content = '';
{
local $/;
$content = <FH>;
}
close(FH);
return $content;
( run in 2.612 seconds using v1.01-cache-2.11-cpan-8f98c5d2c55 )