是否有一个基本的照片查看器可以让您标记单张照片以进行批量处理?

是否有一个基本的照片查看器可以让您标记单张照片以进行批量处理?

我正在寻找一个快速而简单的照片查看器,就像默认的 Eye of Gnome 一样,但还具有一个额外的功能,即能够按下某些照片上的按键来切换“选择”标志,然后在最后能够对所有选定的照片执行全局操作,例如将它们全部复制到另一个目录。

使用案例:我旅行回来后,用我的数码单反相机拍摄了超过 6000 张巨幅照片,我想从中挑选出“最好的”照片(大约 1/20 左右)。我将它们批量调整为 1000x1000 的大小,适合查看清晰度等合理细节,但又足够小,我可以用 Eye of Gnome 快速浏览它们。但是,当我找到一张我喜欢的照片时,我必须记下编号,然后通过文件系统将其手动拖放复制到另一个目录,这很麻烦。如果我可以按空格键标记我喜欢的照片,然后稍后复制它们,那不是更好吗?(事实上,我会做的是获取所选照片的​​文件名,然后从那里返回原始的大照片并对其进行处理。)

EOG 确实有一项功能,您可以按住 Control 键并单击图库以选择多张图片,但当您一次查看数千张图片时,该功能基本上毫无用处,因为一旦您单击一张新图片,就会丢失之前的选择。(如果您在使用预览时按住 Control 键并单击 Nautilus,也会发生同样的情况,顺便说一句,预览太小,无法查看照片是否清晰。)

我希望有人能给我介绍一款和 EOG 一样快捷、简单且已经具备此功能或类似功能的查看器。我对那些坚持要像 Apple 那样将我的所有照片导入其“库”的程序一点也不感兴趣——我希望继续使用普通的文件系统文件夹来整理我的照片。

答案1

带有 GUI 的 Shellscript 工具

我修改了一个shellscript工具,可以创建选定图片的列表selected.txt.您可以使用Enter键选择图片,或Escape键跳过它。

您还可以通过将文件附加到列表来重新选择,并且可以使用“跳过其他图片”窗口跳过剩余的文件。

创建以下文件(在当前目录中)

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

您需要查看器feh来显示图片并xterm帮助将带有问题的窗口置于顶部(根据 Kubuntu 和 Lubuntu 中的测试)。

sudo apt install feh xterm

shellscript 在以下位置进行测试

  • Lubuntu 和 Ubuntu 16.04 LTS
  • Ubuntu 17.10
  • Kubuntu Bionic(18.04 LTS)。

以下是 shell 脚本:

#!/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

截图

以下屏幕截图是在 Ubuntu 17.10(带有 Wayland)中创建的。

feh-创建新列表或附加.png:

在此处输入图片描述

feh-选择图片.png:

在此处输入图片描述

feh-跳过-其他图片.png:

在此处输入图片描述

feh-终端输出.png:

在此处输入图片描述

相关内容