web-dev-qa-db-fra.com

Existe-t-il une visionneuse de photos de base qui vous permet de signaler des photos individuelles pour un traitement par lots?

Ce que je recherche, c'est une visionneuse de photos simple et rapide, comme l'Œil de Gnome par défaut, mais avec la caractéristique supplémentaire de pouvoir appuyer sur une touche sur certaines des photos pour basculer un indicateur de "sélection", puis sur le fin de pouvoir effectuer une action globale sur toutes les photos sélectionnées, comme les copier toutes dans un autre répertoire.

Cas d'utilisation: je reviens d'un voyage et j'ai pris plus de 6000 photos gigantesques avec mon reflex numérique, dont je veux sélectionner les "meilleures" (environ 1 sur 20 environ). Je les redimensionne par lots à une taille comme 1000x1000, appropriée pour voir des détails raisonnables sur la netteté, etc. mais suffisamment petite pour que je puisse les parcourir rapidement avec Eye of Gnome. Mais ensuite, quand j'en trouve un que j'aime, je dois noter le numéro et parcourir le système de fichiers pour le copier manuellement dans un autre répertoire par glisser-déposer, ce qui est pénible. Ne serait-il pas beaucoup plus agréable si je pouvais simplement appuyer sur l'espace pour marquer ceux que j'aime et les copier tous plus tard? (En fait, ce que je ferais, c'est de prendre les noms de fichiers des photos sélectionnées et, à partir de là, de revenir aux photos originales et de les traiter.)

EOG a une fonctionnalité par laquelle vous pouvez cliquer sur la galerie d'images pour sélectionner plusieurs images, mais elle est essentiellement inutile lorsque vous regardez des milliers de photos à la fois, car dès que vous cliquez sur une nouvelle image, vous perdez la sélection précédente. (Il en va de même si vous contrôle-cliquez dans Nautilus tout en utilisant des aperçus, qui sont d'ailleurs trop petits pour voir si une photo est nette.)

J'espère que quelqu'un pourra me diriger vers une visionneuse aussi rapide et simple que EOG et qui a déjà cette fonctionnalité ou quelque chose de proche. Je ne suis pas du tout intéressé par les programmes qui insistent pour importer toutes mes photos dans leur "bibliothèque" dans le style d'Apple --- Je veux continuer à travailler avec mes photos organisées uniquement avec les dossiers du système de fichiers Vanilla.

1
st01

Outil Shellscript avec GUI

J'ai modifié un outil shellscript, qui peut créer une liste d'images sélectionnées selected.txt. Vous pouvez utiliser le Enter pour sélectionner une image, ou la touche Escape pour l'ignorer.

Vous pouvez également refaire la sélection en ajoutant des fichiers à la liste, et vous pouvez ignorer les fichiers restants avec la fenêtre "Ignorer d'autres images".

Les fichiers suivants sont créés (dans le répertoire courant)

names.txt    # a list of all the files in the current directory tree
list.txt     # a working list of selected files, that may contain duplicates
selected.txt  # the final list of selected files

Vous avez besoin du visualiseur feh pour afficher les images et xterm pour aider à obtenir la fenêtre avec la question en haut (selon les tests de Kubuntu et Lubuntu).

Sudo apt install feh xterm

Le shellscript est testé dans

  • Lubuntu et Ubuntu 16.04 LTS
  • Ubuntu 17.10
  • Kubuntu Bionic (18.04 LTS).

Voici le shellscript:

#!/bin/bash

# Copyright 2018 Nio Wiklund
#
# GPLv3: GNU GPL version 3
#
# This shellscript works with files in the current directory and its
# subdirectories. There is also an assumption that you
#
# batch resize the files to jpg and/or png files.
#
# This can be modified in the lines starting with 'find'
#
# You may need to select another 'sleep time' in order to
# get the question window on top of the picture window,
# if the files load slowly into the file viewer 'feh'.
#

########################################################################

marker () {

 xterm -geometry 10x1 -e bash -c \
 "zenity --title='Select this picture' --question --text='Select picture?' \
 --width=240 2> /dev/null && echo $1 >> list.txt"
}

skipper () {

 ( zenity --title="Skip other pictures" --width=480 --height=240 \
 --question --text="Are you sure that you want to skip all the other pictures?" \
 2> /dev/null && > skip ) &
}

counter () {

 cnt=$(wc -l "$1" | sed 's/ .*//')
 echo "$cnt pictures are listed in '$1'"
}
########################################################################

# main

########################################################################

if test -e skip
then
 rm skip
fi

if test -s selected.txt
then
 zenity --title="Create a new list or append?" --question \
 --width=360 --text="You can use the mouse, but maybe it is
 easier to use the 'Enter' and 'Escape' keys

 Append to previous selection?" 2> /dev/null

 if [ "$?" == "0" ]
 then
  cp selected.txt list.txt
 else
  > list.txt
 fi
fi

skipper

find -iname "*.jpg" | sort > names.txt
find -iname "*.png" | sort >> names.txt
counter names.txt

ifs0="$IFS"
while IFS='' read -r line || [[ -n "$line" ]]; do
 if test -e skip
 then
  break
 fi
 feh -g 1024x1024 "$line" & pid=$!
 sleep 0.5
 marker "$line"
 kill "$pid"
done < names.txt
IFS="$ifs0"

if test -s list.txt
then
 sort -u list.txt | tr -s '\n' '\n' > selected.txt
 counter selected.txt
else
 echo "No picture selected"
fi

Captures d'écran

Les captures d'écran suivantes ont été créées dans Ubuntu 17.10 (avec Wayland).

feh-create-new-list-or-append.png:

enter image description here

feh-select-picture.png:

enter image description here

feh-skip-other-pictures.png:

enter image description here

feh-terminal-output.png:

enter image description here

1
sudodus