ImagXpress Photo: Spruce Up Your Digital Images
ImagXpress Photo includes tons of features for managing digital images, and it's easy-to-use. It's also expensive.
ImagXpress 8 is a comprehensive imaging toolkit for creating, compressing, and manipulating documents and graphics on the Windows platform. The suite includes COM (ActiveX) and .NET versions of the components. This review focuses on the .NET capabilities of ImagXpress 8 Photo in Winforms applications (see Figure 1).
This is high-end software: It supports popular and obscure image file formats, but it also reads and/or writes dozens of flavors within each type. For example, the software handles 13 varieties of Tag Image File Format (TIFF) files, which might seem excessive until your project's specifications include reading one of the more obscure byte-ordering and compression combinations.
Loading an image into ImagXpress can be as simple as providing its file system path or as advanced as getting the data from a stream, the screen, or the clipboard. The LoadOptions object lets you read parts of an image based on an offset, scale it, crop it, rotate it, get a thumbnail version, or adjust the colors or grayscale.
Some graphics formats (especially TIFF and EXIF) support metadata that you can add and update. ImagXpress' ImageXTagCollection exposes these attributes and includes methods to retrieve, add, remove, and copy embedded tag data. The object model resembles many you've already used in .NET, so it's easy to feel comfortable with this environment.
The suite includes an impressive set of image enhancement and processing features that you often find in shrink-wrapped graphic design packages. For example, the Processor object includes RemoveRedeye() and AutoRemoveRedeye() methods to remove "devil eyes" caused by flash photography. AutoRemoveRedeye() doesn't even need you to point to the region. It analyzes the entire image, locates the eyes, and fixes the red part. I tried the feature on a photo of myself taken last Christmas. You use it by loading the image into the ImageXView control, creating a Processor object, and then calling the method with a couple of parameters. The result was bang on—it turned my eyes from red to their natural brown with one click.
Some of the processing capabilities clean up distorted or damaged images. For example, faxed documents tend to become crooked when transmitted. The DocumentDeskew() method detects and removes the distortion. If you scanned a rare book, but couldn't hold the pages flat enough, try applying the DocumentShear() method to the bent portion of text.
A project to test the removal of specks from a photograph took only five lines of code (not counting what Visual Studio generates). In an instant, the application cleaned much of the noise from the sample image. That said, some photos might require multiple calls to the Despeckle() method to do the job. There's no way to tell without looking at it. As much as we love automation, it takes human intervention at some point to determine how much tinkering produces the best restoration.
ImagXpress ships with sample code for all of the key functions. Some samples haven't been ported to all of the platforms and languages. This means .NET developers must look through the ActiveX-COM folder (especially the VB6 category) to see several implementations.
The ImagXpress object model is a developer's (and technical writer's) dream because most of the properties and methods apply to all supported image types (TIFF, BMP, GIF, and so on). The designers handle specific characteristics of a given image format (such as metadata, compression, or passwords) in the LoadOptions and SaveOptions classes. Given such a gentle learning curve, the task-oriented "How To" documentation and MSDN-style reference are quite sufficient for most developers.
When software is this easy to use, so versatile, and performs this well, you've got to expect a downside somewhere. The top-of-the-line ImagXpress Photo costs $2499 for a single development license. ImagXpress also includes runtime-royalty fees of $129 per client (true, it drops to $50 each for fifty licenses), and some specific functionality you require might necessitate a $699 to $1999 add-on. It costs $995 to use ImagXpress Photo as part of a commercial process such as on a Web server, and you might be subject to an annual subscription fee. This pricing structure makes for a tougher "build or buy" decision for individual developers, but presents less of a problem for the many corporations that rely on high-end ultrasound, cardiology, and electronic health records applications.
Price: $2499 per developer for ImagXpress Photo, plus runtime licenses
Quick Facts: Advanced image toolkit for creating, manipulating, annotating, and printing documents, forms, and photos.
Pros: Effective document and photograph clean-up; easy conversion of image formats; consistent object model; easy to learn; good samples, support, and documentation.
Cons: Development kit is expensive; significant runtime royalties for each client; some samples not ported to .NET.