• [^] # Re: Super

    Posté par . En réponse à la dépêche Sortie de PhotoShow 3.0. Évalué à 2.

    J'arrive un peu tard, mais je viens d'en avoir besoin, donc voici un petit makefile qui génère les vignettes.
    J'ai repris sans vergogne les commandes "convert" du script au dessus.
    Le seul avantage qu'il a par rapport au script, c'est qui est parallélisable, et suivant le nombre de photos, c'est pas du luxe !

    # Makefile pour générer les vignettes et les "petites" images PhotoShow
    #
    # Les répertoires PHOTO_DIR et THUMBS_DIR doivent être renseignés.
    #
    # NB: les espaces (et sûrement quelques caractères spéciaux également)
    # NE SONT PAS SUPPORTÉS !
    #
    # En plus, une seule extension est possible pour les fichiers d'entrée
    # (par défaut .JPG)
    #
    # Le truc sympa, c'est le make -j 8 (ou plus suivant le nombre de CPUs)
    #
    # licence : Beerware
    #
    PHOTO_DIR ?= photo_dir
    THUMBS_DIR ?= generated/Thumbs
    IN_EXT ?= .JPG
    OUT_THUMB_EXT ?= .JPG
    OUT_SMALL_EXT ?= _small.JPG
    # images en entrée
    IN_IMAGES = $(shell find $(PHOTO_DIR) -type f -name "*$(IN_EXT)")
    # images en sortie
    OUT_THUMB_IMAGES = $(patsubst $(PHOTO_DIR)/%$(IN_EXT),\
     $(THUMBS_DIR)/%$(OUT_THUMB_EXT), $(IN_IMAGES))
    OUT_SMALL_IMAGES = $(patsubst $(PHOTO_DIR)/%$(IN_EXT),\
     $(THUMBS_DIR)/%$(OUT_SMALL_EXT), $(IN_IMAGES))
    all: small thumb
    small: $(OUT_SMALL_IMAGES)
    thumb: $(OUT_THUMB_IMAGES)
    $(THUMBS_DIR)/%$(OUT_SMALL_EXT): $(PHOTO_DIR)/%$(IN_EXT)
     @mkdir -p $(dir $@)
     @echo Generating $@
     @convert $< -thumbnail 1200x1200 -auto-orient -quality 70 $@
    $(THUMBS_DIR)/%$(OUT_THUMB_EXT): $(PHOTO_DIR)/%$(IN_EXT)
     @mkdir -p $(dir $@)
     @echo Generating $@
     @convert $< -thumbnail 200x200^ -gravity center -extent 200x200 -auto-orient -quality 70 $@