We had some pictures digitized at 400dpi as part of one of our project. If 400dpi might be interesting for preservation, the size of the generated files can be quite huge, considering the difference when viewing the JPG in a browser. So we decided to bulk resize the JPG sent by the digitization contractor before putting them online. From my understanding of DPI and linked concepts, based on a 400dpi scan, resizing it to be what it would have been if originally scanned at 300dpi means reducing the pictures dimensions by 75%.
The below bash script will deal with that :
#! /bin/bash # Needed because our source folder contains spaces in the USB disk name OIFS="$IFS" IFS=$'\n' # The folder containing the subfolders from the digitization SRC_FOLDER=/media/smachefert/My\ Passport/4005_BU_BDX_MONTAIGNE_2017_LOT32/JPEG09_400dpi/* # The folder where we want to create 300DPI files OUT_FOLDER=/home/smachefert/Bureau/300DPI_LOT32/ for FOLDER in $SRC_FOLDER do # Si on est bien sur un sous-répertoire if [ -d "$FOLDER" ]; then # On crée le sous-répertoire de sortie s'il n'existe pas BASE_FOLDER=`basename $FOLDER` if [ ! -d $OUT_FOLDER$BASE_FOLDER ]; then echo "" echo "Creation Folder "$OUT_FOLDER$BASE_FOLDER mkdir $OUT_FOLDER$BASE_FOLDER echo "Traitement dossier "$BASE_FOLDER # On va récupérer toutes les images for FILE in $FOLDER/* do BASE_FILE=`basename $FILE` convert -quality 67 -resize 75% "$FILE" "$OUT_FOLDER$BASE_FOLDER/$BASE_FILE" done exit else echo "On passe "$BASE_FOLDER" qui existe déjà" fi else echo "ERREUR "$FOLDER fi done IFS="$OIFS"
It seems to work as expected but if you find that something is wrong, please contact me