keyboard driven image selector and JPEG viewer for Windows 10

0

This is the problem I want to solve. I have about 3000 images as JPEG files, about 80% boring and 20% interesting, I don't yet know which one is which. When I look at an image, I can quickly (less than 0.5 second) tell if it's boring or interesting. I want to take a look at all the images, select the interesting ones, and move them to a separate folder as quickly as possible.

I need software for that which works on Windows 10, and I need explanation how to use the software for the problem I want to solve.

An image viewer with the following features could solve my problem:

  • It can be started by pointing it to a folder containing JPEG images.
  • It displays a single image in full screen.
  • When I press key A (doesn't matter exactly which key), it proceeds to the next image in the folder.
  • When I press key B (doesn't matter exactly which key), it moves the current image file to a different folder, and proceeds to the next image in the original folder.
  • It can load JPEG images quickly.
  • Preferably it preloads and decodes the next image as well, so by the time I press a key it will be able to display the next image very quickly.

I don't want to touch the mouse for selecting the images, because I'm much faster with the keyboard.

On Linux the program qiv can do this if I invoke it as qiv -f -m FOLDER, it uses e.g. Space as key A, and Delete as key B, and it moves the selected files to FOLDER/.qiv-trash. I need equivalent functionality on Windows 10.

I've just tried imgv (cross-platfrom), but it changed the screen resolution when going full-screen, and it was a headache to change it back on my multi-display setup.

Probably I need one program from https://en.wikipedia.org/wiki/Image_organizer https://en.wikipedia.org/wiki/Comparison_of_image_viewers , but I'd need to try all of them, because the feature list there doesn't say (or even hint) which program has the features I need.

It looks like FastPictureViewer can do it. It shows how on the main page: Tag your photos (star rating) in one keystroke (1..5), filter by rating (F) and copy/move in batch (Ctrl-F)

It looks like that XnView MP can do it. It's possible to rate images on a 1--5 scale (e.g. by pressing Ctrl-5 in full-screen mode), then show only images with specific ratings, then move those images to separate folders.

pts

Posted 2016-10-10T13:04:04.123

Reputation: 5 441

Question was closed 2016-10-13T00:09:36.020

1So, Tinder for your own pics? – Narzard – 2016-10-10T13:09:49.583

To those voting for offopic on this question: I'm trying to follow the guidelines (http://meta.superuser.com/questions/5372/how-do-i-ask-a-question-that-may-require-recommending-software) as closely as I can. What am I missing?

– pts – 2016-10-10T15:22:22.060

Answers

1

In irfanview you can set a Default Move directory and then just press F7 to move the current image or to proceed to the next one.

In Options - Properties/Settings open the File Handling section, you also want to enable Jump to the next file after deleting/moving

irfanview is free and has a Portable Apps version.

Peter Hahndorf

Posted 2016-10-10T13:04:04.123

Reputation: 10 677

1

This solution may not be for everybody but if you are a super-user, give it a try, it doesn't involve any third party software:

Create a batch file PhotoViewer.cmd with the following content

 start %SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1

Now make a copy of all your images into say C:\work, drag the first image from that directory onto the PhotoViewer.cmd file.

The old Windows Photo Viewer will open. If you want to keep the photo, press , if you want to remove it, just press Delete. In both cases the next photo will be shown.

When you are done, your working folder has all the images you want to keep.

Create a new text file Move-BoringPhoto.ps1 with the following content:

[CmdletBinding(SupportsShouldProcess=$true)]
param(
    $workDir = "C:\work",
    $OrgDir = "C:\users\myname\pictures",
    $MoveToDir = "C:\BoringPhotos"
)

Get-ChildItem -Path $OrgDir -Filter *.jpg | ForEach-Object {

    # for every original photo look for it in the working directory
    $fileName = Join-Path -Path $workDir -ChildPath $_.Name

    If (Test-Path -Path $fileName)
    {
        # file is still there, leave it alone
        Write-Output " keeping $($_.FullName) "
    }
    else
    {
        # file deleted, move it
        Move-Item -Path $_.FullName -Destination $MoveToDir -Verbose
    }
}

Fix the three directories at the top or supply them as parameters when starting the script in PowerShell.

All the photos you want to keep will remain it their original place, all others will be moved.

When you are done, you can remove the working directory.

Always make a backup of all photos before trying any solutions suggested on the internet.

Peter Hahndorf

Posted 2016-10-10T13:04:04.123

Reputation: 10 677

It's nice to know this solution. Thank you for writing the script including the comments. I'm looking for a solution which is more convenient and less error-prone. The overhead of making backups is not feasible, so I'm looking for a solution which doesn't need backups. – pts – 2016-10-10T14:39:59.770

1I totally understand, it's not very user friendly. It's just the way I would to it. – Peter Hahndorf – 2016-10-10T14:45:53.517