App for reviewing images

Can anyone suggest a program for reviewing a large number of images?

ie provide an option to do some action on an image such as move/copy/delete/etc with the minimal number of prompts.

In my case, I have several hundred images, many of which I want to copy to a separate directory so would like the option of pressing a specific key to copy the current image otherwise the next image would be displayed.
 
pkg install tcl86 tk86 libimg
then paste this to iv.tcl
wish8.6 iv.tcl src-dir dst-dir
press c to copy to dest-dir q to quit anything else to advance
Code:
#!/usr/bin/env wish
#
# imgview.tcl - minimal image viewer using Tk + the Img extension
#
# usage: wish imgview.tcl srcdir ?copydir?
#
#   c            copy current image to copydir (default: ./copied), then show next
#   q / Escape   quit
#   any other    show next image
#

package require Tk
package require Img

if {$argc < 1 || $argc > 2} {
    puts stderr "usage: wish imgview.tcl srcdir ?copydir?"
    exit 1
}

set srcdir [file normalize [lindex $argv 0]]
set dstdir [file normalize [expr {$argc == 2 ? [lindex $argv 1] : "copied"}]]

if {![file isdirectory $srcdir]} {
    puts stderr "not a directory: $srcdir"
    exit 1
}

# ---- collect image files ---------------------------------------------------
set files {}
foreach ext {png jpg jpeg gif bmp tif tiff ppm pgm xpm ico webp} {
    foreach pat [list *.$ext *.[string toupper $ext]] {
        lappend files {*}[glob -nocomplain -types f -directory $srcdir $pat]
    }
}
set files [lsort -unique $files]

if {[llength $files] == 0} {
    puts stderr "no images found in $srcdir"
    exit 1
}

# ---- UI --------------------------------------------------------------------
label .l -background black -foreground white
pack .l -fill both -expand 1
focus .

set idx 0          ;# index of the current file
set cur ""         ;# currently displayed photo image
set done 0         ;# true once we ran past the last file

# Load file $f, shrunk (integer subsampling) to fit on the screen.
proc load_scaled {f} {
    set src [image create photo -file $f]
    set maxw [expr {[winfo screenwidth .]  * 0.9}]
    set maxh [expr {[winfo screenheight .] * 0.85}]
    set n [expr {int(ceil(max([image width $src] / $maxw,
                              [image height $src] / $maxh)))}]
    if {$n > 1} {
        set small [image create photo]
        $small copy $src -subsample $n $n
        image delete $src
        return $small
    }
    return $src
}

proc show {} {
    global files idx cur done

    while {$idx < [llength $files]} {
        set f [lindex $files $idx]
        if {[catch {load_scaled $f} img]} {
            puts stderr "skipping $f: $img"
            incr idx
            continue
        }
        .l configure -image $img -text ""
        if {$cur ne ""} { image delete $cur }
        set cur $img
        wm title . "[expr {$idx + 1}]/[llength $files]  [file tail $f]"
        return
    }

    # ran out of images
    set done 1
    if {$cur ne ""} { image delete $cur; set cur "" }
    .l configure -image "" -text "No more images.\nPress any key to quit."
    wm title . "done"
}

proc copy_current {} {
    global files idx dstdir
    set f [lindex $files $idx]
    if {[catch {
        file mkdir $dstdir
        file copy -force -- $f $dstdir
    } err]} {
        puts stderr "copy failed: $err"
    } else {
        puts "copied $f -> $dstdir"
    }
}

proc key {k} {
    global idx done
    if {$done || $k eq "q" || $k eq "Escape"} {
        exit
    }
    if {$k eq "c"} { copy_current }
    # modifier keys alone shouldn't advance
    if {[string match {*_[LR]} $k] || $k eq "Caps_Lock"} { return }
    incr idx
    show
}

bind . <Key> {key %K}
wm geometry . 800x600
show
1793188294667.png
 
Nomacs is quite good. Or gwenview.
I've installed nomacs and like the ability of having thumbnails of all the images in a directory, but don't see a way of marking the ones I want to process.

Am I missing something?

I assume the batch processing would allow me to do something with selected files but don't see a way of selecting the ones I want to process.
 
I'm just trying it.

What I liked about nomacs was that it showed me thumbnails of all the images in a directory so I could quickly see which ones I was interested in, but couldn't find a way of tagging them for further processing.

Is geeqie capable of showing all the files in a directory as thumbnails?
 
I also use graphics/geeqie. You can enable/disable thumbnails. Besides copy/move has other actions in the context menu, e.g. open in GIMP.
There seem to be so many options. As far as thumbnails are concerned does it rely on them already being there or does it create them?

I don't see an option to enable/disable.

I see that I can display each file in a directory by pressing space to show the next file. Is there and way to program some key to copy the current image to a predefined directory and then skip to the next image?
 
There seem to be so many options. As far as thumbnails are concerned does it rely on them already being there or does it create them?

I don't see an option to enable/disable.

I see that I can display each file in a directory by pressing space to show the next file. Is there and way to program some key to copy the current image to a predefined directory and then skip to the next image?
geeqie.gif
 
With geeqie I can view all the images within a few minutes by pressing SPACE to view the next image so thumbnails don't really matter that much, I just need some way of selecting, preferable by assigning a key to mark current image and either copy/move current image to target directory or doing this once on all selected images.

I don't see any way to do this.
 
Select multiple images with Shift or Ctrl, right-click → Copy/Move/Rename etc.
It's the select bit I can't figure out.

I'm sure it must be straight forward,

According to GROK:

How to mark images in Geeqie

Quick method (keyboard)​


KeyAction
1Toggle Mark 1
2Toggle Mark 2
3Toggle Mark 3
……
9Toggle Mark 9
0Toggle Mark 10


Just press the number key while an image is selected/focused.

Show the marks​

  • Press M to show/hide the mark checkboxes next to the thumbnails.
  • When marks are visible, you can also click the checkboxes with the mouse.


But I can't get any of this working.
 
It's the select bit I can't figure out.

I'm sure it must be straight forward,

According to GROK:

How to mark images in Geeqie

Quick method (keyboard)​


KeyAction
1Toggle Mark 1
2Toggle Mark 2
3Toggle Mark 3
……
9Toggle Mark 9
0Toggle Mark 10


Just press the number key while an image is selected/focused.

Show the marks​

  • Press M to show/hide the mark checkboxes next to the thumbnails.
  • When marks are visible, you can also click the checkboxes with the mouse.


But I can't get any of this working.
Do what aragats wrote or read documentation.
 
I've never used "marks", but it seems to be straight forward: you use e.g. 1 to mark files, then you use Ctrl-1 to select those files, then you do what you need (copy/move etc.) with them.
 
Back
Top