Album
view release on metacpan or search on metacpan
script/album view on Meta::CPAN
# CLP0nnnn.GIF clip motion file
# CLP0nnnn.HTM clip motion file index
# MBL0nnnn.GIF clip motion file, mobile mode
# MBL0nnnn.HTM clip motion file index, mobile mode
# MOV0nnnn.MPG movie
# Files marked with * have a normal still image associated.
# Normal still image.
if ( $file =~ /^(.{4})(\d{4})\.($picpat)$/i ) {
my ($type, $seq, $ext) = ($1, $2, $3);
my $fd = $el->xDateTime || "";
if ( $fd =~ /(\d\d\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)/ && $2 != 0) {
my $time = timelocal($6,$5,$4,$3,$2-1,$1);
my $new = "$1$2$3$4$5$6$seq";
my $ii = cache_entry("$new.$ext");
if ( $ii && !$ii->orig_name ) {
$ii->orig_name(fjoin($import_dir, $file));
}
$el->type(T_JPG);
$el->dest_name("$new.$ext");
script/album view on Meta::CPAN
$el->assoc_name($t);
$implist->add($el);
return 1;
}
$implist->add($el);
}
# MPEG movie.
elsif ( $file =~ /^(.{4})(\d{4})\.($movpat)$/i ) {
my ($type, $seq, $ext) = ($1, $2, $3);
my $new = $el->xDateTime;
if ( $new && $new =~ /(\d\d\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)/ && $2 != 0 ) {
$new = "$1$2$3$4$5$6$seq";
}
else {
# We have to trust the file date...
my $time = $el->timestamp;
my @tm = localtime($time);
$new = sprintf("%04d%02d%02d%02d%02d%02d$seq",
1900+$tm[5], 1+$tm[4], @tm[3,2,1,0]);
}
script/album view on Meta::CPAN
sub restyle_exif($) {
my ($el) = @_;
my $ret = "";
my $v;
my $app = sub {
$ret .= "<tr><td>".htmln($_[0])."</td>".
"<td>".htmln($_[1])."</td></tr>\n";
};
$app->("Date", $v) if $v = $el->xDateTime;
my $t = $el->ExposureTime || 0;
# if ( $t && $t <= 0.5 ) {
# $t = "1/".int(0.5 + 1/$t)."s";
# }
$app->("Exposure",
join(" ", $el->ExposureMode || "",
$el->ExposureProgram || "", $t)) if $t;
$app->("Aperture", sprintf("%.1f", $v))
if $v = $el->FNumber;
if ( $v = $el->FocalLength ) {
script/album view on Meta::CPAN
my @exif_fields;
my $exif_rot;
INIT {
@std_fields = qw(type seq next prev hidden
dest_name orig_name assoc_name
timestamp file_size medium_size
tag description annotation
rotation mirror);
@exif_fields = qw(DateTime DateTimeOriginal ExifImageLength ExifImageWidth
ExposureMode ExposureProgram ExposureTime
FNumber Flash FocalLength FocalLengthIn35mmFormat
FocusMode ISOSpeedRatings
ImageDescription Make Model
MeteringMode SceneCaptureType Orientation
CreateDate MediaCreateDate TimeZone
WhiteBalance
height width file_ext);
$exif_rot = { top_left => [ 0, '' ], # 1: no corr. needed
script/album view on Meta::CPAN
for my $sub ( @std_fields, @exif_fields ) {
$sub = "_".$sub if $sub eq "rotation";
*{"ImageInfo::$sub"} = sub {
my ($self, $value) = @_;
$self->{$sub} = $value if defined($value);
$self->{$sub};
};
}
}
sub xDateTime {
my ( $self ) = @_;
my $skew = $skew;
my $dt = $self->DateTimeOriginal || $self->CreateDate || $self->MediaCreateDate || $self->DateTime;
if ( $self->TimeZone ) {
my ( $m, $h, $min ) = $self->TimeZone =~ /^([-+])(\d+):(\d+)/;
$min += 60 * $h;
$min = -$min if $m eq "-";
$skew += $min * 60;
}
return ($dt) unless $skew;
my $fd = $dt || "";
( run in 0.862 second using v1.01-cache-2.11-cpan-389fe586d7c )