I have written a small image viewer because ACDSee lacked some features I needed - tiled image viewing, alpha channel display, viewing cubemaps and reading (and writing) dds files. Because ddsview was modelled after ACDSee, the controls are quite similar.
- Alpha channel view
- Support for multiple layers in an image
- View all mipmaps in a dds file
- View slices of a 3d dds file
- See if an image is tileable in tile view
- Rotate images (wow...)
- Cubemap view for dds cubemaps
- Open Source...you don't have to pay etc.
- Uses an Open Source image loading lib - DevIL
- A littlebit slower than ACDSee (this is not really a feature, but I think it's nice if I tell you), but still quite fast for most images.
- Recognizes file type on content, not on extension
- Fullscreen mode
- Able to view .dds images - but supports all other common image formats as well (png, jpg, bmp, pnm, pcx, tga, tiff, xpm, ico, cur, hdr, ...)
- Save images as png, jpg, bmp, tga, dds (even ati1n/3dc+ compression), ...
- Display color below cursor
- DeepBrowse lets you view all images in a folder and all its subfolders
Send feedback to email@example.com, for example feature requests, bugs, images that don't load (if they are not too big). Also drop me a line if you know how to speed up drawing using the win32 api (I'm currently using StretchBlt() and ScrollWindow()).
As usual, this comes with no warranty.
My viewer uses the Developer's Image Library, so if you use this (great) image loading lib, your app is able to load all the images you can view with this viewer. Note that I use a somewhat modified version of that library (but most of my changes are in CVS).
20080930: Just got word that this still works fine on Vista 64 :-)
New in .663a (20051108): Tiff saving didn't work (it even caused a crash), this was fixed. Thanks to Yann Disser for the report. This was fixed in the image loading library, so ddsview's source code didn't change in this version.
New in .663 (20051019): Read and write support for 3dc+/ati1n compressed dds files.
New in .66 (20050813): luminance/alpha images can now be saved as png, fixed a very rare hdr loading bug, 16bpp luminance dds files load correctly (Humus asked for that, he dumped a z buffer into a dds file for debugging purposes), 3d dds files are now written back as 3d dds files (only the first slice was saved before), cubemap dds files are now written back as cubemap dds files (only the first face was saved before), png loading was improved. I noticed that blended images can't be rotated. This will be fixed later.
New in .651a (20050106): Fixed an annoying regression from previous releases that was reported by Patrick Hogenboom: On some systems, a "Error: No Error" dialog appears after registering formats with ddsview. Sorry. ;-)
New in .651 (20050102): ddsview has now a "DeepBrowse" feature which
lets you view all images in a folder and all its subfolders. To use it,
drag a folder onto ddsview or enable "DeepBrowse with ddsview" in the
"Register file formats" dialog ('R' key). This is a really
handy feature, especially combined with the ability to drag images from
ddsview to explorer (and perhaps Lock Window Size). Tell me
what you think of it :-)
Using this features I went through most images on my hard disk and found some images that didn't load correctly, and as a result this release features better xpm support and fixes a crash (argh!) that occured with some gif files. Also new is the ability to remove ddsview from the registry (some kind of "uninstall") by unchecking all checkboxes in the "Register file formats" dialog (press 'R').
New in .65 (20041226): A LOT. This is the best release so far imo. Again thanks to Dan Cormick, who convinced me to include a toolbar (and who drew this toolbar) as well as a "lock window size" feature. Nearly all features of ddsview are available from the toolbar (but not all, so check out the help anyways...). If you don't like it, you can disable it (check the help to learn how ;-)). Patrick Hogenboom told me that ddsview had some problems on multimonitor systems, these problems are now fixed. Marcin Piaskiewicz wanted support for floating point dds files, so those are now supported (32 bit float images as well as 16 bit half images and 16 bit unsigned short images - these formats are known as A16B16G16R16, R16F, G16R16F, A16B16G16R16F, R32F, G32R32F and A32B32G32R32F in dxtextool). And finally, Yann Disser complained that WindowsXP style .ico files with a real alpha channel were not supported, so these do now work as well. Thanks to you all :-)
New in .64 (20041214): You can now drag images from ddsview onto other programs (ctrl+leftdrag or shift+leftdrag). Drag them for example onto windows explorer to copy images to other folders or onto photoshop to open them in photoshop. Thanks to Dan Cormick for the suggestion. Also a few minor fixes were made (zoom to fit didn't work with the new visual styles, ...). The drag-image-onto-other-program feature was not too easy to implement, because there's next to no documentation about it on the web. If you want to implement this, check out the files oledrag.h/cpp from ddsview's source (basically, you set CF_HDROP as your drag type and allocate a DROPFILES structure followed by the filenames into a HGLOBAL...).
New in .63(a) (20040924): Again not much. Added support to read 16 bit xpm files
and saving luminance images as bmp does now work. Several minor bug fixes.
And the new Windows XP visual styles are supported - if you don't like them,
delete the .manifest file. I had to hack around a bug in the new status bar:
It seems to be buggy, left aligned text in a status bar part sometimes overlaps
the other parts - see WM_SIZE code if you want to know how I "fixed" this, or
send me a mail if you know how this can
be done in a saner way.
I'm somewhat stuck with the linux port - I decided to use OpenGL to draw the images on linux, but I can't manage to get a single-buffered app running with GLX 1.3 (double buffered works, though). Again, if you know how to do this, send me a mail (send a mail as well if you like to see a linux port at all - this helps to keep me motivated ;-) ).
UPDATE: Added a fix for luminance decoding in dds files that caused a crash on XP under rare circumstances. Also moved the WM_SIZE hack mentioned above to WM_PAINT - it requires less workaround code and fixes a problem with the previous approach.
New in .6299 (20040824): Not much. Added support to read and write Doom3 RXGB dds files - thanks to Thomas Hutter (der_ton). Some minor fixes. The port to linux is slowly improving...
New in .6298 (20040711): DXT3-encoded dds files are now saved with a correct alpha channel (the alpha channel of DXT5-encoded dds files had a small bug that was removed, too). Better loading support for: dds (images with width, height <= 4 work now), ico, gif (nonanimated interlaced gifs were not deinterlaced before), psd (some more psd images are supported), psp (also some more), pbm (binary pbm files were somewhat broken), hdr (non-square images do now work), tiff (there were some regressions in the last release: The alpha channel was always white, some color images were black-white. Nobody told me, so I guess nobody noticed ;)). Note that all this were changes in the Image Library, so the source of ddsview itself has not changed since .6297).
New in .6297 (20040703): Improved the file associations dialog. You can now select which file types to register and *TADADADA* you can choose to override the Image and Fax Display on WinXP (at least in the german XP version the Image and Fax Display always opens images, even if you register them with a different program). Some bugs were fixed as well, but I don't remember which ;)
New in .6296 (20040630): Now there's the possibility to view the image alphablended with a background pattern ('B' key), thanks to Patrick Hogenboom for the suggestion. Some minor bugs were fixed as well, for example images are now rotated around the viewport center and if you paste an image after panning the loaded image everything looks ok too (thanks to Yann Disser for telling me about this bug).
New in .6295 (20040625): You can now go through the slices of a 3d dds image.
This means that now everything that is in a dds file can be viewed with
ddsview - the first non-beta release is getting closer! :-)
A minor regression has been fixed as well (window resizing didn't work when you switched layers in .6294)
New in .6294 (20040623): DDS Saving options, saving of 3dc compressed dds files, some fixes, palettized images display color below cursor as well (in addition to the index below the cursor), current layer and mipmap number are displayed.
New in .6293: Rename image, display color below cursor, view 3dc/ati2n compressed dds files (!), view mipmaps (thanks to Humus for his help with 3dc compression).
New in .6289: Much better gif support, several minor bug fixes.
New in .6282: Clipboard support, save options (currently only .jpg quality, several .dds options will follow soon), support for images with more than 6 layers, support for .hdr files (thanks to Christopher Lux for this idea), some bug fixes.
NOTE: ddsview has been updated and is now able to load the .dds files shipped with FarCry (a video game). They use some unusual flags, but now they work allright. Thanks to barbe-q for telling me about this bug :) Saving of .dds files has been improved as well, images with alpha are now saved as DXTC3 instead of DXTC1 (this means they look much better, but are slightly larger).
Last change: 2005-11-08 (yyyy-mm-dd)