Val et Yves Jeanne Etienne et Alois Photos Liens Tech FAQ
[ Tech. ] [ Linux ] [ Musique ] [ Films ] [ Multimédia ] [ Images ] [ Jeux ] [ Web ]
maj : 28/10/2003

Manipulation d'images :

Les images numériques

Les formats les plus courant :
- gif : c'est un format d'image limité à 255 couleurs indexées. Utilisé pour de petites images sur les pages web. Il permet d'avoir une couleur transparente et donc voir l'image de fond. Les coins arrondis de cette page sont de images gif. Il sert également à faire des images animées.
- png : format d'image indexée moderne et sous license libre (GPL). Il autorise classiquement 65000 couleurs, les dégradés de transparence, les images animées, les fichiers restent plus petit que les fichiers gif. Malheureusement, Internet Explorer l'affiche très mal, il n'est donc pas pour l'instant très utilisé.
- jpeg : le format des photos. Il autorise jusqu'à 16 millions de couleurs. Les fichiers .jpg peuvent être très petits grâce au taux de compression qui peut être variable (en dessous de 75% l'image peut être très dégradée). Des informations supplémentaires (EXIF) peuvent être liée au fichier, par exemple la date de prise de vue, l'appareil ou le logiciel utilisé.

  • Appareil photo numérique

    La plupart des appareils photos numériques (APN) usb sont utilisables sous linux, s'ils respectent un des deux standards de communication qui sont PTP ou usb-storage.

    PPT est géré grâce au logiciel gphoto2 et une de ses interface graphique gtkam.
    usb-storage est un module du noyau qui permet de voir l'appareil comme un disque dur. On peut alors lire ou déposer des fichiers sur l'appareil.

    Pour visualiser ou manipuler les photos j'utilise gqview. C'est un gestionnaire de fichier d'image qui permet en plus de déplacer/copier/effacer, la visualisation en plein écran, diaporama. Comme il lui manque la visualisation des informations exif et la possibilité de réaliser quelques opérations simples sur les images j'ai fait deux scripts :

    image.sh : qui utilise Xdialog, libjpeg-progs pour tourner les images en concervant les informations EXIF, imagemagick pour les diminuer, jhead pour les commenter.

    image.sh

    #!/bin/sh
    #
    IconFile="/usr/local/share/scripts/Manager.xpm"
    WaitFile="/usr/local/share/scripts/Hourglass.xpm"
    DIALOG="Xdialog --no-tags --icon=$IconFile"
    
    file=$1
    
    error()
    {
        echo "$1"
        exit 2
    }
    help()
    {
      cat <<HELP
    image.sh -- Modifications élémentaires d'une image
    
    HELP
      exit 0
    }
    
    
    tempfile=/tmp/imagetmp.$$
    
        
    $DIALOG  --title "Image" --backtitle " \"$file\"" \
             --radiolist "sélectionnez l'opération" 0 0 0 \
             1 "Diminuer" on \
             2 "Tourner >" off \
             3 "Tourner <" off \
             4 "Commenter" off 2> $tempfile
    
        rval="$?" # return status, choix will be in $tempfile
        clear
    
        if [ "$rval" = "0" ]; then
            choix=`cat $tempfile`
        else
            echo "Cancel..."
        fi
    
     rm -f $tempfile
    
    if [ "$choix" = "1" ]; then
         echo "Diminuer"
         newfile=`echo $file | awk -F.jpg '{print $1 "-mini.jpg";}'`;
         (convert -resize 50% $file $newfile; echo "XXXX") |
           Xdialog --backtitle "Patience..." --title "Patience..."  --icon=$WaitFile \
    	--no-buttons --infobox "Cliquez sur \"Rafraîchir\" à la fin de l'opération" 0 58 0 ;
         echo "$newfile"
        fi
    
    if [ "$choix" = "2" ]; then
         echo "Tourner >"
         (jpegtran -rot 90 -copy all -outfile $file $file; echo "XXXX") |
           Xdialog --backtitle "Patience..." --title "Patience..."  --icon=$WaitFile  \
    	--no-buttons --infobox "Cliquez sur \"Rafraîchir\" à la fin de l'opération" 0 58 0 ;
        fi
    
    if [ "$choix" = "3" ]; then
         echo "Tourner <"
         (jpegtran -rot -90 -copy all -outfile $file $file; echo "XXXX") |
           Xdialog --backtitle "Patience..." --title "Patience..."  --icon=$WaitFile \
    	--no-buttons --infobox "Cliquez sur \"Rafraîchir\" à la fin de l'opération" 0 58 0 ;
        fi
    
    if [ "$choix" = "4" ]; then
        gnome-terminal -e "jhead -ce $file"
        fi
    

    image-info.sh : qui utilise Xdialog et jhead
    imageinfo.sh
    #!/bin/sh
    #
    DIALOG=Xdialog
    
    file=$1
    
    error()
    {
        echo "$1"
        exit 2
    }
    help()
    {
      cat << HELP
    image.sh -- Informations EXIF d'une image
    
    HELP
      exit 0
    }
    
    tempfile=/tmp/imageinfotmp.$$
    jhead $file > $tempfile;
    
    $DIALOG  --title "Information Image" --backtitle "Infos : \"$file\"" \
       --no-cancel --textbox $tempfile 0 58 0 ;
    
    rm -f $tempfile
        
  • Gimp

    Gimp est le programme incontournable de traitement d'image. Je n'ai pas l'intention de réécrire la documentation donc voilà un lien vers le bible : Grokking The Gimp
    Autres liens :

  • Polices

    Les polices True Type sont très bien supportées sur les distributions linux modernes.
    On peut cependant avoir des problèmes avec de polices gratuite téléchargées par exemple sur DaFont.
    Je ne me suis pas posé trop de question, je les convertis en polices Postscript avec ttf2pt1.

  • Galerie web

    J'utilise jigl : http://xome.net/projects/jigl/ parceque c'est un script perl que je peux facilement adapter.

    - Les galeries peuvent être générées en local et gravées sur un cd ou installées sur un site web.
    - Il peut marquer les photos.
    - Les commentaires peuvent être extraits des photos puis changés dans un fichier texte.
    - On peut utiliser des thèmes différents pas galerie.
    - Il peut être utilisé sous windows.

    Il utilise jhead et imagemagick.

Valid HTML 4.01!