ImageGear for C/C++ Introduction


03/03/2017

Paul Pauquette, Accusoft Senior Software Engineer

In the Overview section of the ImageGear for C/C++ help file, it states, "ImageGear® for C/C++ is the most advanced way to create, control, and deliver more secure, high-quality imaging applications. ImageGear allows you to add powerful imaging capabilities to your applications. ImageGear supports the most commonly used graphics file formats, providing complete compatibility when developing applications across multiple platforms, or when developing for users who have a variety of target systems."

ImageGear Explained

ImageGear is essentially an SDK for imaging. What is an SDK? SDK stands for a "software development kit" and is a library or group of libraries targeted to solving problems in a particular software domain. Think of a bag or pack loaded with all of the essentials needed to survive in the wild. In this case, ImageGear is a pack loaded with all of the essentials you'll need to survive the imaging wilds. What exactly is encountered in the imaging wilds? There are images and documents; raster and vector; color and bi-tonal; lossless and lossy compression; loading, conversion, and saving; annotations, scanning, printing, and recognition just to name a handful of flora and fauna you may encounter in the imaging wilds.

Hidden in each image, you can find complex things such as metadata and ICC profiles. You can think of imaging as being as simple as "some trees and rocks" or you can think of imaging as being as complex as a vast ecosystem waiting to be explored. Imaging, like a forest or national park, tends to encompass many different domains: everything from photographic imaging or document imaging to recognition and printing and scanning.

You may start a project thinking about one type of document or file format and find later that your customer needs to send you a different file format. With an SDK, it typically involves either passing in the new format or just changing a few lines to accept the new format. The SDK has abstracted the complexity of loading, viewing, manipulating, and saving images. There is always a balance between abstracting too much and hiding details that the user may need. We feel that we have achieved that balance with ImageGear. While it's easy to load, view, and save an image with ImageGear, it's just as complex as you want to get down into basics of the image, even down to the individual pixel.

File Formats

ImageGear handles so many different file formats. Think of these file formats as the necessities to your forage into the imaging wilds. ImageGear handles the basic raster formats like BMP, GIF, JPEG, PNG, and TIFF. It also handles the formats common to a specialty like photography, with support for PSD, DNG, and CameraRAW. ImageGear also handles those legacy types that you or your customer may have lying around like PCX, TGA, and PCD. ImageGear supports all these and more; it is your Swiss Army knife for loading images.

But it's just not enough to get the images into your application, you also need to manipulate and then save the files. Again, ImageGear supports saving images to many different format types. Take a look at the help section, "File Formats and Compressions" to see the whole vast array of image formats we support.

ImageGear not only handles raster images, it also supports vector images. It's a first-class document SDK with support for PDF. ImageGear also works with other vector formats like CAD (DWG, DWG, DXF) and SVG. You can create PDFs, add images or watermarks to them, add passwords and security, and rasterize them to save to another format. These are just a few things you can do with PDF in ImageGear.

Every good hiking pack has a medical kit inside of it. ImageGear is no different with excellent support for medical imaging. The SDK features support for DICOM images such as JPEG 2000, and reads and writes JPEG 2000 images with the ability to change many of the filter parameters. ImageGear's API also allows viewing of those high-gray images and determining how all of that information is displayed to the user.

Image Annotation

At some point along your trek in the wilderness, you'll need to put down markers so you can find your way back out. Annotation support sounds like a perfect tool to pick from our kit to lay down trail markers in the form of colored lines and shapes, text, or a bitmap. You can load in annotated TIFF images, and ImageGear also handles PDF marks. You can highlight, redact, attach a note, create a ruler, add a hotspot, and so much more. ImageGear has full-featured support for adding in annotations to your application.

Colorspace Support

ImageGear provides everything you need to work with color. After all, how can you capture the vast array of colors in our imaging forest without being able to handle CMYK natively? ImageGear supports fully the ability to read in a CMYK image and keep the image in CMYK color space or even convert it to another color space. ImageGear has support not only for RGB and CMYK color spaces, but also for HLS, LAB, YCbCr, YUV, etc. With the excellent colorspace support in ImageGear, you'll be able to effectively capture all of the colors in the imaging forest.

ImageGear's high-speed image display gives you support for displays with low color modes or for high quality displays. It supports changing the view of the image's brightness, contrast, or gamma, and it also allows you to rotate the view of the image rather than the image data in memory. There are so many different viewing operations that ImageGear supports.

Our kit offers the ability to acquire images from hard-copy through the TWAIN and ISIS scanning standards. We also offer the ability to produce hard-copy through our printing support. You can take advantage of the CMYK support in ImageGear to handle printing to CMYK without conversion to RGB color space.

Recent Improvements

However, like any kit, we want to make sure we're not carrying too many things, or getting disorganized, both of which can get in your way. That's why with this release we've looked back and re-packed our kit. We want to make sure that what we're carrying is essential and organized, and helps to make your journey clear.

We've re-written our help to provide you with the guide you'll need on your imaging trek. We've introduced a whole new set of samples that will help you get down to exactly the challenge you're trying to tackle. We've added tutorials to help guide you on your initial journey and help make sure you're off to a good start, not lost. Samples and tutorials that show specifically how to load an image, a sample that easily shows how to rasterize a PDF page so that you convert it to JPEG, PNG, or BMP, etc. We think these samples will help you focus on exactly what you need to solve.

So, download ImageGear, take a look at the map, and start on your journey into imaging with ImageGear as your kit. We think it will not only help you to survive your journey, but will give you the richest and most fulfilling experience on your imaging trek.


Paul Pauquette is a Senior Software Engineer in the SDK division. He joined the company in 1998 and has over 20 years of experience in software development. He has worked on many of the different SDKs provided by Accusoft.

Join the discussion.