Album
view release on metacpan or search on metacpan
script/album view on Meta::CPAN
}
$i_large = d_large($file);
my $movie = $el->type == T_MPG;
# Copy the file into place.
if ( ! -s $i_large && $el->orig_name ) {
my $i_src = $el->orig_name;
my $time = $el->timestamp;
if ( $movie ) {
# Need copy?
my $copyit = !$linkthem
|| (($el->rotation || $el->mirror) && $prog_mencoder);
# Try to link.
if ( !$copyit ) {
$msg->("link ");
if ( link($i_src, $i_large) == 1 ) {
# Ok, done.
}
else {
# Need copy.
unlink($i_large); # just in case
$msg->("[copy] ");
$copyit = 1;
}
}
else {
$msg->("copy");
}
# Need copy?
if ( $copyit ) {
if ( $prog_mencoder ) {
$msg->("/rotate (be patient)") if $el->rotation;
$msg->(" ");
# Currently. movies have a bad ugly copy routine...
copy_mpg($i_src, $i_large, $time,
$el->rotation, $el->mirror);
}
else {
$msg->(" [no rotation]") if $el->rotation;
$msg->(" ");
copy($i_src, $i_large, $time);
}
}
}
elsif ( $el->rotation || $el->mirror ) {
$msg->("copy");
$msg->("/rotate") if $el->rotation;
$msg->("/mirror") if $el->mirror;
$msg->(" ");
# Use jpegtran to rotate jpg files.
if ( ($el->file_ext || "") eq "jpg" && $prog_jpegtran ) {
my $cmd = "$prog_jpegtran -copy all -rotate " . $el->rotation . " ";
$cmd .= $el->mirror eq 'h' ? "-transpose " : "-transverse "
if $el->mirror;
$cmd .= "-outfile " . squote($i_large) .
" " . squote($i_src);
my $t = `$cmd 2>&1`;
$msg->($t) if $t;
utime($time, $time, $i_large);
}
# Otherwise, let Image::Magick handle it.
else {
$readimage->($i_src);
$image->Rotate();
if ( $el->mirror ) {
$image->Flip if $el->mirror eq 'h';
$image->Flop if $el->mirror eq 'v';
}
my $t = $image->Write($i_large);
$msg->($t) if $t;
utime($time, $time, $i_large);
}
}
elsif ( $linkthem ) {
$msg->("link ");
unless ( link($i_src, $i_large) == 1 ) {
unlink($i_large); # just in case
$msg->("[copy] ");
copy($i_src, $i_large, $time);
}
}
else {
$msg->("copy ");
copy($i_src, $i_large, $time);
}
if ( $el->type == T_VOICE ) {
$msg->("sound ");
copy_voice($i_src, d_large($el->assoc_name),
$time);
}
}
if ( $movie ) {
$movie = $file;
$file = $el->assoc_name;
$i_large = d_large($file);
unless ( -s $i_large ) {
$msg->("still ");
$image = still($el);
}
}
my $i_medium = d_medium($file);
my $i_small = d_thumbnails($file);
if ( $medium && ! -s $i_medium ) {
$readimage->() unless $image;
$msg->("medium ");
$resize->($medium);
my $t = $image->Write($i_medium);
$msg->($t) if $t;
}
$el->medium_size(-s $i_medium) if $medium && !$movie;
if ( ! -s $i_small ) {
$readimage->() unless $image;
( run in 3.696 seconds using v1.01-cache-2.11-cpan-13bb782fe5a )