an image viewer thing

Seymour is easily my most ambitious project to date, with some uncommon features. It's not perfect but I've used it on a daily basis for a few years now.

Interesting features:

The not perfect part:

The code contains a lot of firsts for me, and I didn't really know what I was doing when implementing some of the base functionality.


Download Seymour 0.9.50 (updated 2020-07-24)

Seymour is portable freeware for Windows XP/Vista/7/8/10; Direct2D acceleration requires Windows 7 or later.

What's new

Waifu2X support files - Only required for resizing images using the GPU-accelerated Waifu2X upscaling filter.
Extract to the directory where Seymour.exe is located.


0.9.70 (2020-07-28)


- Fixed some display, caching and stability issues with animated GIFs
- Sped up and fixed some display issues with alpha channel handling


- Various tweaks to image preview rendering
- Image preview background color is no longer hardcoded to black
- Editing tools Crop/Colors/Sharpness now retain their settings in Editor.ini
- Script configuration files moved to \scriptconfig\
- Improved group colorization algorithm
- When view is sorted by modification date, grouping is done by year only to
  avoid creating a huge number of groups
- Sorting by image ID or Hash no longer creates groups

0.9.60 (2020-07-25)


- Whoops, memory caching of images was mostly nonfunctional
- Whoops, Direct2D was forced on instead regardless of settings
- Left mouse on the image preview was still incorrectly centered sometimes
- Script list was always created as a flat list at startup ignoring the setting
- Removed some debug code accidentally left in


- Backspace/R/Numpad period now toggles image zoom between 1:1 and fit to view
- Animated GIFs are now cached as well, using a separate cache
  - Added a setting to the configuration dialog

0.9.50 (2020-07-24)


- Dragging to select images using the right mouse button would crash if the
  mouse was moved to a blank area in the thumbnail list
- Image hashes were not properly initialized for unloaded thumbnails
- Preview didn't display always on selecting an image if the preview image
  was previously empty
- The thumbs listing scrollbar now gets properly disabled when not needed
- Left mouse on the image preview to zoom in now properly centers the view
- Fixed a freezing issue when deleting the currently active directory via
  the directory tree context menu
- The View->New Folder menu item didn't always do anything
- Item highlighting wasn't properly updated in script function Changed()
- Automatic background color algo now ignores irrelevant edges of the image


- Proper support for separate profiles:
  - Configuration files now should be located in data\profiles\default
  - Use the /p profilename argument to launch a different profile
  - Skins now contain the styling for trees and thumbnails, but these can
    be overridden in per-profile folders (Treestyles.ini, Thumbstyles.ini)
- You can now middle click on some toolbar buttons to execute alternative
  or additional actions:
  - Edit: Go straight to Crop tool
  - Convert to PNG/JPEG/BMP: Convert in place, delete original
  - Delete: Skip Recycle Bin, fully delete
  - Find similar images: Enter a custom tolerance for similarity comparison
  - Groups: Show only images within groups
  - External programs: Opens the External programs manager
- Dragging to reorder images now also works in filtered mode (e.g. "show
  selected only"), in which case the ordering is not saved
- Right clicking on the image preview toggles between 1:1 and scaled view
- Added View->Show Grouped Images to only display images in sort groups
- Added File->Touch to update modification timestamps of selected files
  - Added Touch After Copy/Move settings to Settings/Advanced
- Crop tool:
  - Added an Auto Crop function
  - Now remembers previous crop area
  - Allow manual editing of coordinates
  - Increased accuracy
  - Rearranged user interface
- External programs:
  - External programs menu/toolbar items now display their associated icons
  - Added setting to hide the caption text in toolbar buttons
  - Scripts can now added to the External Programs menu/toolbar by selecting
    a script file instead of an executable in Open with->Manage Programs
  - Toolbar items now retain their customized layout
- Scripting:
  - Added a new nonvisual image list: LIST_TEMP
  - Added a list parameter to many functions
  - Execute() didn't work for items whose caption contained '&'
  - Added some scripts and updated older ones
  - Added AddToList, RemoveFromList, ClearList, FindSimilarImages,
          GetCategoryIDs, SetCategoryID, GetCategoryPath,
	  GetFilterString, SetFilterString, GetImageHash
- Now uses the newer Direct2D 1.1 API for improved image scaling quality:
  - New image scaling methods added to preferences
  - Mostly fixes rendering of transparent PNGs


- Added a filter editbox for the Categories treeview
  - Press Shift-F8 to focus the editbox
  - Press F8 or Enter to alternate focus between the editbox and the tree
  - Press Up or Down to focus the first or last item in the Categories tree
  - Press Ctrl-Backspace to clear the filter
  - Press Esc to clear the filter and refocus thumbnail list
- Fixed issues with some shortcut keys not always working
  - Custom shortcuts set for Bookmarks and Custom programs were inoperative
  - Navigation keys didn't function after clicking on Image Preview until
    focus was restored to the thumbnail list
- Improved menus: added shortcut keys and added more items to main menu

- Added color configuration settings for NewBackground (for newly added images)
  and Dragmarker (for thumbnail drag marker) in Thumbstyles.ini [Main] section
- Thumbs list now uses a native scrollbar
- Miscellaneous UI tweaks

- Fixed a longstanding threading issue that could cause thumbnail captions to
  disappear during or after a drag'n'drop operation
- Fixed statusbar not updating after selecting a range using shift-click
- Statusbar now adheres to the current skin style

- Added more tags that can be used when calling external programs via the
  "Open with..." submenu in the thumbnail list context menu, and made the
  "Info" button in the external programs management dialog show help for them
- Modified the way the waifu2x DLL is called to prevent freezing
- Custom skins (SpTBXLib .skn files) can now be used by putting them in the
  data/skins directory
- Added two new skins: Dark and Classic, which mimics the look of Windows 2000.
- The Navigation treeview colors are now customizable via data/NavTree.ini
- The Search treeview now uses the same color palette as the Categories
  tree and is thus now themable

- Now compiled in Delphi 10.3 instead of Delphi 2010
- Thumbnail highlight style is now customizable in thumbstyles.ini via the
  [Highlighted] section


- Support for automatic running of scripts on certain events; see scripting.txt

- Pressing Ctrl-C now copies the current image to the clipboard

- Fixed selecting a range of images being seemingly slow due to not repainting
  the view immediately after making the selection
- You can now add an image to the current selection by right-clicking on its
  thumbnail's Tag checkbox area. Drag the mouse over thumbnails with the right
  mouse button held down to quickly select or unselect multiple images

- Fixed mouse wheel scrolling not working during a drag operation
- You can now preview images by moving the mouse over the thumbnails list
  with the Ctrl key held down

- Fixed files with Unicode names not getting saved properly in custom sort
- Fixed mouse cursor not hiding until moved when going to fullscreen view
- The fullscreen view background color can now be customized or set to
View full log