#! /bin/sh # Filename: imggallery.sh, html_pict_000_DIR.sh # Version: 0.71 # Date: Thu Feb 12 21:21:28 PST 2009 (ardchoille) # Date: Thu Oct 28 02:13:33 MSD 2010 (t-IX) # Author: Ian MacGregor (aka ardchoille), t-IX # License: GPL # This script creates a web gallery from specified images (XHTML 1.0 Strict) # !!! Usage: sh /path_to_script/html_pict.sh /path_to_picts/ !!! DIR=$1 ; ##велосипед, убирающий "/" в конце if [ -z "$1" ]; then "$DIR"=`pwd`; else TEMP=`pwd`; cd "$DIR"; TEMP2=`pwd`; cd "$TEMP"; DIR="$TEMP2"; echo "$TEMP2"; fi; ##remove_uppercase.[Pp][Nn][Gg].[Jj][Pp][Gg] for i in "$DIR"/*.[Pp][Nn][Gg]; do mv "$i" "${i/%.[Pp][Nn][Gg]/.png}"; done ; for i in "$DIR"/*.[Jj][Pp][Gg]; do mv "$i" "${i/%.[Jj][Pp][Gg]/.jpg}"; done ; ##find_files for i in "$DIR"/* ; do a=`file "$i"`; if [[ $a =~ 'PNG' ]] ; then echo "PNG!!! $a" ; P=*.png ; elif [[ $a =~ 'JPEG' ]] ; then echo "JPEG!!! $a" ; J=*.jpg ; fi ; done ; ##remove_spaces_& (cd "$DIR" && # Ищем объекты файлового типа # Список объектов, удовлетворяющий критериям, итерационно обрабатывается циклом # WHILE: в текущем имени файл ищется пробел ([:space:] согласно стандарту POSIX) #find $DIR -type f | while read file; do # Ищем пробел в имени файла с помощью регулярного выражения # if [[ "$file" = *[[:space:]]* ]]; then # И заменяем его на нижнее подчеркивание # mv "$file" `echo $file | tr ' ' '_'` # fi; # Конец цикла #done ; for i in $P $J; do mv "$i" `echo $i | tr ' ' '_'`; done ; for i in $P $J; do mv "$i" `echo $i | tr '&' 'n'`; done ) ; ##creates_directory_for_thumbnails_and_move_files mkdir "$DIR"/thumbs #mv thumb_* thumbs HTTP=http://your-domain.com DIRNAME=$(cd "$DIR" && echo "${PWD##*/}") ; HTMLNAME="$DIR"/000_folder.html ; ##generate_html echo "" > $HTMLNAME echo "" >> $HTMLNAME echo "" >> $HTMLNAME echo "" >> $HTMLNAME echo "Image list" >> $HTMLNAME echo "" >> $HTMLNAME echo "" >> $HTMLNAME echo "" >> $HTMLNAME echo "" >> $HTMLNAME echo "" >> $HTMLNAME echo "
" >> $HTMLNAME echo "

Pictures in folder \"$DIRNAME\"

" >> $HTMLNAME #echo "

Pictures in folder

" >> $HTMLNAME echo "
" >> $HTMLNAME #echo "
" >> $HTMLNAME #echo "next ►" >> $HTMLNAME #echo "first ▲" >> $HTMLNAME #echo "
" >> $HTMLNAME #echo "
" >> $HTMLNAME #echo "◄ back" >> $HTMLNAME #echo "▼ last" >> $HTMLNAME #echo "
" >> $HTMLNAME echo "
" >> $HTMLNAME ##creating_thumbnails (cd "$DIR" && for img in $J $P ; do RZ=`exiv2 pr $img | grep "Размер изображения:" | awk '{print $3,$4,$5}'` SZ=`du -sh ./$img | awk '{print $1}'` nameimg=`echo "$img" | cut -b1-21` echo "$nameimg $RZ ($SZ)" convert -auto-orient -resize '350x300' -quality 97% -strip $img thumbs/thumb_$img # echo "$img /thumbs/thumb_$img" echo "$img successfully resized"; echo "
" >> $HTMLNAME echo " " >> $HTMLNAME echo " \"\"" >> $HTMLNAME echo " " >> $HTMLNAME echo "
" >> $HTMLNAME echo "$nameimg | $RZ ($SZ)" >> $HTMLNAME # echo "$RZ ($SZ)" >> $HTMLNAME echo "
" >> $HTMLNAME echo "
" >> $HTMLNAME done ) ; ##generate_html echo "
" >> $HTMLNAME echo "" >> $HTMLNAME echo "" >> $HTMLNAME ##trash # exiv2 pr $img | grep "Размер изображения:" | cut -d: -f2 >> $HTMLNAME # du -sh ./$img | cut -d. -f1 >> $HTMLNAME #find -name '*.JPG' -exec bash -c 'mv "$1" "${1/%.JPG/.jpg}"' -- {} \; #for i in *.[Pp][Nn][Gg]; do g=`echo $i | cut -d. -f1`;j=`echo $i | cut -d. -f2 | tr '[A-Z]' '[a-z]'`;w=$g.$j;mv $i $w ; done #for i in *; do mv "$i" `echo $i | cut -d . -f 2 | tr '[A-Z]' '[a-z]'`; done #for i in *.[Jj][Pp][Gg]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done ##atributes #for img in *.jpg *.JPG *.png *.PNG ; do #grep "Размер изображения:" | cut -b38-48 # exiv2 pr $img | grep "Image size" | cut -d: -f2 ##_file_name,_file_info,scale_pict # echo $img >> $HTMLNAME # convert -scale 300 -quality 97% $img thumb_$img # identify -verbose $img | grep Geometry: | cut -b13-21 >> $HTMLNAME # identify -verbose $img | grep Filesize: | cut -b13-30 >> $HTMLNAME # mogrify -scale 640 $img ##_for_gif #for img2 in *.gif *.GIF ; do # echo "$img2 successfully resized"; # convert -coalesce $img gif_$img # convert -scale 300 gif_$img thumb_$img # echo "
\"\"
$img
" >> $HTMLNAME #done ##-//-_for_gif #mkdir tra #mv gif_* tra ##directory_of_script #DR=$(cd $(dirname $0) && pwd) ; #echo "$DR"