uiv Image Viewer - Manual

v.2008-05-10-1

General

UIV is a free image viewing program specialized for browsing large sets of images in the most common formats (PNG,JPEG,BMP,GIF).

Now there are of course already a bazillion image viewers out there, so you might wonder why the author even bothered. The following keypoints are features of UIV which the author though were not that reasily available in existing programs, or if they were only in applications having other unacceptable characteristics.

Table of Contents

Install-Free

UIV consists of a single file, the executable. Therefore there are no settings files which would either have to be buried into the "Documents and Settings"-hell or made writable by every windows user account (HELLO? I actually use applications, released no earlier than 2007 where the authors obviuosly still think the user should run her daily business logged in as administrator.). When you put this together, the only oprtion to store settings in a compliant way is to use the registry. UIV can do this, if you want to keep settings. But it does not do it by default, in order not to immediately pollute any system where it is launched on. Instread, in the mouse menu you have a togglable item "Store to Registry". When this is checked and no entry exists in the registy, the full settings are written to registry (CURRENT USER!, therefore each user has its own settings and no security breaches are necessary). Then as long as this is checked, all setting changes will be reflected into the registy. When you uncheck it, the registry settings remain, but are read-only. All registry entires can be removed with "Remove from Registry", which deletes all of UIVs registry keys and unchecks "Store to Registry".

Basically, if you don't like UIV, it is removed with at most a single mouse menu command (no action at all if you ddin't turn on registry before). If you like UIV you can bring it to any system and not pollute it at all or if you want the setiing there too they are still later removed with a single mouse menu command. (Any system of course means a NT5 one (Windows 2000, Windows XP, Windows 2003 Server)).

Navigation

UIV with its focus on what should be displayed naturally also provides efficient browsing. Wehenever an image is opened, its parent directory is scanned for supported image files and you can then navigate in this list using <SPACEBAR> (next), <BACKSPACE> (previous), <CTRL+HOME> (first in directory) and <CTRL+END> (last in directory). If you hit the front/end with space and backspace, they will not wrap around, but with shift+space/backspace, the wraparound occurs. The index in the directory is seen in the infobar (show/hide with "i").

While UIV does not have classic image editor functions, it features file deletion from within the application, and without confirmation. <DELETE> sends the currently shown image to the recycle bin without silly confirmation. <SHIFT+DELETE> even deletes the file without confirmation and without the option to resotre it from recycle bin (this is NOT a secure delete, just the normal without recycle bin, like <SHIFT+DELETE> in Windows Explorer but without confirmation).

UIV supports a list file format (*.uiv-list). Such a list can be loaded in parallel to the directory navigation facilities and the files referenced in such a list do not all need to be in the same directory. If a list file is navigated to, the directory browing facilities automatically update to that respective directory. While a list is loaded, whenever a file maches one in the list, this is shown in the info bar and the current list index changes to that one. Wehn a list is loaded, the directory naviation is still available such that starting from a list file, one can navigate away from it in that directory by using space and backspace and the list index is retained unless another file in the list is "accidentially" browsed to. When navigating off a list file, the info bar refelcts this by keeping the list index, but appending a "+/-offeset". For the full format of the nbavigation info string see the chapter about the info bar.

Keyboard Commands

CTRLSHIFTALTkey
1..9,0Directly set rating of the image (As this is list property, this only works when a list is loaded and the current file is part of it)
ctrl1..9,0Size and position dial, see under Numpad 1..9,0 for explanation. The ctrl included when using the main pad digits is ignored by the size and position dial.
shift1..9,0Add the current image to the xth list (0 means the 10th) in the currently active link node. Only works if a link node is active, links to that many lists and the target list is not protected. If there is also a list loaded and the current image is part of it, the images tags will be copied as well.
shiftalt1..9,0Add the current image to the xth list and removes it from the current list.
BOpen parent folder with Windows Explorer and select current image ("Browse")
ctrlCCopy selected (entire current viewport if nothing selected)
DOpen a new uiv instance with the same image open ("Duplicate")
FFit to screen (current viewport is scaled to the maximum zoom where still everything fits onto the screen)
GIncrease gamma correction
shiftGDecrease gamma correction
altGReset gamma correction
HFlip horizontally (on the current viewport)
IToggle bottom bar
ctrlIShow dialog with further image and file information
Lrotate left, around viewport center, small step
altLrotate left, around viewport center, large step (small step x alt multiplier)
shiftLrotate left, around viewport center, 90
MMinimise
ctrlNErases image data (fills universe with background color)
ctrlshiftNCreates a new UIV list
ctrlOOpens an image (browse for one)
ctrlshiftOOpens an UIV list (browse for one)
PIf the current image is also the current list image (no offset), it is removed from the list, else it is inserted into the list after the current list position.
ctrlPPrint the selection (viewport if no selection). This opens the dialog with further settings.
Rrotate right, around viewport center, small step
altRrotate right, around viewport center, large step (small step x alt multiplier)
shiftRrotate right, around viewport center, 90
ctrlSSaves the selection (if nothing is selected, the viewport) as image file (PNG,JPEG,BMP).
ctrlshiftSSaves the current UIV list (browse for location)
TShow tag window for current image (if a list is loaded and the image is part of that list)
shiftTShow tag window for current list (a list needs to be loaded and be linked to from the currently active link node)
VFlip vertically (on the current viewport)
ctrlVSimple paste. All image data is replaced with the one from clipboard (transform is reset and window scaled to fit)
ctrlshiftVEnter paste mode. Resets the transform and allows to define the paste location by selection (all transforms extept translate are disabled during this mode). Apply paste with CTRL+V or exit mode with with ESCAPE.
ctrlYSet the viewport to the selection (zoom-translate)
ctrlshiftYZoom into selection (the window may grow in one direction)
ctrlshiftaltYZoom into selection (the window may shrink in one direction)
SPACEBARSwitch to next image file in directory.
shiftSPACEBARWhen this is the last image file in the directory, switches to the first one.
BACKSPACESwitch to previous image file in directory.
shiftBACKSPACEWhen this is the first image file in the directory, switches to the last one in the directory.
ENTERResize window to entire screen (transform is not modified, this means the top left part is the same as before). When already fullscreen, this restores the former window size showing the top left part.
shiftENTERResize window to entire screen (transform is modified such that the effect is that of no movement on the screen, just enlarging the viewport in all directions). When already fullscreen, this restores the former window size by shrinking the viewport borders in all directions.
DELETESends this file to the recycle bin (without confirmation). The viewport stays the same, but "conceptually" it moved a file back, so F5 will load the previous and space will load the next. The dirlist is updated.
shiftDELETEDeletes this file (not to the recycle bin and without confirmation). The viewport stays the same, but "conceptually" it moved a file back, so F5 will load the previous and space will load the next. The dirlist is updated.
HomeGo to first in UIV list
ctrlHomeGo to first image in the currently browsed directory
EndGo to last in UIV list
ctrlEndGo to last image in the currently browsed directory
Page UpGo to previous in UIV list
shiftPage UpMove this UIV list item up (=earlier) in the list
Page DownGo to next in list
shiftPage DownMove this UIV list item down (=later) in the list
Up ArrowWalk up on the image (the image scrolls down)
altUp ArrowWalk up on the image, large step
shiftUp ArrowWalk up on the image, with "up" interpreted as on the untransformed image.
shiftaltUp ArrowWalk up on the image, with "up" interpreted as on the untransformed image, large step.
ctrlUp ArrowMove the window up on the screen.
ctrlshiftUp ArrowDecrease the window height (bottom edge moves up).
Down ArrowWalk down on the image (the image scrolls up)
altDown ArrowWalk down on the image, large step
shiftDown ArrowWalk down on the image, with "down" interpreted as on the untransformed image.
shiftaltDown ArrowWalk down on the image, with "down" interpreted as on the untransformed image, large step.
ctrlDown ArrowMove the window down on the screen.
ctrlshiftDown ArrowIncrease the window height (bottom edge moves down).
Left ArrowWalk left on the image (the image scrolls to the right)
altLeft ArrowWalk left on the image, large step
shiftLeft ArrowWalk left on the image, with "left" interpreted as on the untransformed image.
shiftaltLeft ArrowWalk left on the image, with "left" interpreted as on the untransformed image, large step.
ctrlLeft ArrowMove the window to the left on the screen.
ctrlshiftLeft ArrowDecrease the window width (right edge moves to the left).
Right ArrowWalk right on the image (the image scrolls to the left)
altRight ArrowWalk right on the image, large step
shiftRight ArrowWalk right on the image, with "right" interpreted as on the untransformed image.
shiftaltRight ArrowWalk right on the image, with "right" interpreted as on the untransformed image, large step.
ctrlRight ArrowMove the window to the right on the screen.
ctrlshiftRight ArrowIncrease the window width (right edge moves further to the right).
Numpad 1-9Type a position code. Imagine the square formed by the 9 keys as the screen region. By pressing a sequence of keys, you select which parts of the screen should be covered by the window. When done, press the numpad zero (possibly with modifiers). The code is retained until you press another of 1-9 after pressing 0. Note that two keys in one dimension stand for half the screen in that direction (not two thirds). Alternatively CTRL+1..9, 0 may be used in place of the numpad keys since numpad may be hardly accessible on a laptop keyboard - because for this CTRL is already needed, the "without zooming" operation is not available this way.
Numpad 0End and apply position code. The image is zoomed appropriately, thus the visible region stays the same. The window fits completely within the selected screen region and keeps its aspect ratio ("touch from inside").
altNumpad 0End and apply position code. The image is zoomed appropriately, thus the visible region stays the same. The window is resized such that the smaller dimension covers as much of the screen as specified while keeping the aspect ratio ("touch from outside").
shiftNumpad 0End and apply position code. The image is zoomed such that the visible region is at least the same as before. The window fits exactly to the selected screen region thus its aspect ratio may change (leading to more visible in one dimension since the zoom is always the same in all directions).Here, "Alt" is ignored (meaningless) when shift it pressed.
ctrlNumpad 0End and apply position code. The image zoom is not changed, thus the visible region of the image changes. The window fits completely within the selected screen region and keeps its aspect ratio ("touch from inside").
ctrlaltNumpad 0End and apply position code. The image zoom is not changed, thus the visible region of the image changes. The window is resized such that the smaller dimension covers as much of the screen as specified while keeping the aspect ratio ("touch from outside").
ctrlshiftNumpad 0End and apply position code. The image zoom is not changed, thus the visible region of the image changes. The window fits exactly to the selected screen region thus its aspect ratio may change.Here, "Alt" is ignored (meaningless) when shift it pressed.
Numpad +Increase zoom ("zoom in") Window adjusts to keep the viewport the same part of the image, if possible. F10 does the same as Numpad +, because numpad may be hardly accessible on a laptop keyboard.
altNumpad +Increase zoom ("zoom in") using alternative step size . Window adjusts to keep the viewport the same part of the image, if possible.
ctrlNumpad +Increase zoom. The viewport center is the fixed point and the window size doesn't change.
ctrlaltNumpad +Increase zoom using alternative zoom step size. The viewport center is the fixed point and the window size doesn't change.
Numpad -Decrease zoom ("zoom out") Window adjusts to keep the viewport the same part of the image, if possible. F9 does the same Numpad - because numpad may be hardly accessible on a laptop keyboard.
altNumpad -Decrease zoom ("zoom out") using alternative zoom step size. Window adjusts to keep the viewport the same part of the image, if possible.
ctrlNumpad -Decrease zoom. The viewport center is the fixed point and the window size doesn't change.
ctrlaltNumpad -Decrease zoom using alternative zoom step size. The viewport center is the fixed point and the window size doesn't change.
ESCAPEClose application (except when inside some mode, then the mode is ecapsed)
F1Open this help file in the application associated with HTML.
F2Rename currently open image file (list and directory browser are updated, but not any other lists linking to it)
F3Show the current list to navigate to an arbitraty entry in it
shiftF3Builds a new list by filtering the images linked to by the current link node (and its subnodes) or if no link node is loaded, from the current list. A Dialog allows to define tag filters and the result can either be saved to disk, loaded as new list or appened to the current list.
F4Show the link browser. If no root node is set at that time, a file dialog pops up to select/create a root file. Once a root is set, F4 will directly jump to the currently active link node. Editing, including link tagging and switching root is all done in this browser.
F5Reload this image file from disk (changes the viewport the same way as your "file open" are currently set to do)
shiftF5Refresh the directory list (useful if files were added, renamed or removed by another application)
altF5Reblit the viewport (in case it outdated)
F6Go to next sibling folder of current folder. The first image in the new folder is loaded.
shiftF6Go to previous sibling folder of current folder. The first image in the new folder is loaded.
ctrlF6Go to first child folder of current folder. The first image in the new folder is loaded.
ctrlshiftF6Go to parent folder of current folder. The first image in the new folder is loaded. Tip: CTRL+F6 immediately followed by CTRL+SHIFT+F6 will take you to the first sibling of the current folder. Add SHIFT+F6 after that and it is the last sibling (since F6 and SHIFT+F6 wrap around ends).
F9Decrease zoom (same as Numpad -, see there for explanation and modifiers).
F10Increase zoom (same as Numpad +, see there for explanation and modifiers).

Mouse Action

CTRLSHIFTALTaction
right clickBring up mouse menu, which provides settings
dragWhen not started close to any window edge, drag the window around on the screen
dragWhen started close to top edge, drag the window vertically (horizontal locked)
dragWhen started close to left edge, drag the window horizontally (vertical locked)
dragWhen started close to right edge, resize window horizontally (drag right edge only)
dragWhen started close to bottom edge, resize window vertically (drag bottom edge only)
ctrldragDraw selection (for crop, copy)
ctrlclickSelect nothing
ctrlclickWhen in extended paste mode, a mouse down outside the current selection will place the selections top left corder at that position. Thus a CTRL+click results in placing the selection, dragging will then just further move the selection with the cursor.
ctrldragClose to selection border, drag this selection edge
ctrldragWell inside the selection, drag selection around
drop file/dirThe action depends on what is dropped:
  • directory: If the dropped set contains a directory, the first image in that directory is loaded. All other in the set are ignored.
  • a single image file: The image is loaded. If a uiv-list is already open, it is also inserted into the list after the current position.
  • else (The set is any other mixture of image and uiv-list files): 1.If no uiv-list is loaded, a new one is created. 2. All uiv-lists are inserted into the uiv-list after the current position. 3. All images are inserted into the uiv-list after the current position. The current list position is not changed and the loaded image is not changed.

Mouse menu

screenshot 1 of the bottom bar (toggle with 'I') screenshot 1b of the bottom bar (toggle with 'I') screenshot 2 of the bottom bar (toggle with 'I') screenshot of the file info window (CTRL+I) tagging window, file tags ('T') tagging window, list tags ('SHIFT+T') link browser window (F4) recent + favourite image folders window (CTRL+ALT+O) print window (CTRL+P) folder / list navigation window (F3) tag filter window (Shift+F3)

Application Title Editor

application title editor ('C') The application title format editor is opened by pressing 'C' without modifiers. It specifies the formatting used for the application title which shows up in the window task bar and application switching (ALT+TAB). The following placeholders will be replaced with the respective values:

Multithreading

The most CPU demanding part of the application -the pixel transform from source to display space- can now make use of multi-core and multi-processor systems (i'm not sure about this, but i suspect not too many free image viewers have MT). The number of threads is not hardcoded but user selectable in the range 1..64. WARNING setting way more threads than you have cores at disposal will make it considerably slower. I decided to allow up to 64 in case someone runs it on a "real system" ;) and wants to process huge pictures.

Terms of Use

(c) 2008 Copyright Fabian Seiler

This program may be used free of charge. The author denies any responsibility. You use this program at your own risk. The source code of the main program is available for inspection to anyone, but modification of the source code requires permission from the author.

This program uses the following components by third parties which fall under the copyright and terms of use of their respective authors: