Universal Graphics Viewer Plugin

We have just released a first beta of our DOpus Universal Graphics Viewer Plugin (utilising the excellent GFL graphics library), with support for HDR (and lots of other formats - see plugin About dialog for full list of supported file extensions). We hope to add support for EXR in the near future.

You can grab it from zwickysoft.com/download.htm

The original download links are not working at the moment. For the moment, you can download the plugin from:

DOpus UGV Plugin for Opus 32-bit DVP_UGV_Win32.zip (636.4 KB)
DOpus UGV Plugin for Opus 64-bit DVP_UGV_Win64.zip (1.4 MB)

To install, just extract the contents of the ZIP archive to the Directory Opus program folder (usually C:\Program Files\GPSoftware\Directory Opus).

There are a few things to finish off, including the website, but you can use it to view HDR files.

Please contact us with any comments, suggestions and bug reports.

Supported Formats:

(Note: This is a list of formats that the GFL supports. Some of these formats are already supported by Opus and will work already without the plugin.)

AVT RAW:                          .raw
Ability Photopaint Image:         .apx
Adobe Illustrator:                .ai
Adobe Photoshop:                  .psd
Alias Image File:                 .pix .als .alias
Amiga IFF:                        .iff .blk
Autodesk Animator:                .fli .flc
Bio-Rad confocal:                 .pic
CALS Raster:                      .cal .cals .gp4 .mil
Camera RAW:                       .raw
Canon EOS-1D Mark II RAW:         .cr2
Canon PowerShot:                  .crw
Casio QV-10/100 Camera:           .cam
Casio RAW:                        .bay .raw
Chinon ES-1000 digital camera:    .cmt
Cloe Ray-Tracer:                  .clo .cloe
CompuServe GIF:                   .gif .giff
Contax RAW:                       .bay .raw
Creative PC-CAM RAW:              .bay .raw
DKB Ray-Tracer:                   .dis
DNG:                              .dng
DPX:                              .dpx
Deluxe Paint, Electronic Arts:    .lbm .ilbm
Digital F/X:                      .tdim
Direct Draw Surface:              .dds
EPS Interchange Format:           .epi .ept
Electric Image:                   .ei .eidi
Encapsulated Postscript(Preview): .eps
Encapsulated Postscript:          .ps .eps
Epson RAW:                        .erf
Explore (TDI) & Maya:             .iff .tdi
Foculus RAW:                      .bay .raw
Fugawi Map:                       .fx3
Fuji S2 RAW:                      .raf
Gimp Bitmap:                      .xcf
Gimp Brush:                       .gbr
Gimp Icon:                        .ico
Gimp Pattern:                     .pat
HDRI:                             .hdr .hdri
Hasselblad RAW:                   .3fr
Icon Library:                     .icl
Imacon/Hasselblad RAW:            .fff
Image Magick file:                .mif .miff
Imaging Fax:                      .g3n
Intergraph Format:                .itg .cit .rle
JPEG / JFIF:                      .jpg .jpeg .jif .jfif .j .jpe
JPEG 8BIM header (Mac):           .jpg .jpeg .jif .jfif .j .jpe
Jeff's Image Format:              .jif
Kodak Cineon:                     .cin
Kodak DC120 Digital Camera:       .kdc
Kodak DC120 Digital Camera:       .kdc
Kodak DC25 Camera:                .k25
Kodak Photo CD:                   .pcd
Kodak Pro Digital RAW:            .dcr
Kolor Raw Format:                 .kro
Konica Camera File:               .kqp
Leaf RAW:                         .mos
Leica RAW:                        .bay .raw
Leica RAW:                        .rwl
LucasFilm Format:                 .lff
MTV Ray-Tracer:                   .mtv
Mac icon:                         .icns
Mac rsrc:                         .rsrc
Macintosh Quickdraw/Pict:         .pic .pict .pict2 .pct
Mamiya RAW:                       .mef
Mayura Draw:                      .pdx
Micron RAW:                       .bay .raw
Minolta DiMAGE RAW:               .mrw
Multiple Network Graphics:        .mng
Nikon RAW:                        .nef
Nikon RAW:                        .nrw
OS/2 Bitmap:                      .bmp .bga
Olympus RAW:                      .orf
Olympus Scan:                     .ols
Open Image Library Format:        .oil
PS2 TXC:                          .txc
PaintShopPro Browser Cache File:  .jbf
PaintShopPro Brush:               .jbr
PaintShopPro Brush:               .pspbrush
PaintShopPro Frame:               .pfr .pspframe
PaintShopPro Image:               .psp .pspimage
PaintShopPro Mask:                .msk
PaintShopPro Mask:                .pspmask
PaintShopPro Pattern:             .pat
PaintShopPro Picture Tube:        .tub .psptube
PaintShopPro Texture:             .tex
Palm Pilot:                       .pdb
Panasonic DMC-LC1 RAW:            .srf
Panasonic LX3 RAW:                .rw2
Panasonic RAW:                    .bay .raw
Pegs:                             .pxs .pxa
Pentax *ist D:                    .pef
Picture Gear Pocket:              .prc
Pixar picture file:               .pic .pxr .picio .pixar
Pixibox:                          .pxb
Portable Bitmap:                  .pbm .rpbm .ppma
Portable Document Format:         .pdf
Portable Greyscale:               .pgm .rpgm
Portable Image:                   .pnm .rpnm .pbm .rpbm .pgm .rpgm .ppm .rppm
Portable Network Graphics:        .png .apng
Portable Pixmap:                  .ppm .rppm
Postscript:                       .ps .ps1 .ps2 .ps3 .eps .prn
Psion Series 3 Bitmap:            .pic
Psion Series 5 Bitmap:            .mbm
Qrt Ray-Tracer:                   .qrt
Quantel VPB:                      .vpb
QuickTime Image Format:           .qtif .qti
Raw:                              .raw .gry .grey
Raw:                              .rawraw .gry .grey
Rayshade:                         .pic
Red Storm File Format:            .rsb
Ricoh Digital Camera:             .j6i
Rollei RAW:                       .rdc .ia
RoverShot RAW:                    .bay .raw
ST Micro RAW:                     .bay .raw
SciTex Continuous Tone:           .sct .ct .ch
Seattle Film Works multi-image:   .pwp .sfw
Seattle Film Works:               .sfw
Sega SJ-1 DIGIO:                  .sj1
Sigma RAW:                        .x3f
Silicon Graphics RGB:             .rgb .rgba .bw .iris .sgi .int .inta
Sinar RAW:                        .cs1 .sti
Softimage:                        .pic .si
Sony DSC-F1 Cyber-shot:           .pmp
Sony DSC-F828 RAW:                .srf
Sony PS2 TIM:                     .tm2
Sony Playstation TIM:             .tim
Sony RAW:                         .sr2 .arw
Sun Icon/Cursor:                  .icon .cursor .ico .pr
Sun Rasterfile:                   .ras .rast .sun .sr .scr .rs
Sun TAAC file:                    .iff .vff .suniff .taac
Synthetic Universe:               .syn .synu
TIFF Revision 6:                  .tif .tim .tiff
Truevision Targa:                 .tga .targa .pix .bpx .ivb
Utah raster image:                .rle .urt
Vista:                            .vst
Vivid Ray-Tracer:                 .img
Wavefront Raster file:            .rla .rlb .rpf
WinFAX:                           .fxs .fxo .wfx .fxr .fxd .fxm
Windows & Aldus Metafile:         .wmf
Windows Animated Cursor:          .ani
Windows Bitmap:                   .bmp .rle .vga .rl4 .rl8 .sys
Windows Clipboard:                .clp
Windows Comp. Enhanced Metafile:  .emz
Windows Compressed Metafile:      .wmz
Windows Cursor:                   .cur
Windows DIB:                      .dib
Windows Enhanced Metafile:        .emf
Windows Icon:                     .ico
Wireless Bitmap (level 0):        .wbmp .wbm .wap
X Windows System dump:            .xwd .x11
X11 Bitmap:                       .xbm .bm
X11 Pixmap:                       .xpm .pm
XV Visual Schnauzer:              .p7
YUV 16Bits Interleaved:           .yuv .qtl .uyvy
YUV 16Bits:                       .yuv .qtl .uyvy
YUV 4:1:1:                        .yuv .qtl
YUV 4:2:2:                        .yuv .qtl
YUV 4:4:4:                        .yuv .qtl
Zsoft Multi-page Paintbrush:      .dcx
Zsoft Publisher's Paintbrush:     .pcx .pcc .dcx

Supported File Extensions:

.3fr .ai .alias .als .ani .apng .apx .arw .bay .bga .blk .bm .bmp .bpx .bw .cal .cals .cam .ch .cin .cit .clo .cloe .clp .cmt .cr2 .crw .cs1 .ct .cur .cursor .dcr .dcx .dds .dib .dis .dng .dpx .ei .eidi .emf .emz .epi .eps .ept .erf .fff .flc .fli .fx3 .fxd .fxm .fxo .fxr .fxs .g3n .gbr .gif .giff .gp4 .grey .gry .hdr .hdri .ia .icl .icns .ico .icon .iff .ilbm .img .int .inta .iris .itg .ivb .j .j6i .jbf .jbr .jfif .jif .jpe .jpeg .jpg .k25 .kdc .kqp .kro .lbm .lff .mbm .mef .mif .miff .mil .mng .mos .mrw .msk .mtv .nef .nrw .oil .ols .orf .p7 .pat .pbm .pcc .pcd .pct .pcx .pdb .pdf .pdx .pef .pfr .pgm .pic .picio .pict .pict2 .pix .pixar .pm .pmp .png .pnm .ppm .ppma .pr .prc .prn .ps .ps1 .ps2 .ps3 .psd .psp .pspbrush .pspframe .pspimage .pspmask .psptube .pwp .pxa .pxb .pxr .pxs .qrt .qti .qtif .qtl .raf .ras .rast .raw .rawraw .rdc .rgb .rgba .rl4 .rl8 .rla .rlb .rle .rpbm .rpf .rpgm .rpnm .rppm .rs .rsb .rsrc .rw2 .rwl .scr .sct .sfw .sgi .si .sj1 .sr .sr2 .srf .sti .sun .suniff .syn .synu .sys .taac .targa .tdi .tdim .tex .tga .tif .tiff .tim .tm2 .tub .txc .urt .uyvy .vff .vga .vpb .vst .wap .wbm .wbmp .wfx .wmf .wmz .x11 .x3f .xbm .xcf .xpm .xwd .yuv


Added list of supported formats and file extensions.

ZwickySoft forums are now up and running.


Updated to beta with support for USBExport.

For more details, please see forum.zwickysoft.com/index.php/t ... ugin-0904/

Sign up on the ZwickySoft forums and subscribe to the Announcements section to be automatically notified of future updates.

Some feedback based on the 64-bit version. (I haven't tried 32-bit one.)

  1. The plugin appears as "DVP_UGV" in the Preferences list of plugins, which is a bit ugly.
  2. The configuration dialog would be much better if it displayed a list of all the extensions and let you tick or untick them. That way it's easier to see which extensions the plugin supports and much easier to turn them on and off.
  3. Only one of the three test MNG files here displays correctly using the plugin:


  4. The plugin's extension support overlaps what's supported by Opus internally and by bundled plugins.

    With the internally supported formats, the internal code gets priority and the plugin would never be called for those types (unless it sets the "override internal" flag, which would definitely not make sense for a plugin that handles so many formats!). So, for those internal formats, it's just adding clutter to the plugin, and potentially causing problems or slow-downs with non-image files that happen to have an image extension.

    With the bundled plugins, where the UGV plugin overlaps it's likely to cause problems/confusion as the plugins tailored towards those formats will probably do a better job. (Even if UGV might be better in some cases, it'd still make life easier to know which plugin is used for a format by default, rather than leave it up to the order the plugins end up in in Preferences, which will depend on when the UGV plugin was installed. If someone has problems viewing a raw image, it'll make life easier not to have to first work out which plugin they are using.)

    Here's are lists of the extensions I think should be removed from the UGV plugin, or at least disabled by default. I'm not against people turning them on explicitly if they have reason to do so, just want to avoid complicating things for no reason.

    Handled by Opus internally:

    • png apng
    • bga bmp dib rle r14 r18 sys vga
    • clp cur ico
    • iff ilbm lbm blk
    • gif giff
    • tga targa pix bpx ivb
    • tif tiff tim
    • jpg jpeg jif jfif j jpe
    • emf wmf emz wmz (Not sure about last two compressed versions, but Opus probably handles them.)
    • psp pspimage (Not sure about the other PaintShopPro formats. Opus may handle more of them than those two.)
    • psd

    Handled by the Raw Digital Camera plugin:

    • 3fr arw bay cr2 crw dcr dng erf fff kdc mef mos mrw nef nrw orf pef raf raw rw2 sr2 srf x3f
    • pbm pgm pnm ppm

    Handled by the PCX plugin:

    • pcx pcc dcx (PCX plugin doesn't list the last two extensions but may handle the format anyway via the file headers; I doubt it matters either way.)

    Handled by ActiveX:

    • pdf (the UGV plugin doesn't seem able to view PDF anyway -- does it need Ghostscript or something? -- but if it actually worked it'd presumably only display a bitmap of the first page, which would be very bad, and since ActiveX is a catch-all plugin UGV will always override it. So UGV really, really should not handle .PDF.) (Update: Newer versions of Opus block UGV from handling PDF to fix this.)
    • ai (Similar to PDF. There's also the Ardfry plugin which may be preferable to both ActiveX and UGV for AI files. It might still make sense for UGV to support .AI for people who don't have Adobe Reader or the Ardfry Codec, but I don't think the extension should be enabled by default as presumable UGV converts the first-page into a bitmap, which isn't as good as what the alternatives would do.)

    Footnote 1:

    Some of these overlap with existing functionality/plugins, but it may still make sense to enable them by default.

    • .ani (Opus displays .ani thumbnails by itself, but does nothing for .ani in the viewer. So UGV supporting .ani is useful.)
    • .dds (There is another DDS plugin, but I don't know how it compares to UGV.)

    Footnote 2:

    At least some of these extensions are probably ones the Raw Digital Camera plugin supports, but I'm not certain as I do not have test images. Since the Raw plugin doesn't handle these extensions by default (people would have to add them to it manually), there's no harm in leaving the UGV plugin to handle them by default. If I find test images and confirm that the raw plugin handles the formats, I'll let you know:

    • cam cs1 sti rdc ia j6i k25 kqp pmp rwl

Thanks for the comments Leo. I have just release beta which addresses (1) and (4). I have increased the height of the config dialog, and will change the list to a tickable list showing all extensions in the next update. (3) is a bug in GFL SDK which has been reported to the author.

The plugin does indeed use GhostScript for PDF support and will only display the first page for both PDF and ANI, so I have also added these to the excluded list by default. I had already excluded PDF in a previous version, but it somehow got re-enabled along the way.

Where you are not sure on whether plugins/Opus already supports some formats, I have not exlcuded them by default.

If you or anyone else have any other comments, please let me know about them.

Great stuff, thanks!

I noticed that the plugin still reports that it handles the disabled extensions, which means Opus will still be calling it for them in some cases (only for it to tell Opus it doesn't really handle them). You can eliminate that call entirely as folllows:

  • In DVP_Identify, only include the enabled extensions when filling in lpVPInfo->lpszHandleExts. (See dcrawrap.cpp for example.)
  • In your config dialog, when OK is clicked post DVPLUGINMSG_REINITIALIZE back to Opus so it asks the plugin for the new list of extensions. (See dcrawrap_config_dlg.cpp for example.)
  • In the same place in the config dialog code, tell Opus which extensions need their cached thumbnails updating. (See dcrawrap_config_dlg.cpp again. That has a "new way" which uses the Plugin Helper's ThumbnailCacheControl. That's the best way to do it but I'm not sure which Opus version introduced it. See just above for the commented-out "old way" if you want to fall-back on a method that works in earlier versions. I can work out which version needs which method if you need the info.)

Thanks for the info Leo. I wasn't sure how to get Opus to update the list of supported extensions, but now I know, I'll change it. :slight_smile:

i haven't seen any apng or mng animation working in dopus, neither with this plugin nor with the built-in viewer. is this some kind of configuration problem or are only still images supported?

This plugin will only show the first frame of them, I think.

Is either format actually used anywhere? I thought about extending the animated gif plugin to handle apng or mng but I don't think I've ever seen the formats in use except purely as examples of them. (Which is a shame as they'd be useful if browsers supported them.)

apng is supported by firefox and opera and also by chrome with a plugin. i haven't seen many of them either but apng could gain some relevance as animated gifs are getting popular again during the last few years.

Apologies for the late reply!

Just to confirm you are correct Leo. Any format supported by this plugin which offers multiple images/frames/pages will only have the first shown as a static image.

I've added a note to the root post as a heads-up for an issue that a few people have run into:

Note: Installing this plugin will cause Opus to treat PDF files as images; specifically, PDFs will be included in the viewer's next/previous file list, which may be unwanted. --Leo

Update: Newer versions of Opus now prevent this from happening, so you can ignore this note as long as you're on the latest version (Opus 10.5 at the time of updating this).

Hi all, I just wanted to check in here and see if EXR support was still something being looked at. It would send my heart all a-flutter, it would.

Have a great weekend, one and all!

I (still) use Ulead/Corel PhotoImpact a lot. The Ulead file format for saving files with 'layers' is .UFO (Ulead PhotoImpact Image).
Only the internal Ulead browser gives me a preview of the UFO files. Would it be possible for Universal Graphics Viewer Plugin to
also show previews for UFO files in Opus? It would help me a lot :slight_smile:

Apologies for the delay replying - I never got a notification e-mail saying someone had replied.

I'm really busy working on another project and consequently don't have much spare time at the moment to work on the plugin, so EXR support is unlikely in the near future. If I get some free time and have the inclination I may have a look, but no promises I'm afraid.

Re. UFO support, the GFL library (that UGV uses) website lists one of the supported formats as "Ulead PhotoImpact .upi", but the latest version of the library does not return this as one of the supported formats. UFO is not supported. I am unable to do anything about either problem unless the GFL library was updated to support these formats.

I have finally got this working (I have thousands of .eps file from six calculus textbooks that we have written), but it was a drawn-out pain, because not being a techie, I didn't understand the Ghostscript bit. For any others who may be struggling:

  • GhostScript needs to be installed.
  • There are links to the versions of GhostScript that are required at https://code.google.com/p/sagethumbs
  • Sometimes the first hover on an .eps file produces a text preview, but moving away and moving back fixes it.

The original download links are not working at the moment. For the moment, you can download the plugin from:

DOpus UGV Plugin for Opus 32-bit 636 KB
DOpus UGV Plugin for Opus 64-bit 1.37 MB

To install, just extract the contents of the ZIP archive to the Directory Opus program folder (usually C:\Program Files\GPSoftware\Directory Opus).

1 Like

It would seem the reposts plugin links are dead. Any chance for a reupload?

Local copies as the links broke again:

DOpus UGV Plugin for Opus 32-bit DVP_UGV_Win32.zip (636.4 KB)
DOpus UGV Plugin for Opus 64-bit DVP_UGV_Win64.zip (1.4 MB)

(I thought these were already here, but on closer inspection they were only visible to admins.)