#c// ###################################################################
#c// Album Theme by David Ljung Madison
#c// Design by Dave Simmer of DaveWeb.com, modified by Dave Madison
#c// -- Auto generated by simmer_theme v3.10
#c// -- From: http://MarginalHacks.com/Hacks/album/
#c// ###################################################################
#c//
<:
# Version requirements
if (Version_Num() < 3.10) {
print STDERR "\n[THEME ERROR] This theme requires album v3.10\n";
exit(-1);
}
# Path setting - this is the path to the images
$PATH = Theme_URL();
$CSS = "";
$BODY="";
$START_TITLE = "";
$START_MAIN = "";
$START_CREDIT = "";
$END_FONT = "";
$SLIDESHOW = Option('slideshow');
# Icons/graphics
sub Bar {
my ($colspan) = @_;
return unless @Bar_M;
:>
<: foreach my $bar ( \@Bar_L, \@Bar_ML, \@Bar_M, \@Bar_MR, \@Bar_R ) {
next unless @$bar;
my $width = $bar->[1] =~ /100%/ ? "" : " width='$bar->[1]'";
print "\t\t\t\t\t\t\t
";
print Image_Array(@$bar);
print "
\n";
} :>
<:
}
# Overlays
push(@Overlays, ["$PATH/Overlay.1.png", 147, 115]);
push(@Overlays, ["$PATH/Overlay.2.png", 147, 115]);
push(@Overlays, ["$PATH/Overlay.3.png", 147, 115]);
push(@Overlays, ["$PATH/Overlay.4.png", 147, 115]);
push(@Overlays, ["$PATH/Overlay.5.png", 147, 115]);
push(@Overlays, ["$PATH/Overlay.6.png", 147, 115]);
# Come up with a 'distance' of ratio/size closeness
sub OverlayErr {
my ($x,$y,$overlay) = @_;
my $ox = $overlay->[1];
my $oy = $overlay->[2];
my $err = abs($x-$ox)/$x;
$err += abs($y-$oy)/$y;
$err += abs(($x/$y)-($ox/$oy))/($x/$y);
$err;
}
srand(time^$$);
sub PickOverlay {
my ($img, $type) = @_;
my $x = Get($img,$type,'x');
return unless $x;
my $y = Get($img,$type,'y');
# Find the lowest error
my $besterr = undef;
foreach my $overlay ( @Overlays ) {
my $err = OverlayErr($x,$y,$overlay);
next if defined $besterr && $besterr<$err;
$besterr = $err;
}
# Now find a list of overlays that are close to that error
$besterr *= 1.05; # Err or within 5% <- HEURISTIC!
my @best = grep { OverlayErr($x,$y,$_) <= $besterr; } @Overlays;
# Pick one randomly and apply it
Overlay($img,$type,'full', $best[int(rand($#best+1))]);
}
# Thumbnail border
@Bord_L = ("$PATH/Bord_L.png", 7, 12);
@Bord_R = ("$PATH/Bord_R.png", 7, 12);
@Bord_TL = ("$PATH/Bord_TL.png", 7, 7);
@Bord_TR = ("$PATH/Bord_TR.png", 7, 7);
@Bord_BL = ("$PATH/Bord_BL.png", 7, 7);
@Bord_BR = ("$PATH/Bord_BR.png", 7, 7);
@Bord_T = ("$PATH/Bord_T.png", 12, 7);
@Bord_B = ("$PATH/Bord_B.png", 12, 7);
@Border = (\@Bord_TL,\@Bord_T,\@Bord_TR,\@Bord_RT,\@Bord_R,\@Bord_RB,\@Bord_BR,\@Bord_B,\@Bord_BL,\@Bord_LB,\@Bord_L,\@Bord_LT) unless @Border;
:>//
#c//
#c// ###################################################################
#c// Everything beyond here is the same for every DaveWeb theme..
#c// ###################################################################
<: Meta() :>
<:=Trans('Image:') :> <:=Name(This_Image) :>
<:= $CSS :>
<: if ($SLIDESHOW) { :>
<: unless ($CSS) { :>
<: } :>
<: } :>
<:Body_Tag():> >
<:=Image_Array("$PATH/Null.gif",1,10):>