Script de génération automatique de galeries PhpWebGallery

PhpWebGallery est une trés bonne application web PHP (sous licence GPL), qui permet de créer facilement une galerie de photos en ligne. Elle est proposée en standard dans les modules des pages perso de FREE. le hic c’est que la génération de galerie n’est pas automatique et la nomenclature des fichiers est trés précise. Sous Windows on a phpMyVignettes mais rien en GUI sous Linux (à ma connaissance). après quelques recherches j’ai trouvé pas mal de scripts qui réalisent ça mais rien que me colle vraiment, alors j’en ai adapté plusieurs pour avoir un résultat perso :

Script PhpWebGallery_create_v2.0.sh => Génération automatique de galeries au format PhpWebGallery (génération répertoire, miniatures, photos pwg_high, …), à intégrer dans les nautilus script (s’applique aux fichiers selectionnés, ne les modifie pas ), nécessite le paquet Imagemagick et zenity

pwg_script.png

Maj : 17/07/2007

Demande du nom de la galerie
Crée les dossier $GALERY_NAME , $GALERY_NAME/THUMB_DIR et $GALERY_NAME/REAL_DIR dans le dossier courant
Traite les images originales et les copie dans le dossier $GALERY_NAME/THUMB_DIR, 3 choix possibles
Aucun, déplacement de l’original
Augmente la compression en gardant la résolution originale
Réduit la résolution originale sans compression à $REAL_L et $REAL_H
Création des images affichées dans la galerie (à 800×600, variable PICT_L et PICT_H) dans le dossier $GALERY_NAME
Création des miniatures (à 128×96, variable THUMB_L et THUMB_H) dans le dossier $GALERY_NAME/THUMB_DIR

#!/bin/bash
############################################################################################
# Taltan – http://www.taltan.fr #
############################################################################################
# Script PhpWebGallery_create_v2.0.sh #
# Licence : GNU / GPL #
############################################################################################
# Inspiré du script Rep2Thumb.sh de Gothico #
# http://forum.phpwebgallery.net/viewtopic.php?id=5522 #
# Inspiré du script gallery.sh de wiloo #
# http://forum.phpwebgallery.net/viewtopic.php?pid=37829 #
############################################################################################
# Script de création de galerie pour PhpWebGallery #
# A intégrer dans les nautilus script (applicable aux fichiers selectionnés) #
# Création de miniatures #
# Création de photos redimensionnées #
############################################################################################
# Dépendances #
############################################################################################
# – Nécessite le paquet imagemagick : http://doc.ubuntu-fr.org/imagemagick #
# – Nécessite le paquet zenity #
# => sudo apt-get install imagemagick zenity #
############################################################################################
# 02/09/06 – v1.0 – Création #
# 17/09/07 – v2.0 – Ajout différents tests avant exécution #
# – Ajout de l’interface zenity #
############################################################################################
########################################################################
## CONFIGURATION ##
########################################################################
# vérifie si imagemagick est installé
which convert 2>/dev/null
if [ $? != 0 ]
then
zenity –error –title= »Erreur » –text= »La paquet Imagemagick n’est pas installé »
fi
#teste si au moins 1 fichier est selectioné
if [ $# -eq 0 ]; then
zenity –error –title= »Erreur » –text= »Selectionner au moins 1 fichier »
exit 1
fi
# Chemin complet de la galerie à créer
GALLERY_PATH= »`pwd` »
##
# Nom de la galerie
while [ ! « $GALERY_NAME » ] # Réafficher la fenetre tant que l’utilisateur n’a pas fait de choix
do
GALERY_NAME=`zenity –title « Nom de la galerie » –entry –text « Entrer le nom de la galerie »`
if [ $? != 0 ]; then
exit 1
fi
[ $? -ne 0 ] && exit 2 # Annulation
done
# Nom du répertoire à créer pour les miniatures
# (« thumbnail » par défaut dans phpwebgallery)
THUMB_DIR= »thumbnail »
# Nom du répertoire à créer pour les images tailles réelles
# (« pwg_high » par défaut dans phpwebgallery)
REAL_DIR= »pwg_high »
# Préfixe des miniatures
THUMB_PREFIX= »TN- »
## L pour Largeur
## H pour Hauteur
# Taille des photos miniatures
THUMB_L= »128″
THUMB_H= »96″
# Taille des photos à afficher dans phpwebgallery
PICT_L= »800″
PICT_H= »600″
# Taille des photos images tailles réelles dans REAL_DIR
REAL_L= »1280″
REAL_H= »1024″
# Garder les données EXIF ou non
# Avec EXIF => «  »
# Sans EXIF => « -strip »
EXIF= » »
# Choix du traitement pour l’image en taille réelle

while [ ! « $TRAIT_REAL_CHOICE » ] # Réafficher la fenetre tant que l’utilisateur n’a pas fait de choix
do
TRAIT_REAL_CHOICE=`zenity –list –width=500 –height=200 \
–title= »Choisissez le type de traitement pour l’image en taille réelle » \
–column= »N° » –column= »Description » \
a « Aucun, déplacement de l’original » \
b « Augmente la compression en gardant la résolution originale » \
c « Réduit la résolution originale sans compression »`
###### Choix -> Sortie boucle ######
if [ $? != 0 ]; then
exit 1
fi
[ $? -ne 0 ] && exit 2 # Annulation
done

if [ $TRAIT_REAL_CHOICE == « a » ] # Déplacement de l’original dans le répertoire configuré pour les mages tailles réelles
then
trait_real ()
{
cp « $parametre » « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre »
}
fi
if [ $TRAIT_REAL_CHOICE == « b » ] # Augmente la compression en gardant la résolution originale
then
trait_real ()
{
convert -density 72 $EXIF « $GALLERY_PATH/$parametre » « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre »
}
fi
if [ $TRAIT_REAL_CHOICE == « c » ] # Réduit la résolition originale sans compression
then
trait_real ()
{
convert $EXIF -resize $REAL_SIZE « $GALLERY_PATH/$parametre » « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre »
}
fi
########################################################################
## TRAITEMENT DES IMAGES ##
########################################################################
# Création des miniatures dans le répertoire configuré
mkdir « $GALLERY_PATH/$GALERY_NAME »
mkdir « $GALLERY_PATH/$GALERY_NAME/$THUMB_DIR »
mkdir « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR »
numParam=1
erreur=0
nb_param= »$# »
for parametre in « $@ »;
do
# Orientation de la photo
L= »`identify « $parametre » | cut -d\ -f3 | cut -dx -f1` »
H= »`identify « $parametre » | cut -d\ -f3 | cut -dx -f2` »
if [ $L -gt $H ]
then
THUMB_SIZE= »${THUMB_L}x${THUMB_H} »
PICT_SIZE= »${PICT_L}x${PICT_H} »
REAL_SIZE= »${REAL_L}x${REAL_H} »
else
THUMB_SIZE= »${THUMB_H}x${THUMB_L} »
PICT_SIZE= »${PICT_H}x${PICT_L} »
REAL_SIZE= »${REAL_H}x${REAL_L} »
fi
echo « ${numParam}. Traitement de $parametre : …. OK  »
# traitement pour l’image en taille réelle
trait_real $parametre
# Création des images affichées dans la galerie
convert -density 72 $EXIF -resize $PICT_SIZE « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre » « $GALLERY_PATH/$GALERY_NAME/$parametre »;
# Création des miniatures dans le répertoire configuré pour les miniature
convert -thumbnail $THUMB_SIZE -density 72 « $GALLERY_PATH/$GALERY_NAME/$parametre » « $GALLERY_PATH/$GALERY_NAME/$THUMB_DIR/$THUMB_PREFIX$parametre »;

let $[numParam += 1]
if [ $numParam -gt « $# » ] ; then
echo « —————————————– »
echo « Fin de traitement : $# fichiers  »
echo « —————————————– »
echo « OK, vous pouvez fermer ! »
fi
done | zenity –text-info –title « PhpWebGallery_create » –width=500 –height=500

NB : _/!\_ Par principe de précaution, je vous conseille de commencer à utiliser un script qui, au final supprime ou modifie un fichier, sur une copie de vos photos, histoire de voir que tout se passe bien 😉


Filed under: Linux — Étiquettes : , , , — admin @ 2 septembre 2006 22 h 06 min

Conversion de fichiers audio

« Combien de fois je me suis retrouvé avec des fichiers musicaux illisibles sur mon baladeur MP3, à me demander quel soft utiliser pour pour les convertir. Alors oui, il y a l’artillerie lourde des applications GUI (Graphic User Interface) avec moult clics et suivant, suivant, …, alors qu’une simple ligne de commande peut résoudre cette problématique. Ci dessous quelques exemples (non exhaustif) des ces possibilités :

Convertir OGG –> MP3

MP3 à 128kbs, les .mp3 sont stockés dans un répertoire à part (mp3), nécessite les outils ogg (vorbis-tools) et le codec lame

$ sudo apt-get install lame vorbis-tools
$ cd "le répertoire qui contient les fichiers ogg"
$ mkdir mp3; for i in *.ogg; do new_name=`echo "$i" | sed s/.ogg/.mp3/g`; ogg123 -d wav -f - "$i" | lame -h - >
 mp3/"$new_name"; done

Convertir MP3 –> OGG

Les .ogg sont stockés dans un répertoire à part (ogg), nécessite les outils ogg (vorbis-tools) et le MPEG layer 1/2/3 audio player (mpg123)

$ sudo apt-get install mpg123 vorbis-tools
$ cd "le répertoire qui contient les fichiers ogg"
$ mkdir ogg; for i in *.mp3; do new_name=`echo "$i" | sed s/.mp3/.ogg/g`; mpg123 -b 10000 -s "$i" | sox -t raw
 -r 44100 -s -w -c2 - ogg/temp.wav; oggenc ogg/temp.wav -o ogg/"$new_name"; done; rm -f ogg/temp.wav

Convertir MPC –> WAV

Les .wav sont stockés dans un répertoire à part (wav), nécessite le codec lame et le décodeur mppdec

$ cd "le répertoire qui contient les fichiers mpc"
$ mkdir wav; for i in *.mpc; do new_name=`echo "$i" | sed s/.mpc/.wav/g`; mppdec-static "$i" wav/"$new_name"; done

Convertir WAV –> MP3

Ici MP3 à 160kbs, les .mp3 sont stockés dans un répertoire à part (mp3), nécessite le codec LAME

$ cd "le répertoire qui contient les fichiers wav"
$ mkdir mp3; for i in *.wav; do new_name=`echo "$i" | sed s/.wav/.mp3/g`; lame --abr 160 "$i" "new_name" ; done

Convertir WAV –> OGG

Ici OGG à average bitrate » de 202 kb/s environ, les .ogg sont stockés dans un répertoire à part (ogg), nécessite les outils ogg (vorbis-tools), plus d’info sur le Petit Linux

$ cd "le répertoire qui contient les fichiers wav"
$ for i in *.wav; do oggenc -q 6 $i ; done

Convertir WMA –> MP3

MP3 à 192kbs, les .mp3 sont stockés dans un répertoire à part (mp3), nécessite mplayer et le codec lame

$ sudo apt-get install lame mplayer
$ cd "le répertoire qui contient les fichiers wma"
$ mkdir mp3 ;for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader "$i" && lame
-m j -h --vbr-new -b 192 
audiodump.wav -o "`basename "$i" .wma`.mp3"; done; rm -f audiodump.wav ; mv *.mp3 mp3/

Couper un fichier MP3

Ici MP3 à 128kbs, nécessite le codec LAME, la première commande génére un fichier temporaire audiodump.wav à supprimer par la suite ici coupe le MP3 à partir de 27 mins 50 sec du début pendant 09 min 48 s

$ cd "le répertoire qui contient le fichier à couper"
$ mplayer -vc null -vo null -ao pcm -ss 00:27:50 -endpos 00:09:48 mon_fichier.mp3 ; lame --abr 128 audiodump.wav
 mon_fichier_coupé.mp3

Liens : http://giminik.developpez.com/articles/debian-gnu-linux/gravure-audio-ligne-commande
« Fin de citation
source: blog.taltan.bkp


Filed under: Linux — Étiquettes : , , — admin @ 27 juin 2006 12 h 16 min

Utilisation courante de wget

« Wget est un logiciel de téléchargement avancé en ligne de commande trés puissant qui peut notament être utilisé dans des scripts bash. Voila un petit menemto des commandes les plus utiles :

Télécharger un fichier

$ wget url_du_fichier_à_télécharger

Aspirer un site :

$ wget -rkpE http://XXXXXX.net

IL est aussi possible d’utiliser :

$ wget -np -r URL (capture récursive sans remonter)
$ wget -m URL (récupère en mode miroir)
$ wget -l=2 (niveau de récursivité égal a deux)
$ wget -c ftp://suite_de_l_URL (pour une reprise possible du téléchargement en cas de plantage)

Aspirer tous les fichiers d’un site d’une extension particuliére :

$ wget -r -l1 –no-parent -A.ram http://XXXX ( pour les fichier .ram)
$ wget -r -l1 –no-parent -A.mp3 http://XXXX (pour les fichier .mp3)....

Télécharger les URL listées dans un fichier TXT ( Attention une URL par ligne, rien d’autre)

$ wget –input-file=Nom_du_fichier.txt

Télécharger à travers un proxy

$ export http_proxy=http://URL:8080
$ export ftp_proxy=http://URL:8080
$ wget URL

Source : http://mandows.apinc.org/howto/wget.html »
source: Ancien blog de Taltan


Filed under: Linux — admin @ 16 avril 2006 18 h 07 min