J'ai un petit script bash qui permet d'uploader de manière très simple une image quelconque.
Le principe est que le programme de capture d'écran est configuré pour stocker la capture dans un dossier ~/Screenshots sous forme d'une image *.png
Mon script qui démarre d'un clic de souris sur un raccourci dans la barre des tâches est sensé se loger dans le dossier ~/Screenshots pour afficher son contenu.
Pour cela, il y a une instruction cd ~/Screenshots dans le script qui ensuite affiche son contenu.
On sélectionne l'image souhaitée et on valide ; le reste du script upload l'image vers imageshack.us qui renvoie non seulement l'URL de l'image normale mais également l'URL du thumbnail qui lui est associé.
Illustration :

Voici le script pour ceux que ça intéresse :
Code : Tout sélectionner
##!/bin/bash
#
myver='0.2'
CURL=$(which curl)
LINK1=$(mktemp /tmp/link1.XXXXXXXXXX)
TMPFILE=$(mktemp /tmp/imageshack.XXXXXXXXXX) || exit 1
cleanup() {
rm -rf $TMPFILE && rm -rf $LINK1
[ "$1" ] && exit $1
}
## Choix dans le répertoire ~/screenshots de l'image à uploader
cd ~/Screenshots
IMAGE=$(zenity --title="Cliquez sur l'image à uploader" --file-selection)
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --msgbox="aucune image sélectionnée ! fin de programme "
cleanup
exit
fi
## Conversion du fichier *.png en *.jpg pour compatibilité avec imageshack-us - extrapolé du script
## convert-jpg.sh qui se trouve dans /home/okapi/.gnome2/nautilus-scripts
jpg_file=`echo "$IMAGE" | sed 's/\.\w*$/.jpg/'`
## La ligne ci-dessus remplace l'extension de l'image par jpg sans toutefois modifier son format, ce qui
## suffit parfois à tromper imageshack-us qui rejette les images avec extension *.png. Toutefois,
## on peut effectivement créer une version de l'image au format jpg en exécutant la ligne ci-dessous
/usr/bin/convert -quality 90 "$IMAGE" jpeg:"$jpg_file"
## pour ne pas encombrer le répertoire screenshots avec des doublons *.png / *.jpg on supprime alors l'image *.png
rm $IMAGE
## On uploade l'image convertie puis on prélève les URL (thumbnail et image) et on met dans le clipboard l'URL
## de l'image
img="$jpg_file"
$CURL -H Expect: -F fileupload="@${img}" -F xml=yes -# http://www.imageshack.us/index.php > $TMPFILE
link0=$(cat $TMPFILE | grep -E "<thumb_link>(.*)</thumb_link>" | sed 's|<thumb_link>\(.*\)</thumb_link>|\1|')
link1=$(cat $TMPFILE | grep -E "<image_link>(.*)</image_link>" | sed 's|<image_link>\(.*\)</image_link>|\1|')
cat $TMPFILE | grep -E "<image_link>(.*)</image_link>" | sed 's|<image_link>\(.*\)</image_link>|\1|' > $LINK1
xclip -in -selection c < $LINK1
zenity --info --width=350 --height=75 title="Téléchargement réussi" --text="l'image $IMAGE a été uploadée correctement: \n\n Thumbnail: \n $link0 \n\n Image: \n $link1"
## Si on a pas converti l'image, on lui rend son extension d'origine : *.png
# png_file=`echo "$jpg_file" | sed 's/\.\w*$/.png/'`
cleanup
exit
Je précise que ce script fonctionne parfaitement sous toutes les versions de Linux que j'ai en multiple boot (Lenny, Squeeze, LMDE).
Si quelqu'un pouvait m'expliquer pourquoi cette instruction n'est pas exécutée correctement ...
Merci d'avance