Directory Opus 9 Logo

Animated GIF

Plugin for Directory Opus

This plugin allows you to view and manipulate Animated GIFs within Directory Opus viewer panels and windows.

Directory Opus is a file manager for Windows. Read my guide, Getting to know Directory Opus, for an introduction.

  • Directory Opus 9 & above:

    If you have the latest version of Opus 9 or above then you also have the latest version of the Animated GIF plugin. You don't need to download or install anything as the plugin is included in the installer for Opus itself.

  • Directory Opus 8:

    Version of the Animated GIF plugin is the last version you can use. It should be included with the Opus 8 installer but in case it is not you can download it (PGP sig). Copy the DLL in the zip to C:\Program Files\GPSoftware\Directory Opus\Viewers and restart Opus. (The Viewers path assumes you installed Opus to the default location, obviously.)

  • Directory Opus 6:

    Version of the Animated GIF plugin is the last version you can use. Download it (PGP sig), copy the DLL in the zip to C:\Program Files\GPSoftware\Directory Opus\Viewers and restart Opus. (The Viewers path assumes you installed Opus to the default location, obviously.)

  • All the functionality of the internal viewer

    The plugin emulates the functionality of the internal Directory Opus image viewer so that you don't lose anything by having it installed. This is important because the plugin takes over all GIFs, animated or not, in the Opus viewer pane. Plugin authors who wish to emulate the internal viewer should find the GIF plugin's source code (available below) useful and people simply using the GIF plugin should not notice anything different compared to what they are used to when viewing other image types, except for the addition of animation support and some other features.

    As with the internal viewer, GIF images can be dragged, zoomed, rotated, partially-selected, cropped, tiled, copied to the clipboard and printed, while animating or not. In fit-to-window mode animations scale in real-time as you resize the window. Opus viewer Preferences are respected, including the image frame, background colour and mouse button settings. (e.g. If the left mouse button is configured to drag the image you can still select portions of it by holding down the shift key, or by configuring the middle mouse button to select things and using that instead.)

    As with the internal viewer, you can view files on FTP (etc.) sites and inside of Zip (etc.) archives.

Standalone viewer window Thumbnails and the viewer pane
Standalone viewer window Thumbnails and the viewer pane
  • Animation Toolbar

    An extra, optional toolbar can appear at the bottom of the viewer/preview window when animated GIFs are displayed. The toolbar features a seekbar and also allows you to pause animations, step through them frame-by-frame and play them forwards or backwards.

  • Flatten animations

    The three toolbar buttons next to the play/pause controls allow you to flatten the frames of an animation into a single image. You can flatten horizontally, vertically, or tiled into a grid that fills the window. If you flatten to tiles while in fit-to-window mode then the tiles are scaled so you can see all of them and positioned to best use the available space.

    Flattened images can be dragged, zoomed, selected, copied to the clipboard and printed like normal images. In particular, you can use this to convert animations into storyboards which you can then re-save as non-animated GIFs in order to share the results with people who don't have Opus.

An animated GIF "flattened" into a storyboard.
An animated GIF "flattened" into a storyboard.
  • Transparent GIFs

    Transparent GIFs use the viewer's configured background colour, or their own colour if the viewer is set to auto-generate a background colour. If you set a transparent GIF as your Desktop wallpaper it will automatically be drawn on top of your Desktop's current background colour.

  • "Ctrl-A" hidden images

    Some GIFs are made of two images merged together by alternating pixels. When one of the images is much brighter it hides the other image. When you push Ctrl-A (Select All) in some web browsers they highlight any images on the page by drawing a dark colour over every other pixel; this masks the brighter image to reveal the darker one. The Animated GIF plugin allows you to reveal Ctrl-A images in Opus and will replace the removed pixels with the average colour of their neighbours to produce a solid image.

    To reveal hidden images in the viewer pane, right-click the image and choose one of the one of the Ctrl-A options from the menu. When using the standalone viewer window you can access the same options from the File menu.

    This works with animated files as well, although animated "Ctrl-A" images are quite rare.

Ctrl-A hidden image
Ctrl-A hidden image
  • Thumbnails

    GIF thumbnails support transparency. The plugin will also draw movie "sprockets" around the thumbnails of animated images so you can tell them apart from static images.

    Opus will also use the plugin to generate thumbnails file tooltips (infotips) and sub-thumbnails for folders and Zip (etc.) archives, if you have configured it Opus to show such thumbnails.

Thumbnail sprockets, sub-folders and archives
Thumbnail sprockets, sub-folders and archives
  • Configuration

    You can configure various aspects of the plugin via Settings > Preferences / Plugins / Viewers.

    The two Animation Controls checkboxes control whether the toolbar (see above) appears for animated GIFs when they are viewed in preview panes and separate viewer windows.

    The Film Sprockets option controls whether film sprockets are drawn around thumbnails (see above).

    The Frame Delay options allow you to adjust the delay between animation frames. Many GIF animations specify zero delay on the assumption that whatever is playing them will have an inherent delay like Internet Explorer does. In most cases this causes animations to play far too quickly in the viewer and so, by default, the plugin will wait 75 milliseconds between zero-delay frames.

Plugin configuration
Plugin configuration

Version (20th January 2017):

  • Included as part of the Directory Opus 12.3.4 installer.
  • Changes to make the plugin consistent with how Opus's internal viewer scrolls in newer versions.

Version (30th April 2011):

  • Included as part of the Directory Opus installer.
  • Minor bug-fixes.

Version (5th June 2009):

  • Included as part of the Directory Opus installer.
  • Fix for incorrect dimensions in the status bar when changing from one tiled/flattened GIF to another.

Version (22nd May 2009):

  • Included as part of the Directory Opus installer.
  • Fixed crash with very wide/short animated GIF thumbnails.

Version (23rd April 2008):

  • Included as part of the Directory Opus installer.
  • 64-bit support.
  • USB-Mode support.
  • Localised into the same languages as Opus itself.
  • Flattened images now have borders and frames around them. (Frames are only drawn if the viewer has frames enabled in Preferences.)
  • Added support for Crop and Undo-Crop.
  • Added support for controlling GIF animations via keyboard media buttons (play, pause, etc.).
  • Interlaced (sub-)images shorter than 4 pixels were not decoded properly.
  • More robust handling of corrupt images.
  • Selection preserved when rotating.
  • Scrollbars no longer appear/flicker when scrolling large images with the scrollbars hidden.
  • Memory leak when rotating GIF images 90 degrees clockwise.
  • If the Viewer was configured to resize only for the first image then new GIF viewers always opened at the minimum window size. If the Viewer was configured to resize for all images then a similar problem cause slight flickering when changing from another image type to a GIF.
  • Fixed several bugs in Flatten layout code which sometimes resulted in unnecessary scrollbars and poor tile arrangement and window resizing.
  • Fixed rotating images, when zoom set to Fit-to-Page, resulting in scaled down images despite there being screen space for them to be larger.
  • The animation toolbar was impossible to use if the left button was configured to close the viewer or toggle full-screen mode.
  • You can now shift-click to select the image when the left button is configured to close, advance or toggle full-screen. (As well as Scroll, which worked previously.)

Version (18th October 2006):

  • Last version which works with Opus 8.
  • Requires Directory Opus version or above.
  • Fixed problem when generating thumbnails for very large images.
  • Improved the way flattened mode arranges frames.
  • Improved window sizing when fitting images to the screen.
  • Flattened mode now redraws a bit faster.
  • Restructed internally to make way for future changes. (Not very exciting for now.)
  • Thumbnails for animated GIFs should look a little nicer, in some cases, if sprockets are enabled in the plugin's preferences.

Version (29th January 2006):

  • Last version which works with Opus 6.
  • Fixed crash when rotating images.

Version (27th June 2005):

  • Fixed crash when loading huge images.
  • Fixed crash when generating thumbnails for images with certain dimensions.
  • Fixed viewer window resizing when doing a vertical or horizontal flatten while zoomed.

Version "International Fix" (19th May 2005):

  • Fixed problem with localised versions of Opus.

Version (9th May 2004):

  • Fixed issue with some thumbnails and non-32-bit displays.

Version (12th April 2004):

  • Fixed rotation reset.

Version (18th August 2003):

  • Viewer window resizes on rotate and flatten (unless configured not to).
  • Fixed rounding error in tile-flatten layout code which sometimes resulted in wasted space.
  • Crosshair (select) cursor the same as Opus's now.
  • Configuration window now centered on its parent window (snapped to the monitor work area).
  • If an animation is loaded which requires a lot of memory (or there is not much physical memory available), only part of the animation will be loaded and a message will be displayed telling you so.

    I've been thinking about writing alternative GIF decoder/animation code which requires less memory, but would be slower and have less features, to use when the animation, completely decompressed into individual frames, is too large to fit in memory. This probably won't happen because it's a lot of work for what seem to be very rare cases. Huge GIF animations that you can't view with the plugin on a machine with a reasonable amount of memory are the kinds of things which should probably be encoded as MPEG (or whatever) rather than GIF.

Version (21th July 2003):

  • When dragging an image with the left mouse button it now scrolls in the same direction as the other Opus viewers.

Version (20th July 2003):

  • No longer resets to play-mode when you change to another image in the same window. Now you can browse through images while they are paused, playing backwards, or flattened.
  • Technical change to improve performance. (DLL base address set to 0x20130000.)

Version (13th July 2003):

  • Initial public release.

The plugin's C++ source code is available from the Pretentious Name Opus Plugin Source page.