fotak2web.sh

»  »  » fotak2web.sh

Jednoduchý skript pro generování galerií. Obrázky zmenší, podle exif údajů otočí a označí datem.

#!/bin/bash
echo -n "Název galerie: "
read TITLE

TMP=/tmp
PID=$$
OUT=$TMP/$PID
IMG=$OUT/img
IMGTN=$IMG/tn
HTML=$OUT/html
EXIF=$OUT/exif
IN=$1

mkdir $OUT
mkdir $IMG
mkdir $IMGTN
mkdir $HTML
mkdir $EXIF

echo "$IN -> $OUT"

CISLO=0

for foo in $IN/*.JPG
do
HCISLO=`printf "%4d" $CISLO | sed -e 's/ /0/g'`
	identify -verbose "$foo" > $EXIF/$HCISLO.text
	ROTATION=""
	grep "Orientation: 6" $EXIF/$HCISLO.text &>/dev/null && ROTATION=" -rotate 90 "
	grep "Orientation: 8" $EXIF/$HCISLO.text &>/dev/null && ROTATION=" -rotate -90 "
	convert -resize 800x600 +profile '*' $ROTATION -depth 8 "$foo" $IMG/$HCISLO.jpg
	convert -resize 128x96 +profile '*' $ROTATION -depth 8 "$foo" $IMGTN/$HCISLO.jpg
	let CISLO++
done

CISLO=0
echo "<html>
<head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\" />
<title>$TITLE</title>
<link rel=\"stylesheet\" href=\"galerie.css\" type=\"text/css\" />
</head>
<body>
<h1>$TITLE</h1>
" > $OUT/index.html

for foo in $IMG/*.jpg
do
	HCISLO=`basename $foo .jpg`
	PREV=`expr $CISLO - 1`
	PREV=`printf "%4d" $PREV | sed -e 's/ /0/g'`
	NEXT=`expr $CISLO + 1`
	NEXT=`printf "%4d" $NEXT | sed -e 's/ /0/g'`

if grep "Orientation: 1" $EXIF/$HCISLO.text &>/dev/null
then
	CLASS="ls"
else
	CLASS="pt"
fi
DATE="`grep "Date Time:" $EXIF/$HCISLO.text | cut -d" " -f7,8 | cut -d"." -f1`"
echo "<html>
<head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\" />
<title>$TITLE - obrázek $HCISLO.jpg</title>
<link rel=\"stylesheet\" href=\"../galerie.css\" type=\"text/css\" />
</head>
<body>
<h1>$TITLE</h1>" > $HTML/$HCISLO.html

[ -f $IMG/$PREV.jpg ] && echo "<div class=\"navigace\"><a href=\"$PREV.html\" \
title=\"předchozí obrázek\"><< předchozí obrázek</a> | " >> $HTML/$HCISLO.html

echo "<a href=\"..\" title=\"Stránka s náhledy\">seznam obrázků</a>" >> $HTML/$HCISLO.html

[ -f $IMG/$NEXT.jpg ] && echo "| <a href=\"$NEXT.html\" \
title=\"předchozí obrázek\">další obrázek >></a>" >> $HTML/$HCISLO.html

echo "</div>
<div class=\"obrazek\"><a href=\"../img/$HCISLO.jpg\" \
title=\"Samostatný obrázek\"><img src=\"../img/$HCISLO.jpg\" class=\"b$CLASS\" /></a></div>
<p>Datum a čas: $DATE<br /></p>
<hr />
</body>
</html>
" >> $HTML/$HCISLO.html

echo "<a href=\"html/$HCISLO.html\" class=\"nahled\" \
title=\"Obrázek $HCISLO.jpg v plné velikosti.\">
<img src=\"img/tn/$HCISLO.jpg\" class=\"$CLASS\" \
alt=\"$TITLE - $HCISLO.jpg\"/></a> " >> $OUT/index.html

let CISLO++
done


echo "
<br clear=\"all\" />
<p>
$CISLO obrázků
</p>
<hr />
</body>
</html>
" >> $OUT/index.html

echo "
body {
	background: #eed;
	color: #000;
	text-align: center;
}

.nahled {
	display: block;
	float: left;
	width: 150px;
	height: 150px;
	background: #fff;
	border: solid 1px;
	border-color: #aaa #444 #444 #aaa;
	margin: 5px 10px;
}

.nahled img {
 	border: solid 1px;
	border-color: #444 #aaa #aaa #444;
}

.ls {
	margin: 28px 10px;
	width: 128px;
	height: 96px;
}
.pt {
	margin: 12px 26px;
	height: 128px;
	width: 96px;
}

.obrazek {
	width: 850px;
	height: 850px;
	background: #fff;
	border: solid 1px;
	border-color: #aaa #444 #444 #aaa;
	margin: 0 auto 0 auto;
}

.obrazek img {
	border: solid 1px;
	border-color: #444 #aaa #aaa #444;
}

.bls {
	margin: 120px auto 0 auto;
	width: 800;
	height: 600px;
}

.bpt {
	margin: 20px auto 0 auto;
	height: 800px;
	width: 600px;
}

.navigace {
	margin: 0 auto 0 auto;
	padding: 5px;
}

h1 {
	text-align: left;
}

p {
	text-align: left;
}

" > $OUT/galerie.css

rm -rf $EXIF
Mapa stránek ~ Kontakt