AccuSoft ImageGear Version 16

AccuSoft ImageGear
Version 16
For all Windows 32-Bit Platforms
For ActiveX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Copyright Information

Information in this document is subject to change without notice. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of AccuSoft® Corporation.

© 1996-2008 AccuSoft® Corporation. All rights reserved.

AccuSoft and ImageGear are registered trademarks of AccuSoft Corporation. High Performance Imaging and the "half gear" logo are trademarks of AccuSoft Corporation. All rights reserved. All other company and brand names are trademarks or registered trademarks of their respective owners.

This manual and the software described in it are both products of the USA.

Document revision number: 04-14-08

AccuSoft Corporation, 71 Lyman Street, Northborough, MA 01532

(508) 351-9092,

(508) 351-9086 (Fax)

Internet address: www.accusoft.com


Volume 1: User Guide

This part of ImageGear User's Manual provides you with the following useful information:

  • ImageGear features, improvements, ImageGear components structure, plus information about AccuSoft's Product Support Services and descriptions of AccuSoft's other products. See Introduction Chapter.
  • How to install ImageGear. It also describes the structure of installed ImageGear files and the ImageGear Licensing process. See Installation Chapter.
  • How to incorporate ImageGear's imaging capabilities into your own applications by using the sample source imaging programs provided with your toolkit. See Getting Started Chapter.
  • Device-Independent Bitmaps (DIBs), the memory structures that are at the heart of ImageGear's architecture. The majority of ImageGear functions operate either directly or indirectly upon DIBs. Device-Dependent Bitmaps (DDBs) are also discussed, as is the meaning of Pixels (the building blocks of bitmaps), and all color and grayscale representations supported by ImageGear. See Understanding Bitmap Images Chapter.
  • How to call an ImageGear function, including setting up the variables and structures passed as arguments, and details which functions to use to perform the variety of imaging tasks. See Using ImageGear Chapter. It also explains how to work with some ImageGear components API.
  • Detailed information on each of the file formats supported by ImageGear (see the section ImageGear Supported Formats), its control parameters, supported features and compressions, plus "at-a-glance" tables that describe the features supported by each format and provide guidelines on which formats may be most suitable when speed, storage space, or similar considerations are important. See File Format Reference Chapter.
  • The ImageGear Image Guarantee and how to identify the imaging problem if it occurs. See AccuSoft Image Guarantee Chapter.

Besides this there are some supplemental information:

  • The lists of error codes returned by ImageGear functions. These error codes are classified in different groups and numbered in alphabetical and numerical orders. See Appendix A: Function Error Return Codes.
  • Detailed info about TIFF, JPEG, EXIF-TIFF, EXIF-JPEG, IPTC, PNG and GIF formats non-image data storage. See Appendix B: Non-Image Data Storage Appendix.
  • Appendix C: Recognition Component Specifications provides you with detailed specifications of ImageGear Recognition component characters, codepages, languages lists, modules, etc.
  • Appendix D: TWAIN Scanning Capabilities represents the descriptions of the most oftenly used TWAIN scanning capabilities.
  • SOFTWARE LICENSE AGREEMENT provides you with the AccuSoft's SOFTWARE LICENSE AGREEMENT and Software Support and Maintenance Policy documents.

Use also Appendix E: Glossary at the end of this Volume.


Introduction

Introduction

ImageGear is the most advanced way to create, control, and deliver more secure, high-quality imaging applications. Using ImageGear, you can easily add powerful imaging capability to your applications. ImageGear supports all of the most commonly used graphics file formats (and many more), providing complete compatibility when developing applications across multiple platforms, or when developing for users who have a variety of target systems.

ImageGear features include analysis, correction, and manipulation of both computer-generated and scanned images, "special effects", file format conversion, image enhancement through color reduction/promotion/dithering, and GUI (Graphical User Interface) functions. The toolkit supports the following bit depths internally: 1, 4, 8-bit gray level, 8i, 9-16-bit gray level, 24, and 32. The toolkit can also read all the additional bit depths possible for the supported file formats.

With ImageGear, you are assured of the high quality and performance you expect from AccuSoft, the industry leader in image processing toolkits. In addition, ImageGear's integrity is backed by the AccuSoft Image Guarantee: ImageGear is guaranteed to read all valid raster images in the supported formats. See the AccuSoft Image Guarantee for more information.


In This Guide

This manual consists of two Volumes, organized as follows:

Volume 1: User Guide provides the following information about ImageGear:

  • The Introduction chapter includes information about ImageGear features, improvements, ImageGear components structure, plus information about AccuSoft's Product Support Services and descriptions of AccuSoft's other products.
  • The Installation chapter explains how to install ImageGear.
  • The Getting Started chapter demonstrates how to incorporate ImageGear's imaging capabilities into your own applications by using the sample source imaging programs provided with your toolkit.
  • The Understanding Bitmap Images chapter helps application developers to thoroughly understand Device-Independent Bitmaps (DIBs), the memory structures that are at the heart of ImageGear's architecture. The majority of ImageGear functions operate either directly or indirectly upon DIBs. Device-Dependent Bitmaps (DDBs), the meaning of pixels (the building blocks of bitmaps), and all color and grayscale representations supported by ImageGear are also discussed.
  • The Using ImageGear chapter explains how to call an ImageGear function, including setting up the variables and structures passed as arguments, and details which functions to use to perform the variety of imaging tasks mentioned in the Overview above. It also includes information about using the ImageGear components.
  • The File Format Reference chapter provides detailed information on each of the 100 file formats supported by ImageGear, plus "at-a-glance" tables that describe the features supported by each format and provide guidelines on which formats may be most suitable when speed, storage space, or similar considerations are important.
  • The AccuSoft Image Guarantee chapter explains how to use ImageGear's Format information executables (.EXE files that read image files) to examine the header, tags, and other fields.

This volume also includes the following appendices:

  • Appendix A: Function Error Return Codes lists the error codes returned by ImageGear functions. These error codes are classified in different groups and numbered in alphabetical and numerical orders.
  • Appendix B: Non-Image Data Storage provides detailed information about TIFF, JPEG, EXIF-TIFF, EXIF-JPEG, IPTC and PNG formats non-image data storage.
  • Appendix C: Recognition Component Specifications provides detailed specifications of ImageGear Recognition component characters, codepages, languages lists, modules, etc.
  • Appendix D: TWAIN Scanning Capabilities describes the most frequently used TWAIN scanning capabilities.
  • SOFTWARE LICENSE AGREEMENT provides the AccuSoft's SOFTWARE LICENSE AGREEMENT and Software Support and Maintenance Policy documents.
  • Appendix E: Glossary defines the imaging toolkit terms and provides a Bibliography.

Volume 2: API Reference provides detailed information about each control, object, property, method, event, and enumeration of the following ImageGear Components:

  • ImageGear ARTX Component API Reference
  • ImageGear ART Component API Reference
  • ImageGear CAD/Vector Components API Reference
  • ImageGear Core Component API Reference
  • ImageGear Dialogs Component API Reference
  • ImageGear Display Component API Reference
  • ImageGear Effects Component API Reference
  • ImageGear Formats Component API Reference
  • ImageGear FreqIP Component API Reference
  • ImageGear GUI Component API Reference
  • ImageGear ImageClean Component API Reference
  • ImageGear ISIS Component API Reference
  • ImageGear JPEG2000 Component API Reference
  • ImageGear MD Component API Reference
  • ImageGear PDF Component API Reference
  • ImageGear Processing Component API Reference
  • ImageGear Recognition Component API Reference
  • ImageGear TWAIN Component API Reference
  • ImageGear Vector Component API Reference
  • ImageGear View Component API Reference

This manual also provides an Index.

NOTE: The contents of this manual are are also included in their entirety in the ImageGear Help (HTML Help *.chm format). The HTML Help documentation files for ImageGear ActiveX 32-bit and its components are installed in the ...\Accusoft\ImageGear v16\[IG edition]...\Documentation directory when installing the product.

Refer to the sections Directory Structure and Description of Installed Files for more information on where files are installed.


What's New in ImageGear

ImageGear v16 offers many new features and enhancements, including support for new formats, improved support for some important file formats, improved support for camera RAW images, PDF files, etc.

  • PDF Enhancements
  • Vector Enhancements
  • Digital Camera Raw Format Enhancements
  • File Format Enhancements
  • Image Processing Enhancements
  • Miscellaneous New Features


PDF Enhancements

  • Support for 3D PDF Content
  • PDF/X and PDF/A Verifiers
  • PDF Display Performance Optimization

Support for 3D PDF Content

ImageGear v16 introduces support for 3D PDF content. Starting with version 1.6, PDF introduces the capability for collections of 3D objects, such as those used by CAD formats, to be embedded in PDF files. Such collections are called 3D models, and PDF refers to them as 3D Artwork. In PDF documents, 3D Artwork is represented by 3D annotations stored in Universal 3D (U3D) format (see Support for Universal 3D (U3D)).

See Also:

Working with 3D Artwork

Image Mark

PDF Marks

PDF/X and PDF/A Verifiers

There is new ImageGear API that verifies compliance with PDF/X and PDF/A standards, which are defined by the International Organization for Standardization (ISO).

  • PDF/X standards apply to graphic content exchange

The most widely used standards for a print publishing workflow are several PDF/X formats: PDF/X-1a, PDF/X-3, and PDF/X-4.

  • PDF/A standards apply to long-term archiving of electronic documents

The most widely used standards for PDF archiving are PDF/A-1a and PDF/A-1b (for less stringent requirements).

For more information on PDF/X and PDF/A, see the ISO website.

See Also:

PDF Standards

IGPDFPreflight

IGPDFPreflightReport

PDF Display Performance Optimization

ImageGear 16.0 introduces optimized PDF display rendering and scrolling capabilities. ResetDisplayCache causes IG display API to re-render PDF page content for display.


Vector Enhancements

The following vector enhancements are introduced in ImageGear v16:

  • Support for Universal 3D (U3D)
  • Support for Design Web Format (DWF)

Support for Universal 3D (U3D)

U3D file format, short for "Universal 3D", is a universal vector standard for storing three-dimensional data of all kinds to facilitate data exchange. The U3D format is natively supported by PDF, and 3D objects in U3D format can be inserted into PDF document files and interactively visualized by PDF viewers (also see Support for 3D PDF Content).

The ImageGear U3D Vector Component supports reading, writing and rasterizing the U3D vector files.

Support for Design Web Format (DWF)

DWF is an open file format developed by AutoDesk for storing DWG files on the Internet. DWF contains a vector based description of drawings and illustrations.


Digital Camera Raw Format Enhancements

ImageGear version 16 introduces the following Digital Camera Raw format enhancements:

  • Support for more than 80 new digital camera Raw file formats. See ImageGear Supported Digital Camera RAW Formats for a complete list of supported Raw Formats. Also see Working with Digital Camera RAW formats .
  • Interactive GUI for Digital Camera RAW color reconstruction. See Reconstructing Camera Raw images with ImageGear Processing API and Control Parameters for the Digital Camera Raw and Headerless Camera Raw Filters for more information.


File Format Enhancements

ImageGear v16 introduces the following new file format enhancements:

  • Support for the new file format: XPS. The XPS Document format represents a set of related pages with a fixed layout, which are organized as one or more documents, in the traditional meaning of the word.
  • ImageGear provides support for the Adobe PSB (Photoshop Big) or Large Document format, which is a newer version of Adobe PSD designed for files over 2 gigabytes, supporting up to 300,000 pixels in any dimension. The PSB format is identical to the Photoshop native format (PSD) in many ways.
  • ImageGear now allows users to load layered Photoshop image files (Adobe PSD and Adobe PSB) and retain image layers for editing. Users can also create new image layers, delete existing ones, as well as flatten and display the selected composition of image layers. See Working with ImageGear Layers for more information.
  • Support for the Spot Color Scheme (Pantone and others). See Working With Spot Colors.
  • Support for XMP metadata. For more information, see Working with XMP Metadata and XMP Non-Image Data Structure.


Image Processing Enhancements

ImageGear v16 introduces new Image Processing enhancements in the following categories:

  • ImageClean Enhancements
  • Mathematical Morphology
  • Special Effects

ImageClean Enhancements

There are the following new ImageClean features:

  • Punch holes removal

RemovePunchHoles automatically detects and removes the punch holes on a 1-bit scanned image. It works for most common hole puncher standards including 2, 3, 4 and 5 hole puncher marks. The method takes a 1-bit image page and the set of advanced parameters specifying the location and diameter of punch holes.

  • Line removal

RemoveLines automatically detects and removes horizontal and vertical solid and broken lines on the 1-bit scanned image. The method takes a 1-bit image page and the set of advanced parameters specifying the line's attributes.

  • Dot Line removal

RemoveDotLines automatically detects and removes horizontal and vertical dotted lines on the 1-bit scanned image. The method takes a 1-bit image page and the set of advanced parameters specifying the attributes to be used for the processing.

Mathematical Morphology

The field of mathematical morphology contributes a wide range of operators to image processing, all based around a few simple mathematical concepts from set theory. The operators are particularly useful for the analysis of binary images and common usages include edge detection, noise removal, image enhancement and image segmentation.

The following morphology ImageProcessing functions have been added: Erode, Dilate, Open and Close.

See Also:

Mathematical Morphology

Special Effects

ImageGear version 16 introduces the following new ImageProcessing effects:

  • Area Detection - The DetectRedeyeArea detects an area around specified point where the colors correspond to the point color with the specified threshold.
  • Red Eye Removal - Red-eye removal removes the "red eye" effect in color images by converting the red color in the eye to the new specified color. The RemoveRedeye removes red eye for every point in the ROI of a hIGear image. See Red-Eye Removal for more information.
  • Solarize - Solarize mimics the accidental exposure of photographic film to light.
  • Radial Wave (Ripple) This RadialWave effect warps the image in concentric rings.
  • Pinch - Pinch transforms the image by making it appear as if it were pinched in the center.
  • Perspective - The Perspective effect provides a perspective-like effect by placing image corners to the specified points, and stretching the image linearly between them.
  • Mosaic -
    • Pixelate function gives groups of pixels identical values, and optionally adds borders between these groups. The groups can have the shape of rectangle, rounded rectangle or ellipse. This transform effectively reduces the resolution of the image, and can make it appear that you have zoomed in on a smaller image.
    • MosaicTiles creates a mosaic effect by dividing a bitmap into tiles of a specified shape and size, changing the color of all pixels in each tile to the average color of pixels within the tile, and adding 3D borders between the tiles.
  • Directional Wave - The DirectionalWave function warps the image in a specific direction.
  • Warping (Cylinder, Parabolic and Sphere) - The Cylinder, Parabola, and Sphere functions perform a point-to-point stretch of the image to give a warping effect.
  • Shear - The Shear function applies a shearing effect to an image, moving the image rasters or columns according to the specified offsets.
  • Aging - The Aging function applies an aging effect to make an image look older.
  • Spatter - The Spatter function applies a spatter effect to an image, making it look to have been painted in the impressionist style of painting.
  • Shadow - The DropShadow function adds a drop shadow to an image.
  • Oilify - The Oilify function makes the image appear similar to an oil painting.
  • Functional Light -
    • The DirectionalLight function adds bars of light according to a sine wave pattern.
    • The RadialLight function adds circles of light according to a sine wave pattern.
    • The FreeDirectionalLight function adds bars of light according to a custom pattern.
    • The FreeRadialLight function adds circles of light according to a custom pattern.
  • Fragmentation - The Fragment function fragments an image into four blended images which move diagonally outward from the original image.
  • Lens Flare - The LensFlare function applies a lens flare effect to the image.
  • Pointillist - The Pointillist function makes the image appear to have been painted in the pointillism style of painting.
See Also:

Special Effects Processing


Miscellaneous New Features

  • Bilinear and bicubic interpolation support for down size resize. See ResizeImage.
  • Implemented the floodfill functionality to fill an image area with a specified color. See FloodFill.
  • New VS 2008 samples are available.
  • Added Top-Left corner padding mode to the IP resize functionality.
  • Implemented support for noncompliant TGA RGBA images.


ImageGear Overview

ImageGear provides the most comprehensive set of imaging features available in the industry. It provides a complete set of over 700 methods and properties focused on the following features:

  • High Speed Display
  • Image Loading and Saving
  • Printing
  • Advanced TWAIN Scanning
  • Image Processing
  • Special Effects
  • Transitions
  • Pixel Access
  • ROI Processing
  • Graphical User Interface
  • Format Conversion
  • Compression
  • Animation
  • Native CMYK Support
  • ImageClean™ Auto-image Correction
  • Database
  • Annotations
  • Built-in Internet Support (URL, FTP, Gopher)


High Speed Display

ImageGear gives you complete control over how your application displays each of its images. Among the attributes you can set on an image-by-image basis are:

  • Auto-color reduction for low color modes
  • High-quality display for all video modes
  • Contrast/Brightness control
  • Display effects (wipes, blocks, etc.)
  • Color reduction (several types)
  • Transparency
  • Gamma correction
  • Dithering
  • Rotation
  • The portion of the image to display (this array of pixels within the DIB bitmap is called the Image Rectangle)
  • How to fit the Image Rectangle to the Device Rectangle
  • The background fill pattern and color to use (for any area of the Device Rectangle left vacant by the image)
  • Region within the display area the image is to be displayed (this area is called the Device Rectangle)
  • Center image in window
  • Fit to width, height, window
  • Precision scrolling
  • Sub-region display
  • Auto-aspect ratio
  • Preserve black and preserve white display for 1-bit images
  • Sub-second display rotation supported
  • Faster image display
  • Anti-alias display
  • Huge image display capability
  • Merge 2 Images during display
  • 4x faster scale-to-gray
  • Also, by using the image's LUTs (Look Up Tables), you can cause the colors in the image's color palette to be translated to other colors you select (and therefore you can, for example, display an 8-bit grayscale image in any 256 colors you choose).
  • All of the above display attributes affect the display only. They do not alter either the image bitmap or the color palette in the DIB.
  • In addition, any time your image is being displayed, you can center, zoom, or scroll it from within your application.
See Also:

Controls,Objects and Format Filters

Operational Concepts

Loading, Saving and Acquiring Images

Displaying Images

Image Processing

Working with Format Filters

Working with TIFF Files


Image Loading and Saving

ImageGear now supports over 200 raster file formats. This far exceeds all other image toolkit vendors. AccuSoft also is the only company willing to guarantee that all images in the listed formats will be displayed correctly!

See Also:

Loading, Saving and Acquiring Images

ImageGear Display Component API Reference

ImageGear Formats Component API Reference

Working with Format Filters

Working with TIFF Files


Printing

  • Print to any Windows printer with complete control
  • Auto-color reduction for high-quality printing
  • Single- or multi-page printing
  • ImageGear automatically overcomes several inherent limitations of printer drivers to ensure your images print at the highest quality possible.
  • ImageGear's printing functionality includes automatic sizing to full page, half, quarter, eighth, and sixteenth, with auto page centering, or specific placement.
  • Printing many images to a single page is as simple as specifying the location of each image.
  • Images can be printed to any location and at any size desired.
  • ImageGear includes a sample to illustrate printing a single image onto multiple pages for creating posters of any size.


Advanced TWAIN Scanning

ImageGear supports TWAIN 1.6, 1.7, 1.8, and 1.9; it works with a wider variety of scanner devices, digital cameras, and video capture boards. No TWAIN toolkit is easier or more comprehensive.

ImageGear includes a wide array of functions, providing the developer precise control of the scanning process, including:

  • Control of the TWAIN transfer mode
  • Control of the available TWAIN device listing
  • Control of the scanning area
  • Control of the brightness and contrast
  • Control of the DPI (dots-per-inch resolution)
  • Control of the display of the TWAIN UI
  • Setting of a callback function to gain control during scanning
  • Control of the ADF (Automatic Document Feeder) for multi-page scanning
  • Control of scanner capabilities
See Also:

Loading, Saving and Acquiring Images

ImageGear TWAIN Component API Reference


Image Processing

  • Region of interest (ROI) support for basic rectangles as well as ellipses, polygons, and other shapes.
  • The most complete color space support, including color space conversions, color separation and combination, support for any color space found in any of the 100 supported formats, and support for color spaces such as CMYK without conversion to RGB for perfect fidelity.
  • Powerful color reduction for maximum quality and minimum size.
  • Encryption and decryption for entire image or any part of image.
  • Matrix convolutions of any size with pre-defined or user-supplied matrix values.
  • Special effects, automatic image correction, intelligent re-sizing, and much more.
See Also:

Image Processing

ImageGear Processing Component API Reference


Special Effects

ImageGear provides the following special effects:

  • Blur
  • Spotlight
  • Emboss
  • Stitch
  • Chroma Key
  • Watermark
  • Add Noise
  • Pixelate
  • Texture Tile
  • Posterize
  • Diffuse
  • Twist
  • Motion

See Also:

Special Effects Processing

ImageGear Effects Component API Reference


Transitions

ImageGear has the most advanced and flexible image-display technology available. It is also the fastest, with much of the functionality coded in assembler for optimal speed. One component of this is the ability to transition from one image to another in a more interesting fashion than simple replacement. Sometimes referred to as "transitions" or "wipes", these features are useful for slide shows, or any type of product where the image itself is the focus. For this type of product, ImageGear provides a set of functions for migrating from one image to another in an interesting way.

The transition support in ImageGear includes 29 types of transitions with control over the "granularity" and speed. Granularity refers to the size of the object used or the smoothness of the transition. The speed is the total time used to make the transition from one image to another. Of course, all other display parameters are also available for controlling the transitions.

See Also:

ImageGear Effects Component API Reference

ImageGear Processing Component API Reference

Image Processing


Pixel Access

ImageGear is equipped with several functions that will allow you to get and set the values of individual pixels, rows or columns of pixels, and rectangular groups of pixels. This family of functions is referred to as the "pixel access" functions. For each kind of pixel access, you can obtain the value(s) of a pixel or group of pixels, or set the value(s) of a pixel or group of pixels.


ROI Processing

  • Specify rectangular ROI for nearly all image processing functions.
  • Specify arbitrary ROI for most image processing functions. Functions included to create certain shape types such as ellipse, polygon, and freehand.
  • Create 1 bit mask image for identifying which pixels to include/disclude from image processing algorithms.


Graphical User Interface

Though the entire ImageGear toolkit is geared toward providing a graphical interface as well as image handling and image processing support, the set of GUI functions included in ImageGear goes a step further in the areas of GUI pan, magnify, thumbnail, and GUI palette editing. Although the functions provided do much of the work for you, you are still in control when you need to be, due to the flexible argument lists and the availability of callback functions, which you write to control. For example, you have control when a palette might actually be changed, or when a directory search filter is to be provided. In addition, you can control the GUI window dimensions and positions.

See Also:

ImageGear GUI Component API Reference


Format Conversion

ImageGear now supports over 200 raster file formats, by far exceeding all other image toolkit vendors. AccuSoft is also the only company willing to guarantee that all images in the listed formats will be displayed correctly.

See Also:

ImageGear Supported Bit Depths


Compression

ImageGear supports most of industry-standard compression algorithms.

See Also:

ImageGear Supported Compressions Reference


Animation

ImageGear includes the most complete GIF format support available, providing total programmer control of all aspects of reading and writing GIF images. With ImageGear you can:

  • Read still and animated GIFs with a single function call.
  • Access all data contained within a GIF, including comments, local palettes and animation sequencing information.
  • Read ALL types of GIFs.
  • Create any type of GIF, including non-interlaced, interlaced, single image, multi image, animated, etc.
  • Write fully customized GIFs with comments, animation sequencing, custom palettes and more.


Native CMYK Support

  • Images stored in CMYK format can be loaded into ImageGear without being converted to RGB. This ensures the original color information is maintained with perfect fidelity.
  • Images can be saved to formats that support CMYK color space.
  • Images stored in CMYK can be optionally converted to RGB when loaded (default for STD), or converted to RGB at any time after loading.
  • Basic image processing, image access, display, and other functions work with native CMYK image data.
  • CMYK images can be color separated or converted to several other color spaces.


ImageClean™ Auto-image Correction

  • Automatic detection and correction of white text blocks
  • Automatic detection and removal of unnecessary borders
  • Automatic detection and correction of inverted image
  • Automatic detection and correction of rotated image
See Also:

ImageGear ImageClean Component API Reference

Using ImageGear ImageClean Component


Database

  • Load images from memory in 200 plus formats.
  • Load images from file with any offset for images embedded in a database.
  • Decode images using various compression algorithms without specific format headers.
  • Import/export images from/to various types of memory formats.
  • Save images to files at specified offsets.


Annotations

The ImageGear ART component integrates with ImageGear and supports the Wang annotation specification for storing annotations in TIFF. However, this is not a requirement; annotation data may be stored anywhere. The simple API makes adding and managing annotations easier than ever. ART works as an overlay to loaded images. ART annotation marks can include vector graphics, text, bitmaps, user-defined marks and others. There are many built-in features such as automatic handling of object creation, a toolbar that you can customize, attribute dialog boxes for each type of mark, built-in internationalization and more. To use ImageGear ART functionality you should attach ImageGear ART component.

See Also:

Using ImageGear ARTX Component

Using ImageGear ART Component

ImageGear ARTX Component API Reference

ImageGear ART Component API Reference


Built-in Internet Support (URL, FTP, Gopher)

AccuSoft's ImageGear product now has Internet Support for Web pages. You can take advantage of AccuSoft's new Internet support to enable your product on the Web.


ImageGear Supported Formats

ImageGear supports a great number of the most popular graphics file formats with different compressions, preventing compatibility problems before they arise. These ImageGear-supported file formats are described in detail in the File Format Reference Chapter.

The complete list of supported formats (as of this writing) is below:

Format
Read/write?
Description
Adobe DNG
Read
Adobe Digital Negative format
Adobe PDF
Read-write
Adobe Portable Document Format, with ImageGear PDF Component only.
Adobe PS
Read-write
Adobe PostScript language files level III. Requires ImageGear PDF Component.
Adobe PSB
Read-write
Adobe Photoshop Big
Adobe PSD
Read-write
Adobe Photoshop
AFX
Read
AutoFX format
AVI
Read
Audio/Visual Interleaved data (animation), requires multi-media component
BMP
Read-write
Standard Windows format including OS/2 bitmap format.
BTR
Read-write
Brooktrout FAX format, Group III or Group III 2D or 301
CAL
Read-write
CALS raster, Type I
CGM
Read-write
The Computer Graphics Metafile (CGM) file format for capturing and retrieving two-dimensional pictures. Requires ImageGear CAD/Vector (CGM) Component.
CLP
Read-write
Windows Clipboard format for raster images
CUR
Read
For reading Windows 3.x and Windows95 mouse cursor display.
CUT
Read
Dr. Halo CUT format
DCRAW
Read
Raw images created by many digital cameras. See the sections Working with Digital Camera RAW formats and ImageGear Supported Digital Camera RAW Formats.
DCX
Read-write
Intel multi-page FAX format
DGN
Read-write
DGN is a file format that is used by Intergraph MicroStation and Interactive Graphics System CAD applications. Requires ImageGear CAD/Vector (DGN) Component .
DIB
Read-write
DIB is a synonym for the BMP format.
DICOM
Read-write
DICOM is a public standard created to provide a flexible and expandable means for storing, sharing, and transporting digital medical images.(Supported with ImageGear MD Component attached only)
DWF
Read-write
A file format designed by AutoDesk for storing DWG files on the Internet. DWF is a 2D or 3D vector based description of drawings and illustrations. Requires ImageGear CAD/Vector (DWF) Component.
DWG
Read-write
An AutoCAD, AutoCAD2004, and AutoDesk graphics format (DraWinG). Requires ImageGear CAD/Vector (DWG, DXF) Component.
DXF
Read-write
An AudoDesk graphics format (Drawing eXchange Format). Most CAD programs (PC-based) support this format. Requires ImageGear CAD/Vector (DWG, DXF) Component.
EPS
Read-write
IG without a PDF component allows for the reading of the preview portion of EPS files and writes EPS files. ImageGear PDF component allows for the reading of any EPS files.
EXIF-JPEG
Read-write
Exchangeable image file format for Digital Still cameras. ImageGear also allows you to process non-image data that is usually encoded in this file format. See the section Meta-data structure.
EXIF-TIFF
Read-write
Uncompressed EXIF is recorded in TIFF Rev. 6.0 formats with two pages - the first is the main image, the second is a thumbnail (if it present).
FlashPix
Read-write
FlashPix (requires ImageGear FlashPix Component)
GEM
Read
GEM Paint Raster format
GIF
Read-write
ImageGear supports every aspect of GIF including animated and transparent. Requires ImageGear GIF/TIFF-LZW Component.
Group 3
Read-write
Proprietary formats with custom headers followed by Group III data.
Group 3 2D
Read-write
Proprietary formats with custom headers followed by Group III 2D data.
Group 4
Read-write
Proprietary formats with custom headers followed by Group IV data.
HPGL
Read-write
The HPGL and HPGL2 file formats are vector format developed by Hewlett Packard for driving plotters. The file extensions used include .plt, .hpg, .hp2, .pl2. Requires ImageGear CAD/Vector (HPGL, HPGL/2) Component .
IBM AFP
read
Meta file format that may include raster and/or text data. This type format belongs to IBM's format family, which also includes IBM IOCA, IBM MO:DCA, PTOCA and IBM MMR compression.
IBM IOCA
Read-write
Image Object Content Architecture format.
IBM MO:DCA
Read-write
Mixed Object Document Content Architecture format.
ICO
Read-write
Windows ICON format
IFF
Read-write
Electronic Arts format
IMG
Read
Xerox raster format, Group IV
IMR
Read
IMRS-Raster image
IMT
Read-write
IMNET format, Groups III and IV.
JBIG2
Read/Write
Multipage bitonal images. With ImageGear JBIG2 Component only.
JPEG
Read-write
ANSI-standard, full-color image format. IG supports all aspects of this format including lossless and progressive. JFIF - industry standard header for JPEG compressed images.
JPEG2000
Read-write
New JPEG2000 standard, based on the EBCOT (Embedded Block Coding with Optimized Truncation of the embedded bitstreams) algorithm. With ImageGear JPEG2000 Component only.
JPX
Read-write
JPX file format is an extension to JPEG 2000 file format. It normally uses JPEG 2000 compression, but allows other compressions as well, such as JBIG, CCITT Group3, CCITT Group4, etc.
KFX
Read
Kofax format, Group IV
LV
Read
LaserView, LaserData, Group IV
MAC
Read
Macintosh Paint format.
MAC PICT
Read-write
Macintosh metafile format. IG supports raster data only.
Motion JPEG2000
Read
Motion JPEG2000 file format is designed to contain one or more motion sequences of JPEG2000 images, with their timing, and also optional audio annotations, all composed into an overall presentation.
MSP
Read
Microsoft Paint format
MULTIMEDIA
Read
Motion Pictures Experts Group, an ISO specification for the compression of (digital) broadcast quality full-motion video and sound, requires ImageGear Multimedia Component.
NCR
Read-write
NCR is the black and white image compression format.
PBM
Read-write
Portable BitMap (Unix graphic file format)
PCD
Read-write
Kodak format for high resolution photographs
PCX
Read-write
PC Paintbrush format
PGM
Read-write
Portable BitMap (Unix graphic file format)
PNG
Read-write
Portable Network Graphics, intended as successor to GIF
PNM
Read-write
Portable BitMap (Unix graphic file format)
PPM
Read-write
Portable BitMap (Unix graphic file format)
PTOCA
Read
Presentation Text Object Content Architecture support for IBM's AFP printer architecture.
QuickTime
Read
Apple's multimedia development, storage, and playback technology. QuickTime files combine sound, text, animation, and video in a single file, requires ImageGear Multimedia Component.
RAS
Read-write
SUN raster format.
RAW
Read
Raw pixel data storage image formats, proprietary image formats
Scitex CT
Read-write
For electronic pre-press and visual communications systems, part of the HandShake Foreign File Transfer Protocol, a standard for defining storage formats and data interchange protocols.
SGI
Read-write
Silicon Graphics raster format
SVG
Read-write
Scalable Vector Graphics format. This is a modularized language for describing two-dimensional vector and mixed vector/raster graphics in XML. Requires ImageGear CAD/Vector (SVG) Component.
TGA
Read-write
Targa file format. ImageGear supports many aspects of this format including alpha channel.
TIFF
Read-write
Tagged Image File Format. IG supports every aspect of this format.
TXT (ASCII Text)
Read
Converted to raster image. Control font, point size, page break, margins, attributes etc.
U3D
Read-write
Universal 3D format. Requires ImageGear U3D Vector Component.
WBMP
Read-write
Optimized to support mobile computing devices that use the Wireless Application Protocol (WAP).
WMF
Read-write
Windows standard metafile format. IG converts non-raster data to raster during load.
WPG
Read
Wordperfect Graphic Format. IG reads bitmaps stored in this format
XBM
Read-write
X Windows Bitmap format
XPM
Read-write
X Windows Pixmap format
XPS
Read-write
XPS (XML Paper Specification)
XWD
Read-write
X Windows Dump format

NOTE: AccuSoft is always willing to consider supporting a new format. If you are interested in discussing support for your own format, please call the AccuSoft Sales Department at (508) 351-9092.


ImageGear Support for DCRAW Formats

ImageGear supports 100+ Digital Camera RAW formats.

ImageGear supports reading raw images created by many digital cameras. Support for raw images includes reading of image pixel data, color reconstruction of raw images, and reading of metadata stored with the images.

Since there are many flavors of raw formats, the list is continuously growing as new vendors/models enter the market, and the formats share many similarities, ImageGear treats all DCRAW formats as one format: IG_FORMAT_DCRAW. Details regarding manufacturer, model, etc, are available as metadata.

Please see the section Working with Digital Camera RAW formats to know how to work with DCRAW formats using ImageGear functionality.

For the list of supported DCRAW formats and the level of support please see the section ImageGear Supported Digital Camera RAW Formats.


ImageGear Components

ImageGear functionality is broken into components. This provides extra flexibility in packaging and licensing ImageGear technology. Each component encapsulates particular functionality of the product. All components are enabled when you evaluate or purchase the product (there is an expiration date for evaluation version), but different licensing fees may be associated with different components for deployment of your application. Please contact AccuSoft's Sales for more information about deployment licensing fees.

You need to attach a component (other than the core component) before using it. See the Samples for a demonstration of attaching the components. The sample code has been provided so that you may simply cut and paste the attaching component code into your own application.

Please see ImageGear Licensing for full information about ImageGear and its component licensing process. See also the SOFTWARE LICENSE AGREEMENT.

The API used to attach components, AssociateComponent, CreateComponent, ComponentCount, GetComponentInfo and others are described in ImageGear Core Component API Reference Chapter.


ImageGear Components Descriptions

This section summarizes the ImageGear components that are currently available. For more information on these components, see the Using ImageGear chapter and Volume 2: API Reference.

The following ImageGear components are available:

  • ImageGear ABIC Component
  • ImageGear ARTX Component
  • ImageGear ART Component
  • ImageGear CAD/Vector (DGN) Component
  • ImageGear CAD/Vector (DWF) Component
  • ImageGear CAD/Vector (DWG, DXF) Component
  • ImageGear CAD/Vector (HPGL, HPGL/2) Component
  • ImageGear CAD/Vector (CGM) Component
  • ImageGear CAD/Vector (SVG) Component
  • ImageGear Core Component
  • ImageGear Dialogs Component
  • ImageGear Display Component
  • ImageGear Effects Component
  • ImageGear Formats Component
  • ImageGear FlashPix Component
  • ImageGear FreqIP Component
  • ImageGear GIF/TIFF-LZW Component
  • ImageGear GUI Components
  • ImageGear ImageClean Component
  • ImageGear ISIS Component
  • ImageGear JBIG2 Component
  • ImageGear JPEG2000 Component
  • ImageGear MD Component
  • ImageGear Multimedia Component
  • ImageGear PDF Component
  • ImageGear Processing Component
  • ImageGear Recognition Component
  • ImageGear TWAIN Component
  • ImageGear U3D Vector Component
  • ImageGear Vector Component
  • ImageGear View Component
  • ImageGear XPS Component
NOTE: There is a useful utility provided with the ImageGear installation - Working with ImageGear ActiveX Dependency Analyzer available from \Accusoft\ImageGear v16\[MD or Professional Edition Depending on Installation]\ActiveX\Dependency Analyzer Tool. It allows you to select the components that are required for your application, analyzes their dependencies, and produces the output that describes the exact set of ImageGear components that need to be used in the application, and the order in which they have to be associated with each other. We recommend that you use this tool to save time and effort.


ImageGear ABIC Component

ImageGear offers the ABIC component to support bank check imaging with the proprietary ABIC compression owned by IBM.


ImageGear ARTX Component

The ImageGear ARTX component provides access to the new ImageGear ARTX API that contains objects used for creating, loading, saving and processing ART annotations and their groups. Using this component, you can annotate any image that your application loads into ImageGear. Marks objects are created by using their objects. The ImageGear ARTX component allows you to work with 2 types of ART marks:

  • ART 3.0 Marks
  • ART 2.0 (Legacy) Marks

The ART 3.0 set consists of the enhanced list of more flexible marks. These marks are recommended for new applications. The ART 2.0 (Legacy) set consists of the marks backward compatible with the previous ART versions. Only ART 2.0 marks can be loaded from the .ART files created with previous ART versions and only ART 2.0 marks can be saved into the legacy ART storage format.

ImageGear ARTX API allows you to create, load, edit and save an image with the marks into a separate file in legacy .ART file format or .XML file format.

For detailed information about using the ART component, see the section Using ImageGear ARTX Component and the chapter entitled ImageGear ARTX Component API Reference.

NOTE: You can only attach one ART component. ARTX cannot be attached when ART is already attached.


ImageGear ART Component

The ImageGear ART component includes low-level functions for the fine-tune image annotating and high-level functions for the most typical operations. ART creates annotations on a "layer" that sits "above" the image or document that is to be annotated. The original image and the annotations can be stored separately or merged together permanently.

For detailed information about using the ART component, see the section Using ImageGear ART Component, and chapter entitled ImageGear ART Component API Reference.

NOTE: You can only attach one ART component. ART cannot be attached when ARTX is already attached.
NOTE: ImageGear ART Component is provided in ImageGear v15 for backward compatibility with previous vesrsions of ImageGear. We recommend that you use the new ImageGear ARTX Component API for new development.


ImageGear CAD/Vector (DGN) Component

The ImageGear DGN Component provides read-only support for the DGN vector file format.

For detailed information about using the CAD/Vector components, see Using ImageGear CAD/Vector Components .


ImageGear CAD/Vector (DWF) Component

The ImageGear CAD/VectorView component supports the rasterization of the DWF vector format.

For detailed information about using the CAD/Vector components, see Using ImageGear CAD/Vector Components .


ImageGear CAD/Vector (DWG, DXF) Component

The ImageGear CAD/VectorView component supports the rasterization of the DWG and DXF vector formats.

For detailed information about using the CAD/Vector components, see Using ImageGear CAD/Vector Components .


ImageGear CAD/Vector (HPGL, HPGL/2) Component

The ImageGear HPGL Component supports the rasterization of HPGL and HPGL/2 vector file formats. It also allows you to work with PCL files containing HPGL/2 instructions.

For detailed information about using the CAD/Vector components, see Using ImageGear CAD/Vector Components .


ImageGear CAD/Vector (CGM) Component

The ImageGear CGM Component supports the rasterization of CGM vector file format.

For detailed information about using the CAD/Vector components, see the section entitled Using ImageGear CAD/Vector Components .


ImageGear CAD/Vector (SVG) Component

The ImageGear SVG Component supports the rasterization of CGM vector file format.

For detailed information about using the CAD/Vector components, see the section entitled Using ImageGear CAD/Vector Components .


ImageGear Core Component

The ImageGear Core component is a foundation for all other components and contains shared objects used in other components such as IGPage, IGRectangle and global attributes such as error handling objects, licensing, component info.

For detailed information about using the Core component, see the chapter entitled ImageGear Core Component API Reference .


ImageGear Dialogs Component

The ImageGear Dialogs component provides the ImageGear dialogs library.

For detailed information about using the Dialogs component, see the chapter entitled ImageGear Dialogs Component API Reference.


ImageGear Display Component

The ImageGear Display component provides access to ImageGear display API and contains shared objects used for image drawing.

For detailed information about using the Display component, see the chapter entitled ImageGear Display Component API Reference. See also Displaying Images section.


ImageGear Effects Component

The ImageGear Effects component provides a group of special effects methods for blurring, blending, diffusing, embossing, motion, noising, pixelating, posterizing, spotlighting, stitching, twisting, and superimposing texture and watermarks.

For detailed information about using the Effects component, see the chapter entitled ImageGear Effects Component API Reference. See also Special Effects Processing section.


ImageGear Formats Component

The ImageGear Formats component provides image loading/saving operations for all other ImageGear components.

For detailed information about using the Formats component, see the chapter entitled ImageGear Formats Component API Reference. See also Working with Format Filters section.


ImageGear FlashPix Component

The FlashPix File Format provides easy desktop handling of digital color photographic images. It was developed and published by Eastman Kodak Company in collaboration with Hewlett-Packard, Live Picture, Inc. and Microsoft.

The FlashPix component provides the following features:

  • A full hierarchy of resolutions for each image
  • A choice of JPEG or Single Color compression
  • The use of all ImageGear functions to load, save, and transform FlashPix images
  • The ability to perform ImageGear transformations without losing FlashPix transformations


ImageGear FreqIP Component

FreqIP (Frequency Domain Image Processing) component is responsible for image processing functionalities in frequency domain. See ImageGear FreqIP Component API Reference.


ImageGear GIF/TIFF-LZW Component

This component allows you to work with GIF/TIFF-LZW compression images.

For detailed information about using the GIF/TIFF-LZW component, see GIF Non-image Data Structure .


ImageGear GUI Components

ImageGear includes a set of ActiveX controls that provide various "canned" application functions to simplify your programming task. You can use each of these controls by placing it into the UI of your application, using the graphic designer of your development environment.

For detailed information about using the GUI components, see the chapter entitled ImageGear GUI Component API Reference. See also Using ImageGear GUI Component section.


ImageGear ImageClean Component

The ImageGear CLN (ImageClean) component provides several API functions that allow you to enhance bi-level image support. It includes the ability to clean borders, invert white text, auto-orient image, auto invert black text on a white background, and auto-crop.

For detailed information about using the ImageClean component, see the chapter entitled ImageGear ImageClean Component API Reference. See also Using ImageGear ImageClean Component section.


ImageGear ISIS Component

The ImageGear ISIS component is a high-speed scanning module with a complete API that provides full control of the scanning process.

For detailed information about using the ISIS component, see the chapter entitled ImageGear ISIS Component API Reference. See also Using ImageGear ISIS Component section.

NOTE: ISIS is a trademark of Pixel Translations.


ImageGear JBIG2 Component

The ImageGear JBIG2 component enables you to load and save bi-tonal images using a new method based on the JBIG2 compression algorithm. The JBIG2 format supports multipage images and is the most effective compression method for b/w images to date.

For detailed information about using the JBIG2 component, see the section entitled Using ImageGear JBIG2 Component .


ImageGear JPEG2000 Component

The JPEG2000 standard provides a set of features that take advantage of new technologies, making them important to many high-end and emerging applications. It addresses areas where current standards fail to produce the best quality or performance and provides capabilities to markets that currently do not use compression. The markets and applications better served by the JPEG2000 standard are Internet, color facsimile, printing, scanning (consumer and pre-press), digital photography, remote sensing, mobile, medical imaging, digital libraries / archives and E-commerce. Each application area imposes some requirements that the standard should fulfill.

The ImageGear JPEG2000 component is based on the Kakadu SDK, which allows you to use the diverse functionality of the JPEG2000 wavelet-based compression technique. It provides such advantages:

  • Excellent image quality at high compression ratios
  • Fast compression and decompression
  • Both lossless (guaranteed pixel identity) and lossy image compression options
  • User-controlled compression ratio
  • Quicklook generation and scaled image reconstruction based on embedded coding techniques
  • Elimination of JPEG-like blocking artifacts

All these features outperform all other image compression techniques. JPEG2000 image compression is best suited for compression either of sensitive images because of the lossless feature, or for its excellent image quality at high compression ratios for uses such as transmission in low bandwidth applications.

The ImageGear JPEG2000 component also provides partial support for JPEG2000 Part II (JPX) and Motion JPEG2000 file format (MJ2).

ImageGear JPIP client API and ImageGear JPIP server API can be used to implement a JPIP server capable of efficiently and dynamically streaming portions of a JPEG2000-compressed image over a network. A JPIP client can establish a session over which multiple regions of interest within an image may be streamed from the JPIP server.

For detailed information about using the JPEG2000 component, see the section Using ImageGear JPEG2000 Component and the chapter entitled ImageGear JPEG2000 Component API Reference.


ImageGear MD Component

The ImageGear MD (Medical) component is a full-featured ImageGear component. It supports the DICOM format, contains a custom API, and includes expanded image processing capabilities beyond those of the baseline ImageGear library.

The format support of the MD component includes loading and saving monochrome, palletized, and true color medical images using the following file formats:

  • DICOM 3.0 Part 10-compliant images
  • DICOM 3.0 Raw Format (non-Part 10-compliant)

In addition, your application will continue to support all ImageGear-supported file formats, allowing you to convert an image of a different format to a medical image format, and vice-versa.

The ImageGear MD component is available for all Windows 32-bit platforms, in both the DLL and ActiveX versions.

ImageGear MD component is backed by the AccuSoft Image Guarantee. The component is guaranteed to read all valid raster images in the supported formats.

For detailed information about using the MD component, see the section Using ImageGear MD Component and the chapter entitled ImageGear MD Component API Reference .

NOTE: For the more information about the MD Component installation, please see the Note in the Installing from CD section.


ImageGear Multimedia Component

The ImageGear Multimedia component supports more multimedia formats and compressions than ever before because it's based on the DirectX Media SDK. Any format your Windows Media Player will read (like AVI, MPEG, and QuickTime) can now be read by the ImageGear MULT component.


ImageGear PDF Component

The ImageGear PDF Component allows you to load, save and process PDF (Portable Document Format) file format images using core ImageGear and other IG Components functionality.

This Component also allows you to read vector data from PS (PostScript) and EPS (Encapsulated PostScript) file formats (core ImageGear Component allows you to read only raster data from these two formats).

In addition, this PDF Component provides the ability to extract text from loaded PDF and PS image files.

For detailed information about using the PDF component, see the chapter entitled ImageGear PDF Component API Reference. See also Using ImageGear PDF Component section.


ImageGear Processing Component

The ImageGear Processing component is responsible for the image processing functionality. It provides you with the ability to resize, rotate an image, adjust the brightness and contrast of the image, reduce or promote its bit depth and perform many other image processing operations.

For detailed information about using the Processing component, see the chapter entitled ImageGear Processing Component API Reference. See also Basic Image Processing with IGProcessingCtl section.


ImageGear Recognition Component

The ImageGear Recognition component is a set of functions that provide access to ScanSoft's document recognition technology.

This core software module provides unsurpassed recognition accuracy for almost any document, including those produced on typewriters, dot-matrix printers, ink-jet printers, laser printers, and phototypesetters, as well as photocopied and faxed versions of any documents. It also allows for recognition of handwritten text, check marks and a veriety of bar codes.

Using the ImageGear Recognition component, you can recognize a document image and export text in any format defined by the ScanSoft SDK. These formats include 8-bit text, HTML, XML and Word processor formats such as MS Word or WordPerfect. You also can learn, save, and (later) load character recognition data for similar documents. The software learns as a result of normal recognition, and acquires additional information by using the API's text verification system.

The ImageGear recognition component also allows the user to:

  • Manage delineated zones of a document page and then specify treatment for those zones. This includes the ability to correct the OCR engine's automatic segmentation between the segmentation phase and the recognition phase.
  • Process both text and graphics. The recognition software's ability to distinguish graphics from text can provide the basis of a compound document processing system.
  • Automatically detect fax, dot matrix, and other degraded documents and compensate accordingly.
  • Recognize handwritten text using a numbers only module or alphanumeric module.
  • Process questionnaries, educational tests and other form-like documents using the Optical Mark Recognition feature.
  • Recognize both 1D and 2D bar codes (provided that both BAR and BAR2D modules are licensed).

For detailed information about using the Recognition component, see the chapter entitled ImageGear Recognition Component API Reference. See also Using ImageGear Recognition Component section.


ImageGear TWAIN Component

The TWAIN standard is widely supported by scanner manufacturers, with most users of TWAIN version 1.9. The ImageGear TWAIN component allows you to support all three TWAIN Transfer Modes: Native Data Transfer Mode (which is the TWAIN default), Disk File Transfer, and Buffered Memory.

For detailed information about using the TWAIN component, see the chapter entitled ImageGear TWAIN Component API Reference. See also Acquiring Images from TWAIN Devices section.


ImageGear U3D Vector Component

The ImageGear U3D Vector component supports reading, writing and rasterizing the U3D vector files. It provides read and write support for the following features of the Universal 3D format: CLOD Progressive Mesh, Normals, Colors (diffuse and specular), Views, Lights, Textures, Transparency, Linesets, and Pointsets.

For detailed information about using the CAD/Vector components, see the section entitled Using ImageGear CAD/Vector Components. Also see U3D.


ImageGear Vector Component

The ImageGear Vector component provides base operations for reading such vector formats as CAD (DXF/DWG), DWF, DGN, CGM and HPGL and drawing vector data during display operations.

This component allows you to switch between OpenGL and WinAPI rendering engines dynamically. OpenGL is an advanced rendering engine that provides faster execution speed via hardware acceleration and offers higher level graphics commands. Since not all hardware supports the OpenGL interface, the Windows API engine can be used as an alternative. ImageGear provides 3 rendering modes: OpenGL, Windows API, and Automatic (the default), which means that ImageGear tries to use OpenGL, and falls back to Windows API if OpenGL is not available. This provides for an universal automated solution across different hardware and software configurations.

For detailed information about using the Vector component, see the chapter entitled ImageGear Vector Component API Reference.


ImageGear View Component

The ImageGear View component provides access to IG page view API.

For detailed information about using the View component, see the chapter entitled ImageGear View Component API Reference. See also IGPageDisplay and IGPageViewCtl section.


ImageGear XPS Component

This component allows you to load and save XML Paper Specification (XPS) documents. For information about using XML Paper Specification (XPS), see XPS.

The ImageGear XPS component requires the Microsoft XPS Essentials Pack and is available for Windows Vista, Windows XP, and Windows Server 2003. This is also available in both 32-bit and 64-bit versions.


Answering Your ImageGear Questions

After reading the manual, one of the best ways to begin to answer your questions is by reading the release notes, which can be accessed through the ImageGear application menu.

See also the sections:

AccuSoft Customer Support

Before Contacting Customer Support


AccuSoft Customer Support

AccuSoft includes one year of the support and subscription program with the ImageGear product at no additional cost. If you desire a higher level of support, we offer additional Support programs designed to meet the diverse requirements of AccuSoft customers. Please visit AccuSoft's Web site at

http://www.accusoft.com/support/s_about.asp

or call our Sales Department at (508) 351-9092.

You can also e-mail questions to sales@accusoft.com .

See also the section Software Support and Maintenance Policy in SOFTWARE LICENSE AGREEMENT to get the information about AccuSoft's customer support policy.


Before Contacting Customer Support

  • Double check the Manuals provided with this product or check the on-line documentation.
  • Read the release notes, which can be accessed through the ImageGear application menu.
  • Refer to the following chapters: Getting Started, Using ImageGear, and AccuSoft Image Guarantee. These chapters contain a great deal of information on both programming your application and identifying image problems.
  • Take a look at the sample programs included with your product.
  • If you still need technical support assistance, please follow the instructions provided in the AccuSoft Customer Support section.


Internet Services

AccuSoft can be reached at the following address: www.accusoft.com. The home page includes access to these information areas:

  • Product Information
  • Downloads
  • Customer Support
  • Demos and Evals
  • On-line Documentation


Downloading from the Web Site

The Web site is a convenient place to download AccuSoft products or product updates.


Installation

Installation

There are currently two methods of installation for ImageGear:

  • Installing from CD
  • Installing from the Web Site

Additional media may be supplied upon request. The instructions for installing from either of these methods are given below.


Minimum Requirements

  • Pentium-class processor
  • 64 M B RAM
  • 32-bit Operating System - Windows 2000, Windows XP, Windows 2003 Server, Windows Vista, Windows 2008 Server.
NOTE: The Installation program will tell you how much disk space you need in order to load ImageGear. The disk space used will vary, depending upon the options you select during installation.


Vista and Visual Studio 2005/2008

Microsoft recommends running Visual Studio 2005/2008 with administrator privileges under Vista. To properly use the ImageGear Samples please run Visual Studio 2005/2008 with elevated permissions.

To run Visual Studio 2005/2008 with elevated administrator permissions first confirm you are a member of the "Administrators" group on the local machine.

Then right-click the Visual Studio 2005/2008 shortcut and select the "Run as administrator" option from the context menu. Click `Continue' to the UAC prompt.

To ensure you have the latest updates, after running Visual Studio 2005/2008 choose `Check for Updates' from the Help Menu.


Installing from CD

To install ImageGear, perform the following steps:

  1. Insert the ImageGear CD into the CD-ROM drive.
    1. CD should auto-start installation process. Follow on-screen prompts.
    2. If installation does not "autostart", double-click igsetup.exe in CD root directory.
  2. Chose the product to install, either "Professional", "Enterprise" or "MD" and click the "Next" button to continue or "Cancel" to terminate the installation. If you click "Next", the installation will bring up the "License Agreement" form.
  3. Carefully read the information contained in the "License Agreement" form before making a decision to accept the terms of the agreement. Choose "I accept the license agreement" to accept the conditions outlined in the License Agreement and then click the "Next" button to continue the installation, or click "Cancel" to exit the installation process.
  4. If you accepted the License Agreement and continued the installation process, the "User Information" form appears next. Enter your name and the name of your company in the "Full Name" and "Organization" text boxes, respectively. Then click "Next".
  5. Choose the destination directory where the ImageGear product should be installed with the browse button, or leave the default installation destination directory. Then click "Next".
  6. Once you click the "Next" button, the product "Select Features" form is displayed. In this form you can:
    1. Choose the features and components of the selected product to install on your PC.
    2. Get information about how much of your hard disk memory is required to install the product features that you have chosen in 6a.

When all these options are chosen, click the "Next" button to continue the installation process and then click "Finish".

NOTE: During the ImageGear installation you need to obtain License Key using AccuSoft License Manager, which is run automatically at the end of the installation. Please see the section ImageGear Licensing for the information how to obtain ImageGear license.
NOTE: The ImageGear Medical component is not installed during the ImageGear Professional installation process. The Medical component is installed using the ImageGear MD. ImageGear MD will install both ImageGear Professional or Enterprise and the Medical components.


Installing from the Web Site

Please visit our Web site, www.accusoft.com or call our Sales or Customer Service departments for instructions at (508) 351-9092.


Directory Structure

If you accept the suggested default, the installation program creates the following directory structure:


Description of Installed Files

The following files are installed to the root of your installation directory

  • ...\BIN Folder:
    File Name
    Description
    /BIN/Resource/
    ImageGear PDF component resource files and fonts.
    /BIN/*.ocx
    ImageGear ActiveX components.
    /BIN/*.exe
    ImageGear ActiveX Samples executables.
    Other ImageGear files...
  • ...\DOCUMENTATION Folder consists of HTMLHelp (*.chm files) documentation subfolder and HTMLNotes (*.chm files) release notes subfolder.
  • ...\INCLUDE Folder:
    File Name
    Description
    /Include/*.h
    ImageGear ActiveX components header files containing the definitions for the interfaces.
    /Include/*.c
    ImageGear ActiveX components C/C++ files containing the actual definitions of the IIDs and CLSIDs.
    /Include/C#.NET/*.cs
    ImageGear ActiveX components .NET *.cs include files.

The header files for the components are located in their respective sample directories (e.g., artapi.bas is located in ...\ActiveX\Samples\VB\ART folder).

See also the Sample Applications section.


Sample Applications

In addition, a SAMPLES directory will be installed if you select it during installation. This directory contains a separate subdirectories for each platform (VB, Delphi, MFC, JNI and C#.NET, which contains separate subdirectories for each sample.) Each sample is a complete, executable mini application. In their totality, these applications offer you more breadth than most tutorials.


Uninstalling ImageGear

Run Add/Remove Programs from the Control Panel. Choose "AccuSoft ImageGear v16". Click "Change" button, select "Uninstall AccuSoft ImageGear v16 from this computer" and click Next.


ImageGear Licensing

During the ImageGear installation, you need to obtain a license key using the AccuSoft License Manager that is run automatically at the end of the installation. If you need to run it manually in the future you can do it using

Start Menu\Programs\AccuSoft\ImageGear\License Manager

shortcut.

If you are evaluating the product, please select the ImageGear evaluation license option from the initial screen of the License Manager utility. You will be prompted to login using the same e-mail and password you have registered with on AccuSoft Web site. After you supply login credentials your license key will be automatically obtained and stored on your computer. An Evaluation license enables you to use any features of the product on your machine for a limited period of time.

To extend the Evaluation license:

  1. Run the License Manager utility.
  2. Select ImageGear evaluation license and click Continue.
  3. Click the Submit extension request to request an extension of the ImageGear evaluation.

Your request will be considered, and you will receive e-mail notification when your license is extended. Then you need to run the License Manager utility again to generate a new license key.

If you bought the Development copy of ImageGear please select the ImageGear Development license option from the initial screen of the License Manager utility. You will be prompted to login using e-mail and password you have registered with on AccuSoft Web site. Upon login you will be presented with the combo-box containing different access keys for the AccuSoft products you have bought:

  1. Please select ImageGear and click Get key.
  2. Your license key will be automatically obtained and stored on your computer.

In case if you had the Evaluation license previously, it will be overwritten with the new Development license. Development license enables you to use any of the ImageGear features on the limited number of computers. You need to run the License Manager utility for each machine where you need to use the product.

In case if hardware parameters of the machine changes, next time you're using ImageGear you will receive an error with the following text "The hardware ID of this machine doesn't match license information. Please run AccuSoft License Manager on this machine to add its hardware ID to your license." Please run the License Manager utility to associate the license with your new hardware ID.

NOTE: There is a limit on the maximum number of hardware IDs associated with the license. If you hit the limit then the License Manager utility will guide you though the process of removing unused hardware IDs from the license.

The License Manager utility stores license key in the registry and product samples are configured to read it from the registry. Please refer to the section ImageGear Licensing API for details on adding licensing calls to your application.

The License Manager utility requires an Internet connection in order to manage the license keys. If you don't have Internet connection, please call AccuSoft Customer Service at 1-508-351-9092.

NOTE: The Development license enables one developer to develop any applications but in order to deploy your ImageGear-based application you need to obtain the AccuSoft Licensing Deployment Kit (LDK). Please contact AccuSoft when you're ready to deploy your solution. See also the section ImageGear Licensing API.


Getting Started

Getting Started

This chapter consists of three tutorials. Each tutorial will show you how to get started using the ImageGear ActiveX Controls in your application. Each tutorial is for a different development environment:

  • MS Visual Basic 6.0 Application
  • MS Visual Studio .NET 2003 C# Application
  • MS Visual Studio .NET 2003 C++ MFC Application


MS Visual Basic 6.0 Application

Following this section instructions, you will create a Visual Basic application using the ImageGear ActiveX Custom Control. This tutorial uses Visual Basic 6.0, and assumes that you are using Microsoft Windows 2000 or XP.

The tutorial application loads, displays, and zooms images.


Preparing the Development Environment

Start Visual Basic 6.0. The Visual Basic Development Environment appears.

  1. Create a new Standard EXE project.

  2. Once the project is created you should add the ImageGear ActiveX controls to the project. Do this by going to Project|Components menu to access the list of available controls. Check off the following components:
    • AccuSoft ImageGear 16 Core Library
    • AccuSoft ImageGear 16 Dialogs Library
    • AccuSoft ImageGear 16 Display Library
    • AccuSoft ImageGear 16 Formats Library
    • AccuSoft ImageGear 16 Processing Library
    • AccuSoft ImageGear 16 View Library
NOTE: If you do not see a required control in the list, you may need to install the ImageGear ActiveX product. If you selected to install this product on first use, simply run one of the ImageGear ActiveX samples. To do this, click Start/ Programs/AccuSoft/ImageGear v16/Version/ActiveX/Samples (where Version is the edition of ImageGear [Professional, Enterprise or MD] being used) to locate the samples. Launching an ImageGear sample program will automatically cause the ActiveX product to be downloaded and installed on your machine.

Once you click OK you will see the icon for the ImageGear control appear in the controls toolbar:


Setting up the Form

  1. Open the Menu Editor by going to Tools|Menu Editor. Add 3 menu items called mnuOpen, mnuZoomin, and mnuZoomout. Set their captions to "Open", "Zoom in", and "Zoom out" respectively.

  2. In turn, add each ImageGear control to the form by clicking the appropriate icon in the toolbox and drawing the control on the form. Stretch the PageView Control (IGPageViewCtl) to fill most of the form, it should appear as a white rectangle. The remaining controls (IGCoreCtl, IGDisplayCtl, IGFormatsCtl, and IGDlgsCtl) should show up as small icons on the form. For this tutorial we will use the default names (for example, IGCoreCtl1) for each control. Your form should now look something like this:


Adding the Code

1. Firstly add the following form declarations and subroutines for Form_Load and Form_Resize:

Private currentPage As IGPage
Private currentPageDisp As IGPageDisplay
Private currentFileDialog As IGFileDlg
Private Sub Form_Load()
    On Error GoTo ErrorHandler

    IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
    IGCoreCtl1.Result.NotificationFlags = IG_ERR_OLE_ERROR

    IGCoreCtl1.AssociateComponent
IGFormatsCtl1.ComponentInterface
    IGCoreCtl1.AssociateComponent
IGDisplayCtl1.ComponentInterface

    IGDlgsCtl1.GearFormats =
IGFormatsCtl1.ComponentInterface
    IGDlgsCtl1.GearCore = IGCoreCtl1.ComponentInterface
    IGDlgsCtl1.GearDisplay =
IGDisplayCtl1.ComponentInterface
Set currentFileDialog = IGDlgsCtl1.CreateFileDlg
    Set currentPage = IGCoreCtl1.CreatePage
    Set currentPageDisp =
IGDisplayCtl1.CreatePageDisplay(currentPage)
    IGPageViewCtl1.PageDisplay = currentPageDisp
IGPageViewCtl1.UpdateView

    Exit Sub
ErrorHandler:
    MsgBox "Errors on stack? " & IGCoreCtl1.Result.isOk &
vbCrLf & Err.Description, vbCritical, "An error has
occurred"
End Sub
Private Sub Form_Resize()
    If Me.Height > 0 Then
        IGPageViewCtl1.Height = Me.ScaleHeight
    End If
    If Me.Width > 0 Then
        IGPageViewCtl1.Width = Me.ScaleWidth
    End If
End S  ub

The code above includes:

IGCoreCtl
License.SetSolutionName
This method of the IGLicense object sets the solution name for the ImageGear license.
Result.NotificationFlag
This method of the IGResult object tells ImageGear to report errors using the VB On Error mechanism.
AssociateComponent
This method associates ImageGear components with the Core control.
CreatePage
This method creates and returns a new IGPage object.
Result.isOk
This property of the IGResult object tells if there are any errors on the error stack.
IGDlgsCtl
GearFormats
This property sets the current Formats control used by the Dialog control.
GearCore
This property sets the current Core control used by the Dialog control
IGDisplayCtl
CreatePageDisplay
This method creates a new IGPageDisplay object for the specified IGPage.
IGPageViewCtl
PageDisplay
This property sets the current Page Display object displayed by the Page View control.
UpdateView
This method causes the Page View control to redraw itself.

2. Next, create a click procedure for mnuOpen by clicking the menu on the form or by copying the code below:

Private Sub mnuOpen_Click()
    On Error GoTo ErrorHandler

    Dim loadDialogOptions As IGFileDlgPageLoadOptions
    Set loadDialogOptions = _

IGDlgsCtl1.CreateFileDlgOptions(IG_FILEDLGOPTIONS_PAGELOADOB
J)

    If currentFileDialog.Show(loadDialogOptions) Then
        IGFormatsCtl1.LoadPageFromFile currentPage,
loadDialogOptions.FileName, _
                loadDialogOptions.PageNum
    End If

    IGPageViewCtl1.UpdateView

    Exit Sub
ErrorHandler:
    MsgBox "Errors on stack? " & IGCoreCtl1.Result.isOk &
vbCrLf & Err.Description, vbCritical, "An error has
occurred"
End Sub

The code above includes:

IGDlgsCtl
CreateFileDlgOptions
This method creates a fiel dialog options object that will contain for example the filename and page number.
IGFileDlg
Show
This method shows the file dialog and returns True of the user clicked OK.
IGFormatsCtl
LoadPageFromFile
This method loads an image into the specified IGPage from the specified filename.

3. Finally add click procedures for the mnuZoomin and mnuZoomout commands by double clicking on each control respectively or by copying the code below:

Private Sub mnuZoomIn_Click()
    On Error GoTo ErrorHandler

    Dim zoomzoom As IGDisplayZoomInfo
    Set zoomzoom =
currentPageDisp.GetZoomInfo(IGPageViewCtl1.hWnd)

    zoomzoom.HZoom = zoomzoom.HZoom * 1.25
    zoomzoom.VZoom = zoomzoom.VZoom * 1.25
    zoomzoom.Mode = IG_DSPL_ZOOM_H_FIXED Or
IG_DSPL_ZOOM_V_FIXED
    currentPageDisp.UpdateZoomFrom zoomzoom
    IGPageViewCtl1.UpdateView
    Exit Sub
ErrorHandler:
    MsgBox "Errors on stack? " & IGCoreCtl1.Result.isOk &
vbCrLf & Err.Description, vbCritical, "An error has
occurred"
End Sub

The above code zooms the image to 125 percent, or 5/4ths, of its size (zoom in by 25 percent).

Private Sub mnuZoomOut_Click()
    On Error GoTo ErrorHandler

    Dim zoomzoom As IGDisplayZoomInfo
    Set zoomzoom =
currentPageDisp.GetZoomInfo(IGPageViewCtl1.hWnd)

    zoomzoom.HZoom = zoomzoom.HZoom * 0.8
    zoomzoom.VZoom = zoomzoom.VZoom * 0.8
    zoomzoom.Mode = IG_DSPL_ZOOM_H_FIXED Or
IG_DSPL_ZOOM_V_FIXED
    currentPageDisp.UpdateZoomFrom zoomzoom
    IGPageViewCtl1.UpdateView
    Exit Sub
ErrorHandler:
    MsgBox "Errors on stack? " & IGCoreCtl1.Result.isOk &
vbCrLf & Err.Description, vbCritical, "An error has
occurred"
End Sub

The above code zooms "out", decreasing the image to 4/5ths of its size, thereby canceling the effect of the zoom in above.

The code above includes:

IGPageDisplay
GetZoomInfo
This method creates and returns a new IGDisplayZoomInfo object that contains zoom mode and values.
UpdateZoomFrom
This method sets zoom mode and values from the specified IGDisplayZoomInfo object.


Running the Application

That's it! Simply compile and run your project and you will now have an image viewer that supports 100 file formats. Add the components to enable support for 100+ image formats.


MS Visual Studio .NET 2003 C# Application

Following this section instructions, you will create a C# Windows Form application using the ImageGear ActiveX Custom Control. This tutorial uses Visual Studio .Net 2003, and assumes that you are using Microsoft Windows 2000 or XP.

The tutorial application loads, displays, and zooms images. The instructions in this tutorial are specific to C# Windows Forms


Preparing the Development Environment

Start Visual Studio .Net. The Visual Studio Development Environment appears.

  1. Create a new Visual C# Windows Application project.

  2. Once the project is created you should add the ImageGear ActiveX controls to the Visual Studio Toolbar. Do this by clicking on the Tools/Add/Remove Toolbox Items menu. In the "Customize Toolbox" dialog, click the "COM Components" tab, and then check off the following components:
    • IGCoreCtl Class
    • IGDisplayCtl Class
    • IGDlgsCtl Class
    • IGFormatsCtl Class
    • IGPageViewCtl Class
    • IGProcessingCtl Class
NOTE: If you do not see a required control in the list, you may need to install the ImageGear ActiveX product. If you selected to install this product on first use, simply run one of the ImageGear ActiveX samples. To do this, click Start/ Programs/AccuSoft/ImageGear v16/Version/ActiveX/Samples (where Version is the edition of ImageGear [Professional, Enterprise or MD] being used) to locate the samples. Launching an ImageGear sample program will automatically cause the ActiveX product to be downloaded and installed on your machine.

Once you click OK you will see the icon for the ImageGear control appear in the controls toolbar:


Setting up the Form

  1. Now place a MainMenu control (found in the Windows Forms group of the Toolbar) onto the form. Add 3 menu items called mnuOpen, mnuZoomin, and mnuZoomout. Set their captions to "Open", "Zoom in", and "Zoom out" respectively.
  2. In turn, add each ImageGear control to the form by clicking the appropriate icon in the Dialog Editor section of the Toolbar and drawing the control on the form. Stretch the PageView Control (IGPageViewCtl) to fill most of the form, it should appear as a white rectangle. The remaining controls (IGCoreCtl, IGDisplayCtl, IGFormatsCtl, IGProcessingCtl and IGDlgsCtl) should show up as small icons on the form. For this tutorial we will use the default names (for example, IGCoreCtl1) for each control. Your form should now look something like this:


Adding the Code

1. Every C# Windows Application form gets the following set of using statements:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

Add the following other using statements to Form1.cs:

using GearDIALOGSLib;
using GearCORELib;
using GearFORMATSLib;
using GearDISPLAYLib;
using GearPROCESSINGLib;

2. When you added the menu items and the ImageGear ActiveX controls to your form, Visual Studio automatically added private member variables for each of them to your Form1.cs file:

public class Form1 : System.Windows.Forms.Form
{
    private System.Windows.Forms.MainMenu mainMenu1;
    private System.Windows.Forms.MenuItem mnuOpen;
    private System.Windows.Forms.MenuItem mnuZoomin;
    private System.Windows.Forms.MenuItem mnuZoomout;
    private AxGearCORELib.AxIGCoreCtl axIGCoreCtl1;
    private AxGearDISPLAYLib.AxIGDisplayCtl axIGDisplayCtl1;
    private AxGearFORMATSLib.AxIGFormatsCtl axIGFormatsCtl1;
    private AxGearDIALOGSLib.AxIGDlgsCtl axIGDlgsCtl1;
    private AxGearVIEWLib.AxIGPageViewCtl axIGPageViewCtl1;
    private AxGearPROCESSINGLib.AxIGProcessingCtl
axIGProcessingCtl1;

You'll need to add the following other private members to the Form1 class:

    private IGFileDlg m_dlgFile = null;
    private IGPage m_igPage = null;
    private IGPageDisplay m_igPageDisp = null;

3. Next, use the Visual Studio forms designer to add Event handlers for the Load and Resize events for Form1:

4. Add the following code to the Form1_Load() and Form1_Resize() Event Handler methods:

    private void Form1_Load(object sender, System.EventArgs
e)
    {
        axIGCoreCtl1.License.SetSolutionName("AccuSoft 1-100-
16");
        axIGCoreCtl1.Result.NotificationFlags =
enumIGErrorHandlingFlags.IG_ERR_OLE_ERROR;
        try
        {

axIGCoreCtl1.AssociateComponent(axIGFormatsCtl1.ComponentInt
erface);

axIGCoreCtl1.AssociateComponent(axIGDisplayCtl1.ComponentInt
erface);
axIGCoreCtl1.AssociateComponent(axIGProcessingCtl1.Component
Interface);
        axIGDlgsCtl1.GearFormats =
axIGFormatsCtl1.ComponentInterface;
        axIGDlgsCtl1.GearCore =
axIGCoreCtl1.ComponentInterface;
        axIGDlgsCtl1.GearDisplay =
axIGDisplayCtl1.ComponentInterface;
        m_dlgFile = axIGDlgsCtl1.CreateFileDlg();
        m_igPage = axIGCoreCtl1.CreatePage();
        m_igPageDisp = axIGDisplayCtl1.CreatePageDisplay(
m_igPage);
        axIGPageViewCtl1.PageDisplay = m_igPageDisp;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    private void Form1_Resize(object sender, System.EventArgs
e)
    {
        axIGPageViewCtl1.Left = 0;
        axIGPageViewCtl1.Top = 0;
        axIGPageViewCtl1.Width = this.ClientSize.Width;
        axIGPageViewCtl1.Height = this.ClientSize.Height;
    }

The code above includes:

IGCoreCtl
License.SetSolutionName
This method of the IGLicense object sets the solution name for the ImageGear license.
Result.NotificationFlag
This method of the IGResult object tells ImageGear to report errors using the COM Error mechanism (caught as Exceptions).
AssociateComponent
This method associates ImageGear components with the Core control.
CreatePage
This method creates and returns a new IGPage object.
IGDlgsCtl
GearFormats
This property sets the current Formats control used by the Dialog control.
GearCore
This property sets the current Core control used by the Dialog control
IGDisplayCtl
CreatePageDisplay
This method creates a new IGPageDisplay object for the specified IGPage.
IGPageViewCtl
PageDisplay
This property sets the current Page Display object displayed by the Page View control.

5. Next, create a click procedure for mnuOpen by double-clicking the menu on the form and then copying the following code into Form1.cs:

    private void mnuOpen_Click(object sender,
System.EventArgs e)
    {
        try
        {
            IGFileDlgPageLoadOptions dlgLoadOptions = null;
            dlgLoadOptions = (IGFileDlgPageLoadOptions)
            axIGDlgsCtl1.CreateFileDlgOptions(
enumIGFileDlgOptionsType.IG_FILEDLGOPTIONS_PAGELOADOBJ);

if(m_dlgFile.Show((IIGFileDlgOptions)dlgLoadOptions))
            {
                axIGFormatsCtl1.LoadPageFromFile(m_igPage,
dlgLoadOptions.FileName, dlgLoadOptions.PageNum);
            }
            axIGPageViewCtl1.UpdateView();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

The code above includes:

IGDlgsCtl
CreateFileDlgOptions
This method creates a file dialog options object that will contain example the filename and page number.
IGFileDlg
Show
This method shows the file dialog and returns True if the user clicked OK.
IGFormatsCtl
LoadPageFromFile
This method loads an image into the specified IGPage from the specified filename.

6. Finally add click procedures for the mnuZoomin and mnuZoomout commands by double clicking on each control respectively in the Dialog designer, and then copying the following code into Form1.cs:

    private void mnuZoomin_Click(object sender,
System.EventArgs e)
    {
        try
        {
            IGDisplayZoomInfo zoominfo = null;
            zoominfo = (IGDisplayZoomInfo)
            m_igPageDisp.GetZoomInfo( axIGPageViewCtl1.hWnd );
            zoominfo.HZoom = zoominfo.HZoom * 1.25;
            zoominfo.VZoom = zoominfo.VZoom * 1.25;
            zoominfo.Mode =
GearDISPLAYLib.enumIGDsplZoomModes.IG_DSPL_ZOOM_H_FIXED |

GearDISPLAYLib.enumIGDsplZoomModes.IG_DSPL_ZOOM_V_FIXED;
            m_igPageDisp.UpdateZoomFrom(zoominfo);
            axIGPageViewCtl1.UpdateView();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

The above code zooms the image to 125 percent, or 5/4ths, of its size (zoom in by 25 percent).

    private void mnuZoomout_Click(object sender,
System.EventArgs e)
    {
        try
        {
            IGDisplayZoomInfo zoominfo = null;
            zoominfo = (IGDisplayZoomInfo)
                m_igPageDisp.GetZoomInfo(
axIGPageViewCtl1.hWnd );
            zoominfo.HZoom = zoominfo.HZoom * 0.80;
            zoominfo.VZoom = zoominfo.VZoom * 0.80;
            zoominfo.Mode =

GearDISPLAYLib.enumIGDsplZoomModes.IG_DSPL_ZOOM_H_FIXED |
GearDISPLAYLib.enumIGDsplZoomModes.IG_DSPL_ZOOM_V_FIXED;
            m_igPageDisp.UpdateZoomFrom(zoominfo);
            axIGPageViewCtl1.UpdateView();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

The above code zooms "out", decreasing the image to 4/5ths of its size, thereby canceling the effect of the zoom in above.

The code above includes:

IGPageDisplay
GetZoomInfo
This method creates and returns a new IGDisplayZoomInfo object that contains zoom mode and values.
UpdateZoomFrom
This method sets zoom mode and values from the specified IGDisplayZoomInfo object.


MS Visual Studio .NET 2003 C++ MFC Application

Following this section instructions, you will create a Visual C++ MFC application using the ImageGear ActiveX Custom Control. This tutorial uses Visual Studio .NET 2003, and assumes that you are using MS Windows 2000, or XP.

The tutorial application loads, displays, and zooms images.


Preparing the Development Environment

Start Visual Studio 2003. The Visual Studio Development Environment appears.

  1. Create a new MFC Application project. For this tutorial, the Project name will be called "IG_MFC". Click OK after entering this Project name.

  2. Next choose the Dialog Based option to create a dialog based application. Click Finish to create the project.

  3. You will get the form on which you should place the controls and dialog buttons:

  4. To add the ImageGear ActiveX controls to the project click the right mouse-button on the IG_MFC form. Then click the left mouse button on the Insert ActiveX Control option in the dropdown list. You will get the dialog where all installed ActiveX controls are listed:

  5. We're going to add each of the following controls to the project:
    • IGCoreCtl Class
    • IGDisplayCtl Class
    • IGDlgsCtl Class
    • IGFormatsCtl Class
    • IGPageViewCtl Class
NOTE: If you do not see a required control in the list, you may need to install the ImageGear ActiveX product. If you selected to install this product on first use, simply run one of the ImageGear ActiveX samples. To do this, click Start/ Programs/AccuSoft/ImageGear v16/Version/ActiveX/Samples (where Version is the edition of ImageGear [Professional, Enterprise or MD] being used) to locate the samples. Launching an ImageGear sample program will automatically cause the ActiveX product to be downloaded and installed on your machine.

Add each ImageGear control to the form. Stretch the PageView Control (IGPageViewCtl) to fill most of the form, it should appear as a white rectangle. The remaining controls (IGCoreCtl, IGDisplayCtl, IGFormatsCtl, and IGDlgsCtl) should show up as small icons on the form. For this tutorial we will use the default names (for example, IGCoreCtl1) for each control. Your form should now look something like this:

6. Now remove the OK and Cancel buttons as well as the "To Do" Static Text. Instead, place 3 flat buttons at the right side of the form. Give them control IDs IDC_OPEN, IDC_ZOOMIN and IDC_ZOOMOUT, and Captions "Open", "Zoom In" and "Zoom Out", respectively:


Adding the Code

  1. As described above, we have found that the wizard-generated wrapper classes are not the best way to use ActiveX controls in an MFC application. However, because the wizard forces you to generate at least 5 such wrapper classes, you'll first need to remove those files from your project. If you select "File View" mode in Visual Studio, you'll see the various files created by the wizards. Remove the following files from the project:
    • igcorectl.cpp
    • igcorectl.h
    • igdisplayctl.cpp
    • igdisplayctl.h
    • igdlgsctl.cpp
    • igdlgsctl.h
    • igformatsctl.cpp
    • igformatsctl.h
    • igpageviewctl.cpp
    • igpageviewctl.h

Then open the header file created for your application's dialog (if you named your project "IG_MFC", then the dialog header file will be IG_MFCDlg.h), and add five import statements near the top, as follows:

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#import "C:\Program Files\AccuSoft\ImageGear
v16\...\Shared\Bin\igcore16a.ocx"
#import "C:\Program Files\AccuSoft\ImageGear
16\...\Shared\Bin\igformats16a.ocx"
#import "C:\Program Files\AccuSoft\ImageGear
v16\...\Shared\Bin\igdisplay16a.ocx"
#import "C:\Program Files\AccuSoft\ImageGear
v16\...\Shared\Bin\igdlgs16a.ocx"
#import "C:\Program Files\AccuSoft\ImageGear
v16\...\Shared\Bin\igview16a.ocx"

This will cause .tlh and .thi files to be generated when your application is compiled. We have found that the wrapper classes defined in .tlh files are easier to use.

2. Add private member variables for the various ImageGear ActiveX controls and COM objects to your dialog header file:

protected:
    HICON m_hIcon;
    GearCORELib::IIGPagePtr m_pPage;
    GearDISPLAYLib::IIGPageDisplayPtr m_pPageDisplay;
    GearDISPLAYLib::IIGDisplayCtlPtr m_pDisplayCtl;
    GearVIEWLib::IIGPageViewCtlPtr m_pPageViewCtl;
    GearFORMATSLib::IIGFormatsCtlPtr m_pFormatsCtl;
    GearCORELib::IIGCoreCtlPtr m_pCoreCtl;
    GearDIALOGSLib::IIGDlgsCtlPtr m_pDlgsCtl;
    GearDIALOGSLib::IIGFileDlgPtr m_pFileDialog;
    // Generated message map functions
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();

     DECLARE_MESSAGE_MAP()

3. Add initializers for these member variables to the constructor for your Dialog class:

CIG_MFCDlg::CIG_MFCDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CIG_MFCDlg::IDD, pParent)
    , m_pPage(NULL)
    , m_pPageDisplay(NULL)
    , m_pDisplayCtl(NULL)
    , m_pPageViewCtl(NULL)
    , m_pFormatsCtl(NULL)
    , m_pCoreCtl(NULL)
    , m_pDlgsCtl(NULL)
    , m_pFileDialog(NULL)
{
    //{{AFX_DATA_INIT(CIG_MFCDlg)
        // NOTE: the ClassWizard will add member
initialization
here
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent
DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

4. Add the following code to the Init_Dialog() method for your Dialog class:

BOOL CIG_MFCDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    // Set the icon for this dialog.  The framework does this
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE); // Set big icon
    SetIcon(m_hIcon, FALSE); // Set small icon

    CWnd *coreWnd, *formatsWnd, *displayWnd, *pageviewWnd,
*dlgsWnd;
    coreWnd = GetDlgItem(IDC_IGCORECTL1);
    formatsWnd = GetDlgItem(IDC_IGFORMATSCTL1);
    dlgsWnd = GetDlgItem(IDC_IGDLGSCTL1);
    displayWnd = GetDlgItem(IDC_IGDISPLAYCTL1);
    pageviewWnd = GetDlgItem(IDC_IGPAGEVIEWCTL1);
    //Create the different controls
    m_pCoreCtl = (GearCORELib::IIGCoreCtlPtr)
                coreWnd->GetControlUnknown();
    m_pFormatsCtl = (GearFORMATSLib::IIGFormatsCtlPtr)
                formatsWnd->GetControlUnknown();
    m_pDlgsCtl = (GearDIALOGSLib::IIGDlgsCtlPtr)
                dlgsWnd->GetControlUnknown();
    m_pDisplayCtl = (GearDISPLAYLib::IIGDisplayCtlPtr)
                displayWnd->GetControlUnknown();
    m_pPageViewCtl = (GearVIEWLib::IIGPageViewCtlPtr)
                pageviewWnd->GetControlUnknown();
    m_pCoreCtl->GetLicense()->SetSolutionName(L"AccuSoft 1-
100-
16");
    m_pCoreCtl->GetResult()->NotificationFlags =
                 GearCORELib::IG_ERR_OLE_ERROR;
    try
    {
        m_pCoreCtl->AssociateComponent(
                m_pFormatsCtl->ComponentInterface );
        m_pCoreCtl->AssociateComponent(
                m_pDisplayCtl->ComponentInterface );
        m_pDlgsCtl->GearFormats = m_pFormatsCtl-
>ComponentInterface;
        m_pDlgsCtl->GearCore = m_pCoreCtl-
>ComponentInterface;
        m_pDlgsCtl->GearDisplay = m_pDisplayCtl-
>ComponentInterface;
        m_pFileDialog = m_pDlgsCtl->CreateFileDlg();

        m_pPage = m_pCoreCtl->CreatePage();
        m_pPageDisplay = m_pDisplayCtl-
>CreatePageDisplay(m_pPage);

        m_pPageViewCtl->PageDisplay = m_pPageDisplay;
    }
    catch( _com_error err )
    {
        AfxMessageBox(err.Description());
    }

    return TRUE;  // return TRUE  unless you set the focus to
a
control
}

The code above includes:

IGCoreCtl
License.SetSolutionName
This method of the IGLicense object sets the solution name for the ImageGear license.
Result.NotificationFlag
This method of the IGResult object tells ImageGear to report errors using the VB On Error mechanism.
AssociateComponent
This method associates ImageGear components with the Core control.
CreatePage
This method creates and returns a new IGPage object.
Result.isOk
This property of the IGResult object tells if there are any errors on the error stack.
IGDlgsCtl
GearFormats
This property sets the current Formats control used by the Dialog control.
GearCore
This property sets the current Core control used by the Dialog control.
IGDisplayCtl
CreatePageDisplay
This method creates a new IGPageDisplay object for the specified IGPage.
IGPageViewCtl
PageDisplay
This property sets the current Page Display object displayed by the Page View control.
UpdateView
This method causes the Page View control to redraw itself.

5. In the Class View window, click to select the CIG_MFC node. Right click to display Properties dialog box, click the Messages icon button to show the Windows messages that this class can handle.

In the Properties dialog box, click to select the WM_SIZE message, click the drop-down arrow, and then click the <ADD> OnSize option to create the WM_SIZE message handler method.

void CIG_MFCDlg::OnSize(UINT nType, int cx, int cy)
{
    CDialog::OnSize(nType, cx, cy);
    // TODO: Add your message handler code here

    if (m_pPageViewCtl != NULL)
    {
        HWND hWnd = (HWND) m_pPageViewCtl->hWnd;

        ::SetWindowPos(hWnd, HWND_TOP, 0, 20,
            cx, cy-20, SWP_NOZORDER | SWP_NOACTIVATE);
    }
}

6. Next, create a click procedure for the "Open" button by double-clicking it in the Dialog Editor. Then copy the following code into the OnBnClickedOpen() method:

void CIG_MFCDlg::OnBnClickedOpen()
{
    try
    {
        GearDIALOGSLib::IIGFileDlgPageLoadOptionsPtr
dlgLoadOptions;
        dlgLoadOptions =
(GearDIALOGSLib::IIGFileDlgPageLoadOptionsPtr)
             m_pDlgsCtl->CreateFileDlgOptions(
                GearDIALOGSLib::IG_FILEDLGOPTIONS_PAGELOADOBJ
);
        if(m_pFileDialog->Show(
            (GearDIALOGSLib::IIGFileDlgOptionsPtr)
dlgLoadOptions) )
        {
            m_pFormatsCtl->LoadPageFromFile(
                m_pPage,
                dlgLoadOptions->FileName,
                dlgLoadOptions->PageNum);
        }
        m_pPageViewCtl->UpdateView();
       }
    catch( _com_error err )
    {
        AfxMessageBox(err.Description());
    }
}

The code above includes:

IGDlgsCtl
CreateFileDlgOptions
This method creates a fiel dialog options object that will contain for example the filename and page number.
IGFileDlg
Show
This method shows the file dialog and returns True of the user clicked OK.
IGFormatsCtl
LoadPageFromFile
This method loads an image into the specified IGPage from the specified filename.

7. Finally, create click procedures for the "Zoom In" and "Zoom Out" buttons by double-clicking each of them in the Dialog Editor. Then copy the following code into the OnBnClickedZoomin() and OnBnClickedZoomout() methods:

void CIG_MFCDlg::OnBnClickedZoomin()
{
    try
    {
        GearDISPLAYLib::IIGDisplayZoomInfoPtr zoominfo;
        zoominfo = (GearDISPLAYLib::IIGDisplayZoomInfoPtr)
            m_pPageDisplay->GetZoomInfo( m_pPageViewCtl->hWnd
);
        zoominfo->HZoom = zoominfo->HZoom * 1.25;
        zoominfo->VZoom = zoominfo->VZoom * 1.25;
        zoominfo->Mode =
(GearDISPLAYLib::enumIGDsplZoomModes)
            (GearDISPLAYLib::IG_DSPL_ZOOM_H_FIXED |
             GearDISPLAYLib::IG_DSPL_ZOOM_V_FIXED);
        m_pPageDisplay->UpdateZoomFrom(zoominfo);
        m_pPageViewCtl->UpdateView();
       }
    catch( _com_error err )
    {
        AfxMessageBox(err.Description());
    }
}

The above code zooms the image to 125 percent, or 5/4ths, of its size (zoom in by 25 percent).

void CIG_MFCDlg::OnBnClickedZoomout()
{
    try
    {
        GearDISPLAYLib::IIGDisplayZoomInfoPtr zoominfo;
        zoominfo = (GearDISPLAYLib::IIGDisplayZoomInfoPtr)
            m_pPageDisplay->GetZoomInfo( m_pPageViewCtl->hWnd
);
        zoominfo->HZoom = zoominfo->HZoom * 0.80;
        zoominfo->VZoom = zoominfo->VZoom * 0.80;
        zoominfo->Mode =
(GearDISPLAYLib::enumIGDsplZoomModes)
            (GearDISPLAYLib::IG_DSPL_ZOOM_H_FIXED |
             GearDISPLAYLib::IG_DSPL_ZOOM_V_FIXED);
        m_pPageDisplay->UpdateZoomFrom(zoominfo);
        m_pPageViewCtl->UpdateView();
       }
    catch( _com_error err )
    {
        AfxMessageBox(err.Description());
    }
}

The above code zooms "out", decreasing the image to 4/5ths of its size, thereby canceling the effect of the zoom in above.

The code above includes:

IGPageDisplay
GetZoomInfo
This method creates and returns a new IGDisplayZoomInfo object that contains zoom mode and values.
UpdateZoomFrom
This method sets zoom mode and values from the specified IGDisplayZoomInfo object.


Delphi

To use ImageGear v16 in Delphi:

  1. Add ImageGear components in the following order (but don't compile package):
    • ImageGear Processing Component
    • ImageGear View Component
    • ImageGear Formats Component
    • ImageGear Display Component
    • ImageGear Dialogs Component
    • ImageGear Core Component
  2. Compile the package.


Understanding Bitmap Images

Understanding Bitmap Images

This Chapter provides an introduction to working with bitmaps. It includes descriptions of pixels, bit depths, palettes, color vs. grayscale images, and DIBs and DDBs.


Pixels

The Pixel (or Picture Element) is the basic building block of all images displayed by ImageGear. On a display screen, each pixel is a dot. In memory, the pixel is stored as a sequence of 1, 4, 8, or 24 bits that determine what color the pixel is to be displayed as.


RGB or 24-bit Images

24-bit images, also called RGB images, are images in which each pixel is represented by three 8-bit quantities (thus, 24 bits total) specifying the intensities of red, green, and blue that form the color for the pixel. For example, a pixel that is to be displayed as brightest magenta-magenta being a color formed of equal intensities of red and blue, and no green-would be represented by three bytes having the respective values of 255, 0, 255 for the red, green, and blue intensities. In RGB representation the brightest white would be (255, 255, 255) and black would be (0, 0, 0).


1-bit Images

Images that contain only one bit per pixel can contain only two colors, since only two pixel values are possible: 0 and 1. The two colors for a 1-bit image are usually black and white, but if the image is to be displayed on an RGB device, the colors are determined by a table called a color palette. A color palette defines the color to be displayed for each possible pixel value. The following table demonstrates the color palette for a 1-bit image, which specifies black for pixel value 0 and white for pixel value 1:

BLUE
GREEN
RED
Not Used
color 0
0
0
0
0
color 1
255
255
255
255

Each entry in a color palette is a 4-byte structure of type AT_RGBQUAD, in which the first three bytes are used to specify the intensities of blue, green, and red respectively, forming the color. The 4th byte is not used. (Note that the ordering in this structure is blue, green, red-not red, green, blue.)

If instead you wanted to have pixel value 0 displayed as a medium yellow, and pixel value 1 as brightest red, you might use the following color palette (yellow is constructed of equal intensities of red and green, with no blue):

BLUE
GREEN
RED
Not Used
color 0
0
128
128
0
color 1
0
0
255
0


4-bit and 8-bit Images

A 4-bit image is simply one in which each pixel is represented by 4 bits. Therefore, a 4-bit image can contain 16 (24) colors, each pixel having a numerical value between 0 and 15. The color palette for a 4-bit image will therefore normally have 16 entries (0 - 15.) As a 1-bit image might be called a 2-color image, a 4-bit image is also called a 16-color image.

In an 8-bit image each pixel occupies exactly one byte. This means each pixel has 256 (28) possible numerical values, from 0 to 255. Therefore, the color palette for an 8-bit image normally contains 256 entries, defining color 0 through color 255. 8-bit or 256-color images are very common because the availability of 256 unique colors provides adequate or even excellent color resolution for most purposes. Also, when operating upon an image in memory, such as when performing image analysis, transformations, or other image processing, operating on an 8-bit image is much faster than performing the same operations on a 24-bit image. And, of course, an 8-bit image uses only about one-third the memory or file storage space as a 24-bit image.

Because each pixel value of a 1, 4, or 8-bit color image is used as an index into a color palette, these images are sometimes called "indexed color" images. In this manual, 8-bit color images are sometimes referred to as "8i" images, to distinguish them from 8-bit gray level images, which are described below.


grayscale Images

In RGB color representation, (255, 255, 255) results in the brightest white, and (0, 0, 0) results in black. Any time the three intensities are equal, no color is emphasized and the result is a shade of gray. For example (128, 128, 128) would be a medium gray, (240, 240, 240) would be a bright gray approaching white, and (16, 16, 16) would be a dark gray not far from black.

A grayscale image is one in which the color palette contains only grays, evenly graduated from black (0, 0, 0) for pixel value 0, to white (255,255,255) for the highest possible pixel value. This means that in an 8-bit gray level image, the blue, green, and red intensities for each palette entry are equal to the pixel value. The color palette for an 8-bit gray level image is illustrated below:

BLUE
GREEN
RED
Not Used
color 0
0
0
0
0
color 1
1
1
1
0
color 2
2
2
2
0
color 3
3
3
3
0
...
...
...
...
...
color 254
254
254
254
0
color 255
255
255
255
0

Some ImageGear image processing operations cannot be performed on 8i (8-bit color) images, because some colors that occur as a result of the processing may not be present in the image's color palette. For such operations, if the image is 8-bit, it must be 8-bit gray level.


Color Values Used during Display

Although an image's color palette (or in the case of a 24-bit image, each pixel's 24-bit RGB value) normally determines the color to display at each pixel location, there are cases when this is not so. ImageGear maintains a set of Red, Green, and Blue "Look Up Tables" (LUTs), which are used to determine whether the colors to actually display are different from those in the image's palette. These LUTs can be modified, for example, by setting display attributes using properties DisplayContrast or DisplayBrightness, for example. When the LUTs are modified, the colors displayed may no longer correspond directly to the colors in the Image's palette.

If your display monitor determines colors by using a single 256-color palette, then you can have ImageGear automatically "dither" your image's colors, allowing all images on the screen to display using a single 256-color palette. The display attribute properties (including DitherMode) are described in Chapter Using ImageGear.

The colors displayed for an image may also be modified due to constraints imposed by the display monitor being used. Some display monitors use a single 256-color hardware palette. ImageGear can reload this hardware palette each time an image is to be displayed, but since all images on the screen are being displayed using this one hardware palette, all other images on the screen at the same time will change to reflect the colors of this new palette. For such cases, you can instruct ImageGear as to which image or images are to have precedence in establishing the device's hardware palette. In addition, ImageGear can also inform you when the colors of an image may have changed due to the loading of another image's palette.


Device Independent and Device Dependent Bitmaps

A bitmap image, also called a raster image, is an image held in the form of successive rows (called rasters) of pixel data. As already stated, ImageGear's bitmap images use 1, 4, 8, or 24 bits to represent each pixel. But besides these pixel bits, additional information is necessary to describe an image. For example, the width (number of pixels per row) and height (number of rows in the image), are required. For some images, a color palette may be required. Depending upon how the bitmap is to be used, additional information may be required or useful.

To hold bitmap images in memory, ImageGear uses two types of bitmaps, both widely used by many other software products and supported by development platforms such as Microsoft Windows. These are the Device Independent Bitmap (DIB) and the Device Dependent Bitmap (DDB). The DIB is by far the more widely used for in-memory operations. It has become the common denominator format because it is so simple: it describes just the image, without reference to characteristics of the device(s) upon which it may later be displayed. While ImageGear provides convenient ways to convert between DIBs and DDBs and to display DDBs, nearly all ImageGear operations are performed on DIBs exclusively.


Device Independent Bitmaps - DIBs

A DIB consists of a header structure called a BITMAPINFOHEADER followed by the color palette, if one is present, followed by the bitmap (pixel) data:

BITMAPINFOHEADER
COLOR PALETTE (if any)
BITMAP DATA

The BITMAPINFOHEADER structure contains such information as the number of bits per pixel, number of pixels per row, and total number of rows in the image, as well as whether the bitmap data has been compressed for more efficient storage. Its form is shown below.

BITMAPINFOHEADER:
DWORD
biSize
LONG
biWidth
LONG
biHeight
WORD
biPlanes
WORD
biBitCount
DWORD

biCompression

DWORD

biSizeImage

LONG

biXPelsPerMeter

LONG

biYPelsPerMeter

DWORD

biClrUsed

DWORD

biClrImportant

A color palette is present in the DIB if the image is 1-bit, 4-bit, or 8-bit. The format of the color palette was described at the beginning of this chapter.

The format of the bitmap data is:

  • For 1-bit images, the first (leftmost) pixel of a row is held in the Most Significant Bit (MSB) of the first byte of the row. Subsequent bits hold subsequent pixels, at a rate of 8 pixels per byte. The row is padded with zeroes as necessary to assure a multiple of 4 bytes length for each row.
  • For 4-bit images, the first pixel of each row is in the 4 Most Significant Bits of the first byte of the row, and each succeeding 4 bits hold each succeeding pixel. As above, the row is zero-padded to a multiple of 4 bytes length.
  • For 8-bit and 24-bit images, each pixel of a row occupies exactly 1 or 3 bytes respectively, and again each row is padded with zeroes to a multiple of 4 bytes length. Note that the colors in a 24-bit pixel in a standard DIB are ordered Blue-Green-Red (not Red-Green-Blue).

It should be noted that in a DIB, the first row of the bitmap data is the row to be displayed at the bottom of the image. For historical reasons, many file formats store their bitmap data top row first (this is because most devices to which bitmap data is sent display the rows top-to-bottom. Such devices, which include most CRT display monitors, are often called raster-scan devices.).

Whenever ImageGear loads a file of a format having top-to-bottom row ordering, it automatically reverses the order of the rows, assuring bottom-to-top row ordering for all DIBs, regardless of where the image originated. Keep in mind the ordering of a DIB is therefore "upside down" relative to the convention used in much display software that the top row of a display is row 0 and row numbers increase downward.

See also ImageGear Architecture Diagram.


Device Dependent Bitmaps - DDBs

Device Dependent Bitmaps are bitmaps whose pixel data is organized for convenient dispatch to a particular device or group of devices, such as to a particular type of display monitor or printer. Normally you will not need to concern yourself with DDBs. ImageGear is designed to hold in-memory images in DIBs by default, and to process the image data of DIBs efficiently. But when the speed with which images are displayed is an important factor in your application, keeping large or often-displayed images in memory in DDB format may improve performance. For such cases, ImageGear provides a property to import and display DDBs.

If your application is intensive in the use of in-memory DDB's, we suggest you refer to Microsoft Windows documentation of Device Dependent Bitmaps and Device Contexts.


Vector Images

Bitmap images, sometimes also called raster images, have their data organized in horizontal rows of pixels for convenient dispatch to raster-scan devices. Devices and display software also exist that can directly display any line, if given an exact specification of the line. An example is a straight line defined by its two endpoints. Such a line is sometimes called a vector, and an image file whose data is specified exclusively in terms of vectors is called a vector image file. Other example of the vector element is a text. The text is defined by a set of parameters: text string itself, font type face, font width and heigh, color, position, base line angle and some other.


ImageGear Architecture Diagram

The diagram above gives a conceptual view of the important role played by DIBs in ImageGear. The center image represents a DIB that results when an image is obtained from disk, memory, or a scanned file. Image processing and clipboard functions can be used to alter or merge the actual DIB bitmap data. To the right of the DIB are various routes an image may take after being manipulated by ImageGear: it may be saved to disk or to memory, it may be displayed, or it may be printed.


Using ImageGear

Using ImageGear

This chapter describes how to use ImageGear's ActiveX controls and COM objects to fulfill your applications' imaging needs. The scope of ImageGear functionality is outlined in ImageGear Overview section. There are also many examples that show you how to use ImageGear functionality. Additional examples and recommendations for using ImageGear objects, properties and methods can be found in the API Function Reference chapter for respective component as well as in Getting Started Chapter.

Fundamentally, the way that you use the ActiveX controls is that you place them into your application user interface using the "designer" tool of your development environment. The code in your application then uses the methods and properties of the controls to direct their behavior. You'll often implement event handlers for some of the events (like MouseUp, DragOver, etc.) generated by the controls.

To recognize general ImageGear functionality and structure:

  • Controls,Objects and Format Filters
  • Operational Concepts

Please read the section ImageGear Licensing API, which describes how to use the ImageGear licensing functions to provide an evaluation, development or deployment license to your ImageGear application.

This chapter includes the following basic sections that describe ImageGear possibilities:

  • Loading, Saving and Acquiring Images
  • Displaying Images
  • Image Processing

The concept of the functions including loading, displaying, saving images, image processing, special effects, thread safety, pixel accessing, etc. are described in these sections.

The following sections describe how to work with special function groups and special groups of images:

  • Working with Events
  • Working with Global Control Parameters
  • Working with Format Filters
  • Working with ImageGear Layers
  • Working with Non-image Data
  • Working with TIFF Files
  • Working with Tiled Images
  • Working with Vector Data
  • Working with Digital Camera RAW formats
  • Working with Image and ImageGear Information
  • Working with ImageGear ActiveX Dependency Analyzer
  • Working with Error Handling

You can find the detailed information about how to use the functionality of ImageGear components in the following sections:

  • Using ImageGear ARTX Component
  • Using ImageGear ART Component
  • Using ImageGear CAD/Vector Components
  • Using ImageGear GUI Component
  • Using ImageGear ImageClean Component
  • Using ImageGear ISIS Component
  • Using ImageGear JBIG2 Component
  • Using ImageGear JPEG2000 Component
  • Using ImageGear MD Component
  • Using ImageGear PDF Component
  • Using ImageGear Recognition Component
  • Using ImageGear TWAIN Component


Controls,Objects and Format Filters

The list of ActiveX controls in ImageGear is below (the functionality of each of these is described below). Once you obtain a developer license for ImageGear, you are authorized to use any or all of these controls in your application. Once you obtain a deployment license for ImageGear, you are authorized to distribute copies of these controls to your customers.

Note that the source code for some of these controls is provided along with the ImageGear product (those controls are marked by *). You may use these controls in your application (and distribute their implementation files) "as is", or you may modify them (and distribute the modified implementation files).

The ImageGear ActiveX controls are as follows (each of these controls will be explained in the following sections):

Control Name
Visibility
Implemented In
IGPageViewCtl
Design and Run time
View Library (igview16a.ocx)
IGCoreCtl
Design only
Core Library (igcore16a.ocx)
IGFormatsCtl
Design only
Formats Library (igformats16a.ocx)
IGDisplayCtl
Design only
Display Library (igdisplay16a.ocx)
IGProcessingCtl
Design only
Processing Library (igprocessing16a.ocx)
IGEffectsCtl
Design only
Effects Library (igeffects16a.ocx)
IGArtXCtl
Design only
Art Library (igart16a.ocx)
IGDlgsCtl
Design only
Dialogs Library (igdlgs16a.ocx)
IGICCtl
Design only
ImageClean Library (igIC16a.ocx)
IGMedCtl
Design only
Medical Library (igmed16a.ocx)
IGPDFCtl
Design only
PDF Library (igpdf16a.ocx)
IGRecCtl
Design only
Recognition Library (igrec16a.ocx)
IGTwainCtl
Design only
TWAIN Library (igtwain16a.ocx)
IGGUIDlgCtl*
Design only
GUI Dialogs Library (igguidlg16a.dll)
IGGUIMagnifierCtl*
Design and Run time
GUI Magnifier (igguiwin16a.dll)
IGGUIPanCtl*
Design and Run time
GUI Pan (igguiwin16a.dll)
IGGUIPaletteCtl*
Design and Run time
GUI Palette (igguiwin16a.dll)
IGGUIThumbnailCtl*
Design and Run time
GUI Thumbnail (igguiwin16a.dll)

Each of the ActiveX controls listed above is accompanied by a set of COM objects that are used to pass data between the ActiveX control and your application. All of these objects will be described in detail below. There are a few of these data-passing objects worth mentioning at this point:

COM Object Name
Implemented In
IGPage
Core Library (igcore16a.ocx)
IGDocument
Core Library (igcore16a.ocx)
IGLicense
Core Library (igcore16a.ocx)
IGPageDisplay
Display Library (igdisplay16a.ocx)
IGIOFile
Formats Library (igformats16a.ocx)
IGIOMemory
Formats Library (igformats16a.ocx)
IGIOStream
Formats Library (igformats16a.ocx)
IGIOURL
Formats Library (igformats16a.ocx)

In addition to the data-passing COM objects provided with each ActiveX control, there are a set of file-format-handler COM objects, which ImageGear refers to as "Format Filters". Your application will only need to use these objects if it needs to handle the corresponding image file type. Your application will typically only reference a given Format Filter once, when it starts up, telling IGCoreCtl to attach the Format Filter so that the corresponding file type can be processed. The Format Filters are as follows:

Format Filter Name
Implemented In
IGABIC*
ABIC Library (IGABIC16a.ocx)
IGDGN
DGN Library (IGDGN16a.ocx)
IGCAD
CAD Library (IGCAD16a.ocx)
IGCGM
CGM Library (IGCGM16a.ocx)
IGFPX
FPX Library (IGFPX16a.ocx)
IGLZW*
LZW Library (IGLZW16a.ocx)
IGHPGL
HPGL Library (IGHPGL16a.ocx)
IGJPEG2K
JPEG2K Library (IGJPEG2K16a.ocx)
IGJBIG2
JBIG2 Library (IGJBIG216a.ocx)
IGMedCtl
Medical Library (igmed16a.ocx)
IGMultimedia
Multimedia Library (igmultimedia16a.ocx)
IGPDF
PDF Library (igPDF16a.ocx)

* IGABIC, IGLZW are not the separate objects. They are part of IIGComponent interface. So, when you attach ABIC or LZW Component to IG Core Component use the following code example:

Attach ABIC Component
Dim abic As IIGComponent
Set abic = IGCoreCtl1.CreateComponent("GearABIC.IGABIC.1")
IGCoreCtl1.AssociateComponent abic.ComponentInterface


ImageGear Licensing API

Before you can use any ImageGear functionality you need to provide ImageGear with your licensing information. There are two methods of licensing ImageGear:

  • API Licensing Scheme
  • License Binding Scheme

If you put ImageGear ActiveX inside a HTML-page, or if you build your own ActiveX based on ImageGear ActiveX to be distributed inside a HTML-page, you have to use the license binding scheme. Otherwise, you have a choice of using either API licensing or license binding, but we recommend using the API licensing scheme.

NOTE: If you try to combine both schemes (API licensing and license binding), ImageGear will set an error and will not work.
NOTE: If ImageGear detects that it is being used from inside a HTML-page and API licensing is used, it will set an error and will not work.
NOTE: If you call ImageGear from an ASP or ASP.NET environment, you have to use API licensing method.


API Licensing Scheme

When you evaluate the product or develop your application using ImageGear you have to call the SetSolutionName() method of the IGLicense object that is provided by the IGCoreCtl object. While you are evaluating the ImageGear product, you should specify the value "AccuSoft 1-100-16" on the SetSolutionName call. Once you purchase the ImageGear product, then you will be issued your own Solution Name, with which you must replace "AccuSoft 1-100-16" in your application source-code. In Visual Basic applications, the call to SetSolutionName looks like this:

IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
NOTE: ImageGear reads license information from the Windows registry. You have to obtain product license (evaluation or development) using AccuSoft License Manager (described in chapter "Installation") in order for the product to work.


License Binding Scheme

The License-binding scheme was specifically invented to support the use of the ImageGear ActiveX controls in HTML pages. There are two samples (one using HTML with VBScript, the other using HTML with JavaScript) that show how to do this.

You'll need a Microsoft tool named "LPK_TOOL.EXE" in order to complete this process. LPK_TOOL can be downloaded from www.microsoft.com. Go to the Search page, and enter "LPK_TOOL" - the download page is titled "License Package Authoring Tool".

LPK_TOOL is also part of the Internet Client SDK, which is one of the SDKs in the Platform SDK series http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm.

In order to activate the license binding scheme you need to place the AccusoftLicenseBinding.txt file in the same directory where the core ImageGear ActiveX is located. For this purpose, ImageGear includes 2 batch scripts - DisableBinding.bat and EnableBinding.bat - located under the Utils subfolder of the [IG Edition...] folder. They are also accessible from the shortcuts created by the installer. When you need to place ImageGear ActiveX inside a HTMLpage you need to perform the following steps:

  1. Run EnableBinding.bat to copy the AccusoftLicenseBinding.txt file to the Bin subfolder where the core ImageGear ActiveX is located.
  2. Run the Microsoft License Package (LPK) tool to create an *.LPK file for ImageGear ActiveX.
  3. Modify your HTML page by adding the following tag:
<object CLASSID="clsid:5220CB21-C88D-11cf-B347-00AA00A28331">
<param NAME="LPKPath" VALUE="filename.lpk">
</object>

Where filename.lpk is the name of the LPK file generated in step 2 above. The ImageGear VBScript and JavaScript samples can be used as an example how this can be done.

NOTE: When you run the LPK tool, ImageGear reads the license information from the registry and provides it to LPK. The LPK tool packages this information into an *.LPK file. You have to obtain a product license (evaluation or development) using AccuSoft License Manager (described in the section ImageGear Licensing) in order for this scheme to work.

By default (after the ImageGear installation), license binding is disabled. You need to enable it by running EnableBinding.bat and creating filename.lpk (as described above) in order to use the ImageGear VBScript and JavaScript samples. After you run EnableBinding.bat, then API licensing will be disabled. Thus, if you need to test both HTML applications and non-HTML applications, use the following sequence:

  1. Run DisableBinding.bat
  2. Build and test all of your non-HTML programs (VB, C++, PowerBuilder, etc.)
  3. Run EnableBinding.bat
  4. Edit and test all of your HTML pages. Note that, as long as you don't recompile your non-HTML programs at this point, you'll be able to run them.


Deploying Your Application

When you are ready to deploy your application, please contact AccuSoft about obtaining the License Deployment Kit. It will explain additional steps (including API calls) that you need to take in order to deploy your application.


Operational Concepts

The principal objects in ImageGear, and their relationships, are as follows:

IGCoreCtl

The central object on which everything else depends is IGCoreCtl. You'll place one of these into the user interface of your application, and then use it to control the processing of all the other objects. IGCoreCtl is an ActiveX control, which allows you to use it in the UI designer tool of each development environment. However, IGCoreCtl presents no user interface to the application end-user at run-time - it is visible only at design-time.

IGFormatsCtl

All applications need to obtain images from some file (either a file on disk, a file available somewhere on the Internet, a file in memory, or a file accessed via some I/O Stream), or from some device (either a TWAIN device or an ISISAIIM MS61/MS61 scanner). Interpreting the contents of the file and loading the image(s) defined by that file is the job of IGFormatsCtl. Like IGCoreCtl, you'll place one of these into the user interface of your application, and then use it to perform file load and file save processing. The Format Filters (described above) assist IGFormatsCtl in these functions. Like IGCoreCtl, IGFormatsCtl is an ActiveX control, which allows you to use it in the UI designer tool of each development environment. Like IGCoreCtl, IGFormatsCtl presents no user interface to the application end-user at run-time - it is visible only at design-time. Your application program must associate the IGFormatsCtl (and any needed file-format handling Format Filters) with the IGCoreCtl before using it - this is typically done when your application first starts up.

IGTwainCtl and IGIsisCtl

Interacting with the TWAIN or ISIS device driver and loading the image(s) acquired from that device is the job of IGTwainCtl and IGIsisCtl. Like IGCoreCtl, you'll place one of these into the user interface of your application, and then use it to perform image acquisition processing. Like IGCoreCtl, IGTwainCtl and IGIsisCtl are ActiveX controls, which allow you to use them in the UI designer tool of each development environment. Like IGCoreCtl, IGTwainCtl and IGIsisCtl present no user interface to the application end-user at run-time - they are visible only at design-time. Your application program must associate the IGTwainCtl and/or IGIsisCtl with the IGCoreCtl before using it - this is typically done when your application first starts up.

IGPage

When IGFormatsCtl, IGTwainCtl or IGIsisCtl loads an image, it places the image in an IGPage object in memory. Your application may deal only with simple one-image files, in which case you'll only need to load the image into an IGPage object and then begin using it. On the other hand, your application may need to deal with complex multi-image files (TIF, DICOM and others), in which case you'll have IGFormatsCtl load the file into an IGDocument object, which will in turn contain a set of IGPage objects - one per image.

IGProcessingCtl and IGEffectsCtl

Some applications need to be able to process the image in some way. For example, the application may need to be able to resize the image, or adjust its contrast/brightness. The IGProcessingCtl object is used to perform many of the image processing functions. Other objects (e.g., IGEffectsCtl, IGArtXCtl, etc.) function in the same way as IGProcessingCtl - they define a series of functions that can be applied to the image in any IGPage object. Once the image in the IGPage object has been modified, it is up to the application to call IGFormatsCtl again, to save the modified image. Like IGCoreCtl, IGProcessingCtl is an ActiveX control, which allows you to use it in the UI designer tool of each development environment. Like IGCoreCtl, IGProcessingCtl presents no user interface to the application end-user at run-time - it is visible only at design-time. Your application program must associate the IGProcessingCtl (and IGEffectsCtl, etc.) with the IGCoreCtl before using it - this is typically done when your application first starts up.

IGPageDisplay

Most applications need to be able to display the image on the computer screen (or print it). This is the function of the IGPageDisplay object. It's common for applications to need to display the same image more than once on the screen (for example, if your application provides the ability to rotate the image on the screen, you might want to provide a "preview" of the rotated image: thus, the same image is displayed once in your main window and again in your preview window). To support this need, ImageGear allows multiple IGPageDisplay objects to be associated with the same IGPage object. Each IGPageDisplay object provides a set of display settings that control how the image will appear on the screen. Changing the display settings in one IGPageDisplay object will immediately alter the way that its image appears on the screen, and will not affect the way that any other IGPageDisplay image appears. IGPageDisplay objects are created by the IGDisplayCtl object.

IGDisplayCtl

In order to create IGPageDisplay objects, your application usually needs an IGDisplayCtl control. Like IGCoreCtl, IGDisplayCtl is an ActiveX control, which allows you to use it in the UI designer tool of each development environment. Like IGCoreCtl, IGDisplayCtl presents no user interface to the application end-user at run-time - it is visible only at design-time. Your application program must associate the IGDisplayCtl with the IGCoreCtl before using it - this is typically done when your application first starts up. Once your application has done this, then it can use the IGDisplayCtl to create as many IGPageDisplay objects as needed.

IGPageViewCtl

Finally, to display your image on the computer screen, you need to place an IGPageViewCtl into the UI of your application, and associate an IGPageDisplay object with it. The IGPageViewCtl object is the ActiveX control that actually has a visible presence at runtime. Your application will typically implement an OnSize event handler for the window or dialog-box in which the IGPageViewCtl is placed, and resize the IGPageViewCtl as the window is resized. Any time your application changes the settings in the IGPageDisplay, the image displayed in the IGPageViewCtl will instantly change. If your application loads a different image into the IGPage associated with the IGPageDisplay object, then your application must call the IGPageViewCtl .UpdateView method to have the image redrawn.

GUI Controls

In addition to the principal objects described above, there are a set of "GUI" ActiveX controls that are provided with ImageGear. The GUI controls provide pre-packaged functionality that you can add to your application with minimal effort. In addition, the source code for the GUI controls is provided with ImageGear: you're free to modify this source code in any way you wish, should the functionality of the controls need to be modified. One of the GUI controls (IGGUIDlgCtl) provides a series of display-control and image-processing dialogs that make it trivial to add that functionality to your program. The rest of the GUI controls are like IGPageViewCtl, in that they are added to an application UI with the graphical designer, and are visible to the end-user at runtime, and contain an image.

The relationship between the GUI controls and the base ImageGear controls is as follows:

When using IGGUIDlgCtl, your application calls one of the dialog functions to have the dialog box displayed and perform its operation. Like IGCoreCtl, IGGUIDlgCtl is an ActiveX control, which allows you to use it in the UI designer tool of each development environment. Like , IGGUIDlgCtl presents no fixed user interface to the application end-user at run-time - it is visible at design-time as an icon in the graphic designer tool, and is visible at run-time as a popup dialog box. Your application program must associate the IGGUIDlgCtl with the IGCoreCtl, IGProcessingCtl and IGDisplayCtl objects before using it - this is typically done when your application first starts up.

When using IGGUIMagnifierCtl, IGGUIPanCtl, IGGUIPaletteCtl or IGGUIThumbnailCtl, you place the control into your application's user interface, typically using the graphic designer in your development environment. You call a method of the control to "activate it", which makes it appear on the computer screen. You'll also have to implement various event handlers (either for events generated by your IGPageViewCtl control, or by the GUI control itself) in order to make the control provide the desired functions.


Loading, Saving and Acquiring Images

As described above, the IGFormatsCtl, IGTwainCtl and IGIsisCtl objects are used to load images into IGPage objects. Once in an IGPage object, the image can be modified with IGProcessingCtl, IGEffectsCtl, or any of the other image-manipulation objects (see "Image Processing"). After manipulation, the image can be saved. Also, once in an IGPage object, the image can be displayed on the computer screen with IGPageDisplay (see Displaying Images). This section will describe the options for loading images into IGPage objects and saving them.


Introduction to Format Filters

As discussed above, there are a set of specialized ImageGear objects called "Format Filters" that assist IGFormatsCtl in the loading and saving of files. See Chapter File Format Reference for more information on the various filetypes supported by ImageGear. There are many filetypes that are automatically supported by IGFormatsCtl - if your application only needs to deal with those filetypes, then you don't need to use ImageGear Format Filters.

On the other hand, if your application must load or save any of the following filetypes, then you will need to augment the default IGFormatsCtl handling with the appropriate Format Filter:

  • ABIC
  • AVI
  • DGN
  • DICOM
  • CAD
  • CGM
  • FlashPix
  • HPGL
  • JPEG 2000
  • JBIG 2
  • PDF
  • SVG

In the absence of any Format Filters, the start-up sequence to prepare for file loading is as follows (the following is written in Visual Basic):

IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface

If your application required the use of one of these Format Filters, but failed to use it, then an attempt to load a file of the corresponding type would result in an 80020009 ("Could not detect the format of this file.") error.

The steps needed to activate any of the Format Filters are quite simple:

  1. Create an instance of the Format Filter object.
  2. Associate the Format Filter with the IGCoreCtl object.

If our example application had to be able to handle ABIC files as well as any file compressed with the LZW algorithm, then the startup sequence would be as follows:

Attach ABIC Component
Dim abic As IIGComponent
Set abic = IGCoreCtl1.CreateComponent("GearABIC.IGABIC.1")
IGCoreCtl1.AssociateComponent abic.ComponentInterface

For more information on ImageGear Format Filters, see the "Working with Format Filters" section.


Single-Page Files vs. Multi-Page Files

Some image file types can only hold a single image - for example BMP and JPEG files. Other image file types can hold multiple images - for example TIFF and DICOM files. ImageGear refers to the image within a file as a "Page", and so there are single-page files and multi-page files.

Note that the interpretation of the successive images within a multi-page file depends on the file type and the application. For example, when documents are scanned, they are typically stored as multi-page TIFF files, where each image within the file represents a page of the original document. On the other hand, when a CT scan is recorded in a DICOM file, each image represents a "slice" of the three-dimensional subject. ImageGear always refers to each image as a "page", regardless of the actual file type or interpretation.

When your application loads a single-page file, the image is stored in a single IGPage object. That object can then be used as the basis for image manipulation and/or display. When your application loads a multi-page file, the application can either direct ImageGear to load a single page of the file (into a single IGPage object), or it can direct ImageGear to load some or all of the pages in the file (into a collection of IGPage objects contained within an IGDocument object). The collection of IGPage objects can then be displayed side-by-side (as would be done for a CT scan or an MRI), or one after the other in the same area (as would be done for a TIFF document or a GIF animation).

ImageGear uses the "long" datatype to count pages. Thus, it can handle up to 2,147,483,648 pages in a multi-page file, and the same number of IGPage objects in an IGDocument.

Note that the pages in a multi-page file are always considered to be numbered consecutively, starting at 0. Thus, if a multi-page file has 5 pages in it, then they are considered to be numbered 0, 1, 2, 3, and 4. An IGDocument contains a collection of IGPages, each of which is assigned an "index". When IGPages are loaded into an IGDocument, their index values start at 0 by default, but you can override that and start the index values at any positive value. Furthermore, once the IGPages are loaded into an IGDocument, some of them can be removed. Removing an IGPage will leave a "hole" in the index sequence (so, for example, successive IGPage objects may be index numbers 0, 2, 12, 15). The IGDocument object provides GetNextPageIndex () and GetPreviousPageIndex () methods for stepping through the successive IGPage objects within an IGDocument.


Image Sources

ImageGear can load from and save images to any of 4 sources:

  • File on disk (accessed via the file-system Read and Write functions)
  • File on Internet (accessed via HTTP, FTP or Gopher GET)
  • File in C++ Stream (accessed via istream::read and ostream::write)
  • File in memory (accessed by memory address)

IGFormatsCtl defines a set of 4 objects to encapsulate these various image sources. These objects all implement the IIGIOLocation interface and the IDispatchEx interface. Thus, your application (and ImageGear) can handle any of these via its IIGIOLocation interface, until the actual image-source is needed. At that point, your application (or ImageGear) can use the IIGIOLocation ::Type property to determine the actual type of the object, and then switch to the appropriate (type-specific) interface.

When your application needs to load an image into an IGPage object, the sequence of events is as follows:

  1. Create (or identify a prior) IGPage object to contain the image.
  2. Create a location object (IGIOFile, IGIOMemory, etc.) to identify the location of the image file, and fill it in with the appropriate information.
  3. Call the LoadPage method of IGFormatsCtl to load the image into the IGPage object.

Since loading images from files is the most common method of obtaining images, there is a special LoadDocumentFromFile method of IGFormatsCtl that takes care of creating the IGIOFile object for you.

In the case of multi-page files, there are special LoadDocument and LoadDocumentFromFile methods of IGFormatsCtl that will take care of creating an IGPage object for each page in the file and loading them all.

When saving to URL, make sure to do the following:

  • The file format needs to be specified when saving to a URL.
  • An appropriate HTTP verb must be chosen, depending on the circumstances in which save to URL is being used.

See IGIOURL for more information.


Loading/Saving a Single Page

The following examples show how you might load and then save a single-page file; first using LoadPageFromFile, second showing the equivalent LoadPage, and third showing LoadPage to obtain an image over the Internet. Since these examples are only concerned with the loading and saving functions, they do not show the code that would have modified the image (thus necessitating the save processing). If your application does not modify the image in any way, then it will not need to include the "save" logic.

Note that you could use any of these same techniques to load a single page from a multi-page file. In that case, you'd simply specify the desired page number (they're numbered starting at 1) in the LoadPage or LoadPageFromFile call.

Note also that these examples use a hard-coded filename. A real application would provide some mechanism for choosing the file to load (for example, a File-Chooser dialog - see Dialogs, below). Note also that these examples use all default values for the IGLoadOptions object.

LoadPageFromFile example:

Dim page As IGPage
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myfile.jpg", 0
.
. (image modification logic not shown)
.
IGFormatsCtl1.SavePageToFile page, "myfile.jpg", 0,
IG_PAGESAVEMODE_OVERWRITE, IG_SAVE_UNKNOWN

LoadPage example:

Dim page As IGPage
Dim file As IGIOFile
Dim options as IGLoadOptions
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set file = IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_IOFILE)
Set options =
IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_LOADOPTIONS)
file.FileName = "myfile.jpg"
options.Format = IGFormatsCtl1.DetectImageFormat(file)
options.Cropping.Enabled = false
options.Resizing.Enabled = false
options.Reduction.Enabled = false
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPage page, file, 0, 0, options
.
. (image modification logic not shown)
.
IGFormatsCtl1.SavePage page, file, 0,
IG_PAGESAVEMODE_OVERWRITE, IG_SAVE_UNKNOWN

LoadPage from Internet example:

Dim page As IGPage
Dim url As IGIOURL
Dim options as IGLoadOptions
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set url = IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_IOURL)
Set options =
IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_LOADOPTIONS)
url.InetService = IG_INETSERV_HTTP
url.HostName = "www.accusoft.com"
url.URLPath = "rsc/ts/pr/9999/myfile.jpg"
url.UserName = "Anonymous"
url.Password = ""
options.Format = IGFormatsCtl1.DetectImageFormat(url)
options.Cropping.Enabled = false
options.Resizing.Enabled = false
options.Reduction.Enabled = false
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPage page, url, 0, 0, options
.
. (image modification logic not shown)
.
IGFormatsCtl1.SavePage page, url, 0,
IG_PAGESAVEMODE_OVERWRITE, IG_SAVE_UNKNOWN


Loading/Saving a Document (Multi-page File)

The following examples show how you might load all of the pages from a multi-page file into an IGDocument; first using LoadDocumentFromFile, second showing the equivalent LoadDocument, and third showing LoadDocument to obtain the pages over the Internet. Since these examples are only concerned with the loading and saving functions, they do not show the code that would have modified the images (thus necessitating the save processing). If your application does not modify the image in any way, then it will not need to include the "save" logic.

Note also that these examples use a hard-coded filename. A real application would provide some mechanism for choosing the file to load (for example, a File-Chooser dialog - see Dialogs, below). Note also that these examples use all default values for the IGLoadOptions object.

Note also that these examples create an IGDocument with no IGPages in it, then let LoadDocument or LoadDocumentFromFile add IGPages to the IGDocument as needed. They use a pagecount parameter of -1 to tell LoadDocument/LoadDocumentFromFile to load all the pages.

LoadDocumentFromFile example:

Dim document As IGDocument
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set document = IGCoreCtl1.CreateDocument(0)
IGFormatsCtl1.LoadDocumentFromFile document, "myfile.tif", 0,
0, -1
.
. (document modification logic not shown)
.
IGFormatsCtl1.SaveDocumentToFile page, "myfile.tif", 0, 0, -1,
IG_PAGESAVEMODE_OVERWRITE, IG_SAVE_UNKNOWN

LoadDocument example:

Dim document As IGDocument
Dim file As IGIOFile
Dim options as IGLoadOptions
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set file = IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_IOFILE)
Set options =
IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_LOADOPTIONS)
file.FileName = "myfile.tif"
Set document = IGCoreCtl1.CreateDocument(0)
IGFormatsCtl1.LoadDocument document, file, 0, 0, -1, options
.
. (document modification logic not shown)
.
IGFormatsCtl1.SaveDocument page, file, 0, 0, -1,
IG_PAGESAVEMODE_OVERWRITE, IG_SAVE_UNKNOWN

LoadDocument from Internet example:

Dim document As IGDocument
Dim url As IGIOURL
Dim options as IGLoadOptions
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set url = IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_IOURL)
Set options =
IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_LOADOPTIONS)
url.InetService = IG_INETSERV_HTTP
url.HostName = "www.accusoft.com"
url.URLPath = "rsc/ts/pr/9999/myfile.tif"
url.UserName = "Anonymous"
url.Password = ""
Set document = IGCoreCtl1.CreateDocument(0)
IGFormatsCtl1.LoadDocument document, url, 0, 0, -1, options
.
. (document modification logic not shown)
.
IGFormatsCtl1.SaveDocument page, url, 0, 0, -1,
IG_PAGESAVEMODE_OVERWRITE, IG_SAVE_UNKNOWN


Updating a Document (Multi-page File)

Since a multi-page file is a complex thing, there are situations where your application will have to make complex modifications to the file (re-arranging the pages, inserting new pages, removing pages, etc.). If the document contains hundreds or thousands of pages, then SaveDocument can be a very expensive and time-consuming operation. For those cases, there is another mechanism for dealing with a multi-page file: OpenDocument.

When using OpenDocument, your application operates in 3 phases:

  1. An IGDocument is created and associated with a multi-page file, and the contents of the file are loaded into the IGDocument.
  2. The IGDocument is modified (IGPages added, removed, re-ordered, and contained images altered), and the file is updated to synchronize with the IGDocument.
  3. The IGDocument is unassociated with the file.

Note that you cannot mix OpenDocument usage with LoadDocument or SaveDocument.

Note also that this example uses a hard-coded filename. A real application would provide some mechanism for choosing the file to load (for example, a File-Chooser dialog - see Dialogs, below). Note also that this example uses all default values for the IGLoadOptions object.

Dim document As IGDocument
Dim file As IGIOFile
Dim options as IGLoadOptions
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set file = IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_IOFILE)
Set options =
IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_LOADOPTIONS)
file.FileName = "myfile.tif"
` Phase 1: create the IGDocument, associate it with a file, and
load it
Set document = IGCoreCtl1.CreateDocument(0)
IGFormatsCtl1.OpenDocument document, file, 0
IGFormatsCtl1.ReadPagesToDocument document, 0, -1
` Phase 2: update the document and synchronize the file
.
. (document modification logic not shown)
.
IGFormatsCtl1.UpdateDocument document
` Phase 3: unassociated the file - we're done
IGFormatsCtl1.CloseDocument document, false


Copy/Paste

Another technique for loading an IGPage object with an image, and saving the image elsewhere involves copying (or cutting) to the Windows Clipboard and pasting from the Clipboard. These functions are performed by the IGPageDisplay object, rather than the IGFormatsCtl object. The "paste" operations will only function if the Windows Clipboard contains an image (as opposed to text).

When cutting or copying, the application must specify the portion of the image in the IGPage that is to be processed - this is specified via an IGRectangle called the ClipRectangle. For example, assume that the IGPage object contains a 283x212 image. The following shows the result from various CopyToClipboard and CutToClipboard calls:

When pasting, the application can either replace the IGPage image entirely (PasteFromClipboard), or can merge the clipboard image into the IGPage image (PasteMergeFromClipboard). Examples of this are as follows:


Acquire Images from Scanners and Cameras

Another technique for loading an IGPage object involves obtaining the image from a device, like a scanner or a camera. ImageGear supports the acquisition of images from TWAIN-compliant devices and from scanners for which there is a driver conformant with the ANSI/AIIM MS61-1996. standard. Note that the AIIM MS61 standard is sometimes known as the "ISIS/MS61" standard, but should not be confused with the "ISIS" scanner driver technology developed by Pixel Translations.

For the complete description of how to use IGTwainCtl and IGIsisCtl, see the ImageGear TWAIN Component API Reference and the ImageGear ISIS Component API Reference.

Acquiring Images from TWAIN Devices

TWAIN was developed by a consortium of software and hardware manufacturers to standardize the communications between applications programs and image acquisition devices. The interface is optimized for the acquisition of graphics images. The TWAIN standard is widely supported by scanner manufacturers, with most users of TWAIN version 1.8. ImageGear supports all three TWAIN Transfer Modes: Native Data Transfer Mode (which is the TWAIN default), Disk File Transfer, and Buffered Memory.

A TWAIN-compliant image acquisition device is one whose device driver complies with TWAIN specifications. The device driver understands the TWAIN protocol, thus allowing interaction with the Data Source Manager, the main interface module of the TWAIN software. The Data Source Manager "manages the session" between the application program and the raster-generating data source. Three software elements work together in TWAIN: the application (where IGTwainCtl is the component that actually talks to TWAIN), the Data Source (DS), and the Data Source Manager (DSM).

The following terminology is used to discuss ImageGear scanning:

  • Data Source: This is a piece of software provided by the manufacturer of the device. Windows will refer to this as a "Device Driver". It must be installed in the system where your application program will run.
  • Data Source Manager: This is the TWAIN manager for the device drivers. This is a piece of software developed by the TWAIN consortium, to provide a common mechanism for managing and using the Data Sources from all the different device manufacturers. It must be installed in the system where your application will run.
  • Device: This term covers all devices from which images can be acquired using the TWAIN protocol, including scanners and cameras.
NOTE: The TWAIN Data Source for your device and the TWAIN Data Source Manager should be included as part of your scanner software. They are not part of the ImageGear software.

See the section TWAIN Scanning Function Overview to learn how to use TWAIN Component API for scanning images.


Import and Export Image from Memory

Another technique for loading an IGPage objects with an image is to use the IGPageDisplay object's ImportDDB method. This function is used when your application acquires an image through some other mechanism (via another API, or from some device not supported by IGTwainCtl or IGIsisCtl).

The image can also be extracted from the IGPage object by calling IGPageDisplay .ExportDDB. Once extracted, it can be saved or transmitted (via some other API or device). For more information on the ImportDDB and ExportDDB methods, see the ImageGear Display Component API Reference Chapter.


Displaying Images

Once you have loaded an image into an IGPage (either by itself, or as part of an IGDocument), the most common thing to do with it is to display it on the computer screen. Usually, your application will only display a given image on the computer screen once. However, there are many situations where your application would need to display the same image more than once (for example, if you wanted to allow the end user to apply some alternate display settings, and your application needed to show "before" and "after" images at the same time). The various controls used to determine the appearance on the computer screen are all bundled together in a single object called IGPageDisplay. Each IGPageDisplay is associated with one (and only one) IGPage, but a given IGPage can have any number (0, 1 or more) IGPageDisplays associated with it. Thus, in our example, our application would have one IGPageDisplay containing the image, and two IGPageDisplay objects (one for the "before" view, one for the "after" view).


IGPageDisplay and IGPageViewCtl

As described in Operational Concepts, you obtain an IGPageDisplay from your IGDisplayCtl ActiveX control. You create an IGDisplayCtl by placing it into the UI of your application, using the graphic designer of your development environment. In the code for your application, in the startup sequence, you must associate the IGDisplayCtl with your IGCoreCtl, before calling any of its methods:

IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGDisplayCtl1.ComponentInterface

Your application must then create an IGPage object, and load an image into it. The following example shows the use of LoadPageFromFile, but any of the techniques in "Loading, Saving and Acquiring Images" could be used:

Dim page As IGPage
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myfile.jpg", 0

Next, your application must create an IGPageDisplay object for the IGPage. This is done as follows:

Dim display As IGPageDisplay
Set display = IGDisplayCtl1.CreatePageDisplay(page, True)

The IGPageDisplay object, by itself, does not cause the image to appear on the computer screen. For that to happen, a Windows construct called a "Device Context" (DC) is required. Note that application programs always deal with Windows constructs through indirect addresses called "handles". Thus, an IGPageDisplay needs a "Handle to Device Context" or "HDC" in order to cause the image to appear on the computer screen. There are many Windows API functions (in native Windows, in MFC, and in ATL) that can be used to obtain an HDC for IGPageDisplay to use.

To simplify the application programmer's job, ImageGear provides an ActiveX control called IGPageViewCtl that automatically provides the needed hDC to IGPageDisplay. The application programmer simply places the IGPageViewCtl onto a dialog or other window (using the graphic designer in their development environment), and then adds a line of code to his/her application to associate the IGPageViewCtl with the IGPageDisplay object. Conceptually, it looks like this:

IGPageDisplay offers several options for rendering the image:

  1. Using an IGPageViewCtl, as shown above.
  2. Directly into a Device Context. The application program must obtain the HDC for this purpose (e.g., from the Windows GDI GetDC() function). The image is rendered by calling the IGPageDisplay . Draw method. For more information on the Draw method, see the ImageGear Display Component API Reference Chapter.
  3. Directly into a printer Device Context. The application must obtain the printer HDC for this purpose (e.g., from the Printer Common Dialog). The image is printed by calling the IGPageDisplay.PrintImage or PrintToPageWithLayout method. For more information on the Print methods, see the ImageGear Display Component API Reference Chapter.
  4. Indirectly, by first rendering the image as a DDB (see Chapter Understanding Bitmap Images), which the application then draws into the Device Context. The image is rendered by calling ExportDDB, passing in the HDC and getting back an IGDisplayDDB object. For more information on the ExportDDB method, see the ImageGear Display Component API Reference Chapter.

When the IGPageDisplay is created, ImageGear creates the structures needed to render the image, including (if necessary) a palette (if it is a 1, 4, or 8-bit image). When the IGPageDisplay is associated with an IGPageViewCtl, and the IGPageViewCtl . UpdateView method is called, then the image is rendered into the Device Context defined by the IGPageViewCtl. There are a host of display setting properties in IGPageDisplay, which can be altered to change the way that the image is rendered - those properties will be discussed below. After setting any of the IGPageDisplay properties, or modifying the image in the IGPage object, your application must call IGPageViewCtl.UpdateView once again to re-render the image.

To illustrate, here is a simple example, written in VB, showing what the application user interface looks like at each step of the process:

Neither changes to the display settings (e.g., changes to IGPageDisplay properties), nor changes to the IGPage object associated with the IGPageDisplay cause an automatic redraw of the IGPageViewCtl - your application must call the IGPageViewCtl.UpdateView () method to have it regenerate the DIB for the image. Continuing our example, let's assume that the application loads a different image into the IGPage object:


IGPageDisplay Functions

IGPageDisplay provides over 50 display-related properties and methods. All of the methods, and most of these properties, are used by your application program to control the way the image is displayed in your application.

NOTE: The following IGPageDisplay properties and methods affect the display of an image only, not the image itself (as contained in the IGPage object). They do not alter the image bitmap, and they do not change the color palette in the DIB. To alter the image itself, use the Image Manipulation facilities of ImageGear, described below.

A few of these properties are "read-only", and provide information about the rendered image to your application. The IGPageDisplay properties are grouped into data-value objects as a way to organize them. The data-value objects, and the properties that they contain, are as follows (for complete descriptions of these properties and methods, see the ImageGear Display Component API Reference):

IGDisplayAntiAlias
Properties used to make scanned text more readable, by removing or minimizing the "aliasing" (jagged edges of characters and other thin lines). For example:
Original Image
With AntiAliasing

These properties can be referenced directly, using the AntiAliasing property of IGPageDisplay:
IGPageDisplay.AntiAliasing.Meth
od = IG_DSPL_ANTIALIAS_NONE
Dim method as enumAliasModes
method =
IGPageDisplay.AntiAliasing.Meth
od
IGDisplayBackground
Controls the appearance of the area that is inside IGPageViewCtl, but outside of thedisplayed image. For example:
Default Background

"Brush" Background

Your application can set the background to a solid color, or use some other image as a "brush" to paint the background. These properties can be referenced directly, using the Background property of IGPageDisplay:
IGPageDisplay.Background.Mode =
IG_DSPL_BACKGROUND_NONE
Dim mode as enumBackgroundModes
mode =
IGPageDisplay.Background.Mode
IGDisplayScrollInfo
Controls the way that a portion of a large image is visible within the smaller IGPageViewCtl. Scrolling can either be automatic (ImageGear takes care of it) or manual (your application has to react to mouse events and tell IGPageDisplay how to position the image). The scroll properties are all inter-related, and so they are "gotten" from IGPageDisplay as a group, and they are "updated" in IGPageDisplay as a group. Access them as follows:
Dim info as IGDisplayScrollInfo
Set info =
IGPageDisplay.GetScrollAttrs(IG
PageViewCtl1.hWnd)
Dim mode as
enumIGDsplScrollBarModes
mode = info.H_Mode
Change the properties as follows: :
info.H_Mode = IG_DSPL_SB_AUTO
info.V_Mode = IG_DSPL_SB_AUTO
IGPageDisplay.UpdatetScrollAttr
sFrom IGPageViewCtl1.hWnd, info
IGDisplayZoomInfo
Controls the way that an image is magnified before being displayed in the IGPageViewCtl. For example:
Actual Size
300% Zoom

The zoom properties are all inter-related, and so they are "gotten" from IGPageDisplay as a group, and they are "updated" in IGPageDisplay as a group. Access them as follows:
Dim info as IGDisplayZoomInfo
Set info =
IGPageDisplay.GetZoomInfo(IGPag
eViewCtl1.hWnd)
Dim mode as enumZoomModes
mode = info.Mode
Change the properties as follows: :
info.HZoom = 1.3#
info.Zoom = 1.3#
IGPageDisplay.UpdatetZoomFrom
info
IGDisplayPalette
This is a palette in OS-dependent format. This palette is implemented before drawing pixels onto the output device. By default, this option is NULL, which means that it is created either from the logical palette of the image, or from the logical palette used in dithering. ImageGear does not perform logical processing of the specified palette; it implements it only before drawing it. Incorrect usage of this option, therefore, may distort the image on the destination device.
You can use this object to store a palette to a file, and then later reload it for use in a different image.
The palette properties are all inter-related, and so they are "gotten" from IGPageDisplay as a group, and they are "updated" in IGPageDisplay as a group. Access them as follows:
Dim palette as IGDisplayPalette
Set palette =
IGPageDisplay.GetPaletteData
Dim mode as enumPaletteModes
mode = palette.Mode
Change the properties as follows: :
palette.Mode =
IG_DSPL_PALETTE_HIGH
palette.Palette = XXX
IGPageDisplay.UpdatetPaletteFro
m palette
IGDisplayLayout
Controls the geometric appearance (full image or partial image, centered or not, etc.) of the image as displayed in IGPageViewCtl.
Layout settings include 3 rectangles (ImageRect, ClipRect and DeviceRect) that can be used to control the layout of the image as rendered - see ImageRect, ClipRect and DeviceRect, below for a description of these rectangles. Normally your application won't reference these rectangles, as they default to the size of the image and the size of the IGPageViewCtl, respectively.
The most commonly used layout properties are Alignment and FitMode:
Align: Left_Top
Fit: To_Window_Height
These properties can be referenced directly, using the Layout property of IGPageDisplay:
IGPageDisplay.Layout.FitMode =
IG_DSPL_ACTUAL_SIZE
Dim mode as enumFitModes
mode =
IGPageDisplay.Layout.FitMode
IGDisplayMapMode
These options are device-dependent. They allow you to set logical coordinates. All coordinates, except for ImageRect, are logical; these options are necessary to properly convert logical coordinates to device coordinates.
For Windows platforms, the value of MapMode can be anything accepted by the GDI's functions GetMapMode/SetMapMode. The Viewport and Window contain values that are the same as the GDI's SetViewportOrgEx/SetViewportExtEx and SetWindowOrgEx/ SetWindowExtEx options.
These properties can be referenced directly, using the MapMode property of IGPageDisplay:
IGPageDisplay.MapMode.Mode =
IG_DSPL_MM_HIMETRIC
Dim mode as enumIGDsplMapModes
mode =
IGPageDisplay.MapMode.Mode
IGDisplayTransparency
Used to control transparency handling as the image is rendered. ImageGear display functionality supports transparency by color and by mask. Transparency by color means that it is possible to draw images with a specified color being transparent. Transparency by mask provides a one-bit per pixel image and uses it as the transparent mask.
These properties can be referenced directly, using the Transparency property of IGPageDisplay:
IGPageDisplay.Transparency.Mode
= IG_DSPL_TRANSPARENCY_MASK
 Dim mode as enumTranspOptions
 mode =
IGPageDisplay.Transparency.Mode
LUT
The LUT (an IGPixelArray) actually defines a mathematical function that is used to convert the image color/intensity into the rendered color/intensity. "LUT" stands for "LookUp Table" - IGPageDisplay uses the intensity of a given image pixel as an index into the table, and uses the value of that table-entry as the intensity and/or color for the pixel as rendered. IGPageDisplay recalculates the LUT every time your application calls AdjustContrast(), so your application normally won't access the LUT. See "Lookup Tables and Gamma Correction" below for more information on LUT usage.
The LUT is accessed as follows:
Dim lut as IGPixelArray
Set lut =
IGPageDisplay.GetLUTCopy(IG_COL
OR_COMP_RGB)
Change the LUT as follows: :
IGPageDisplay.UpdatetLUTFrom
lut, IG_COLOR_COMP_RGB

A few display properties are contained directly in the IGPageDisplay object. They are:

Dithering
Controls the way that high-bit-depth images are rendered to lower bit-depth (e.g., for printing a color image on a black-and-white printer). For example:
Original Image
Dithered to Monochrome

These properties can be referenced directly:
IGPageDisplay.Dithering =
IG_DSPL_DITHER_TO_1BPP
Dim mode as enumDitherModes
method = IGPageDisplay.Dithering
Orientation
Another control that determines the geometric appearance of the image as displayed in IGPageViewCtl. For example:
BOTTOM_RIGHT
RIGHT_BOTTOM

These properties can be referenced directly:
IGPageDisplay.Orientation =
IG_ORIENT_LEFT_TOP
Dim orientation as enumOrientation
orientation = IGPageDisplay.Orientation

Beside the data-value objects and the display properties, there are a number of methods in IGPageDisplay that can be used to change the way that the IGPage image is rendered:

AdjustContrast
Used to change the contrast, brightness and gamma-correction values for the rendered image.
  • Contrast specifies the contrast level to produce. Values greater then 1.0 increase contrast, values less than 1.0 decrease contrast. Values less than 0.0 will invert contrast (exchange dark and light). The default value is 1.0.
  • Brightness specifies the brightness adjustment. The values range from -255.0 to +255.0. The default value is 0.0
  • Gamma controls the non-linear contrast adjustment. Values greater then 1.0 increase contrast, values less than 1.0 decrease it. The normal range is from 1.8 to 2.2. The default value is 1.0
Some example values are:
C 1.0, B 0.0, G 1.0
C 1.0, B 128.0, G 1.0
C -1.0, B 0.0, G 1.0
C 1.0, B 128.0, G 0.7

ScrollTo
An alternate mechanism for scrolling the image.
ZoomToRectangle
An alternate mechanism for setting the zoom properties.


ImageRect, ClipRect, and DeviceRect

ImageRect

This rectangle defines the part of the image that is output to the device. It is expressed in image coordinates. By default, this option is set to the entire image. Use the IGPageDisplay.Layout . ImageRect property to change this.

ClipRect

This rectangle identifies the destination device area affected by the display operations. It is expressed by device coordinates and is initially assigned the entire client area of the IGPageViewCtl. Use the IGPageDisplay.Layout . ClipRect property to change this.

DeviceRect

The image does not have to necessarily fit exactly into the device rectangle. The position of the image inside the device rectangle may also be determined by other display options such as AspectMode, FitMode, and AlignMode. Use the IGPageDisplay.Layout . DeviceRect property to change this.

DisplayedImageRect

Although this is not a display option you can set, it is an important concept. This rectangular area represents the image's size and location on the device and, therefore, it is expressed in device coordinates. It is NOT related to the ClipRect function, which represents the visible part of the image. The DisplayedImageRect's value can be calculated and used but cannot be set directly.

This figure demonstrates the meaning of the rectangles listed above:

Thus, if the ImageRect is left at its default value (equal to the entire image), and the DeviceRect and ClipRect are left at their default values (equal to the size of the IGPageViewCtl), and if the FitMode is IG_DSPL_FIT_TO_DEVICE, then result will be as follows:

If your application then made the DisplayRect 2x wider and 2x taller, but left the ClipRect set to the size of the IGPageViewCtl (this is the same as setting a 2x zoom), then the following would result:

On the other hand, if your application left the DisplayRect set to the size of the IGPageViewCtl, but made the ClipRect half as wide and half as tall, then the following would result:

Note that the settings for ImageRect, DeviceRect, ClipRect, Layout. FitMode, Layout. Alignment, Zoom, Scroll and Orientation can specify conflicting values. The resolution to this is a hierarchy, wherein some of these properties take precedence over others. We will further explain how ImageGear deals with the options when their meaning is not immediately clear.

Let us consider the general display rendering algorithm. It consists of several steps. Within each step, ImageGear processes some options to introduce modifications to the resulting image. ImageRect is oriented according to OrientMode. ClipRect and DeviceRect are calculated according to their definitions above.

If FitMode is set to IG_DSPL_ACTUAL_SIZE, then DisplayedImageRect.width and DisplayImageRect.height are set to ImageRect width and ImageRect height respectively. Otherwise, DisplayedImageRect is computed using DeviceRect. According to ZoomMode, ZoomValueH and ZoomValueV, DisplayedImageRect.width and DisplayedImageRect.height are modified as follows:

If (ZoomMode and IG_DSPL_ZOOM_H_FIXED) <> 0 then
DisplayedImageRect.width = DisplayedImageRect.width*ZoomValueH
End If
and
If (ZoomMode and IG_DSPL_ZOOM_V_FIXED) <> 0 then
DisplayedImageRect.height =
DisplayedImageRect.height*ZoomValueV
End If
If AspectMode is set to IG_DSPL_ASPECT_FIXED, ZoomValueV is not
used, and the above procedure is changed in the following way:
If (ZoomMode and IG_DSPL_ZOOM_H_FIXED) <> 0 then
DisplayedImageRect.width = DisplayedImageRect.width*ZoomValueH
DisplayedImageRect.height =
DisplayedImageRect.height*ZoomValueH
End If

DisplayedImageRect.x and DisplayedImageRect.y are computed so that DisplayedImageRect is aligned as specified by AlignMode. The scrolling range is calculated so that DisplayedImageRect can be viewed within ClipRect. Then DisplayedImageRect.x and DisplayedImageRect.y are shifted according to the current scroll position.


Grayscale Look Up Tables

The ImageGear API allows you to attach a grayscale look up table (LUT) to IGPage and to IGPageDisplay objects. The grayscale look up table can be set for any image, but ImageGear only uses it with grayscale images, and ignores it with the other images. The look up table specifies a transform from the image intensity range to the 8-bit unsigned range. This allows you to display a particular part of an image intensity range, or enhance image contrast.

If both an IGPage and corresponding IGPageDisplay contain grayscale LUTs, the display LUT overrides the image's LUT. A LUT can be removed from an image and attached to a display, or vice versa.

Storing grayscale a LUT with IGPageDisplay allows you to display the same image with different LUTs simultaneously, in different windows.

A grayscale LUT can be used in combination with a RGB LUT. The grayscale LUT is applied first, and then the RGB LUT is applied. In particular, this allows you to apply pseudocoloring after grayscale transformations.

Use IGPageDisplay.UpdateGrayscaleLUTFrom to create or update a grayscale LUT with the specified LUT. This method copies LUT data to the display settings. Pass NULL (Nothing) to this method to remove a grayscale LUT from the display settings.

Use IGPageDisplay.GrayscaleLUTExists to check whether IGPageDisplay contains a grayscale LUT.

Use IGPageDisplay.GetGrayscaleLUTCopy to obtain a copy of the display grayscale LUT.

The ImageGear Medical component provides a set of methods used to build grayscale LUTs according to various DICOM display settings.

An IGLUT object can have various input and output depths, as well as signed and unsigned output. However, ImageGear applies some restrictions on LUTs that can be attached to IGPage or IGPageDisplay. Input depth must be 8 or 16, output depth must be 8 and unsigned. 8x8 LUTs can be used for displaying 2...8 bit grayscale images, 16x8 LUTs can be used for displaying 9..16 bit grayscale images.

See Also:

Working with Grayscale Look Up Tables

Medical Component Grayscale Look Up Tables


Lookup Tables and Gamma Correction

ImageGear supports gamma correction preprocessing before the image is drawn onto the destination device. This operation does not affect the image itself, but only changes its appearance. There are three options that allow you to control gamma correction:

  • RedLut: A 256-entry array of bytes that contains a new value for each of the possible 256 intensities of the red color.
  • GreenLut: A 256-entry array of bytes that contains a new value for each of the possible 256 intensities of the green color.
  • BlueLut: A 256-entry array of bytes that contains a new value for each of the possible 256 intensities of the blue color.

Each of the three option's default value is the identity array.

If the source image is not in the RGB color space, then it is first converted to the RGB color space and then all the lookup tables are applied. High-level options that automatically create all necessary lookup tables are available.


Image Processing

Once you have loaded an image into an IGPage (either by itself, or as part of an IGDocument), the other most common thing to do with it is to manipulate it.

The IGPage object itself provides several methods for manipulating the image. In addition, there are several ActiveX controls that provide methods for modifying and manipulating the image in an IGPage object. They are as follows:

Control Name
Usage/Function
IGProcessingCtl
Basic image processing (rotate, crop, etc.)
IGEffectsCtl
Special effects processing (posterize, etc.)
IGICCtl
Scanned image cleanup (remove red-eye, etc.)
IGArtXCtl
Annotation and Redlining
IGMedCtl
DICOM image display, manipulation and meta-data

NOTE: The methods of these controls modify the image in an IGPage object, but do not store the changed image - your application program must use one of the techniques, described in Loading, Saving and Acquiring Images section, to save the changed image.

Each type of image manipulation is done with the corresponding ActiveX control. The methods of that control modify the image contained within an IGPage object.

As described in Operational Concepts, you use each of these controls by placing it into the UI of your application, using the graphic designer of your development environment. In the code for your application, in the startup sequence, you must associate the control with your IGCoreCtl, before calling any of its methods (this example shows IGProcessingCtl, but the technique is identical for IGEffectsCtl and the others):

IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent
IGProcessingCtl1.ComponentInterface

Your application must then create an IGPage object, and load an image into it. The following example shows the use of LoadPageFromFile, but any of the techniques in Loading, Saving and Acquiring Images could be used:

Dim page As IGPage
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myfile.jpg", 0

Your application can then modify the image, using any of the control's methods. For example, to rotate the image by 90 degrees, your application would execute the following statement:

IGProcessingCtl1.Rotate90k page, IG_ROTATE_90

After modification, the image needs to be saved somewhere. Again, your application can use any of the techniques described in Loading, Saving and Acquiring Images section.

The facilities provided by each of the controls are discussed below.


Basic Image Processing with IGPage

The various ways in which an image can be modified with IGPage are described in the following table. Please refere to the ImageGear Core Component API Reference for complete descriptions of the IGPage methods.

Modification
API Reference
Make changes to the Alpha channel of information in the image
AddAlpha
GetAlphaCopy
GetAlphaDIBInfo
RemoveAllAlpha
RemoveAlpha
Make changes to the palette stored with the image (note that this is NOT the same palette as used to render the image - that palette is generated by IGPageDisplay when the image is rendered.
GetPaletteSize
GetPaletteCopy
GetPaletteEntryCopy
UpdatePaletteEntryFrom
Make changes to the resolution "meta data" stored with the image (changing this does not resize the image, only redefines the volume of physical space that each image pixel represents).
GetImageResolutionCopy
Copy all of the information in one IGPage object into another.
DuplicateTo


Basic Image Processing with IGProcessingCtl

The various ways in which an image can be modified with IGProcessingCtl are described in the following table. Please refere to the ImageGear Processing Component API Reference for complete descriptions of the IGProcessingCtl methods.

Modification
API Reference
Change the contrast, brightness and/or gamma correction in the image. Note that, when done with IGProcessingCtl, this does change the image in IGPage - when done with IGPageDisplay (above), it does not.
ContrastOptions
LUT
AdjustContrast
EqualizeContrast
InvertContrast
StretchContrast
TransformWithLUT
Combine two images to create a new one. This may be done by superimposing the two images, or by tiling them.
LUT
Blend
BlendWithAlpha
BlendWithLUT
Merge
Convert from one color representation scheme to another (e.g., from RGB to CYMK, or RGB to Grayscale, or 8-bit color to 24-bit color).
Color reduction in general results in an image with fewer colors than the original, even if the bit depth is not changed. There are a number of color reduction methods and ImageGear provides you with several different functions from which you can choose the one that is most suitable in a given case.
Color promotion is the process of increasing the bit depth, or number of bits per pixel, of an image. The color of each pixel is retained. ImageGear provides one function that handles promotion to any bit depth.
PseudoColoring is the process of converting a grayscale image to a color image. This can be used to highlight over-exposed/under-exposed areas, or to highlight subtle changes in contrast.
ImageChannels
PseudoColorLimitsOptions
ReductionPalette
CombineImageChannels
ConvertToColorSpace
ConvertToGray
Promote
PseudoColorWithLimits
PseudoColorWithSmallGrads
ReduceToBitonal
ReduceWithBayer
ReduceWithDiffuse
ReduceWithHalftone
ReduceWithMedianCut
ReduceWithOctree
ReduceWithPopularity
SeparateImageChannels
SwapBytes16Gray
SwapRedAndBlue
Compress monochrome images (e.g., scanned documents) to reduce IGPage memory consumption.
ConvertDIBToRuns
ConvertRunsToDIB
Convolution (pixel-by-pixel manipulation - e.g., soften the image by reducing the "sharpness" of edges, or sharpen the image by increasing the contrast at edges).
ConvolutionMatrix
Convolve
FilterEdgeMap
FilterWithGaussianBlur
FilterWithMedian
FilterWithUnsharpMask
Sharpen
Smooth
These functions clean up the image (despeckling removes "noise", deskewing straightens out an image that was scanned at a slight angle "skewed", removing red eye corrects redness in human eyes)
Despeckle
FindSkewAngle
Deskew
Crop - remove part of the image.
Crop
Encrypt for secure storage
Decrypt
Encrypt
Add a frame to the outer edge of the image
DrawFrame
Change the geometry of the image (rotate, flip, etc.).
Flip
Rotate
Rotate90k
Perspective
Shear
Alpha channel manipulations (for image formats that support an Alpha channel)
GenerateAlpha
BlendWithAlpha
Thumbnail manipulations (for image formats that support an embedded thumbnail)
GenerateThumbnail
Resize - retains the same image, but either increase the number of pixels (interpolating to determine the color values for the new ones), or reduce the number of pixels
Interpolation
ResizeOptions
ResizeImage
Area Detection - detects an area in the image, using a predefined or custom pixel checking method.
DetectAreaWithThreshold
Red eye removal - removes the "red eye" effect in color images by converting the red color in the eye to the new specified color. See Red-Eye Removal for more information.
DetectRedeyeArea
RemoveRedeye

Mathematical Morphology

The field of mathematical morphology contributes a wide range of operators to image processing, all based around a few simple mathematical concepts from set theory. The operators are particularly useful for the analysis of binary images and common usages include edge detection, noise removal, image enhancement and image segmentation.

The two fundamental operations in mathematical morphology are erosion and dilation. Both of these operators take two pieces of data as input: an image to be eroded or dilated, and a structuring element (also known as a kernel). The two pieces of input data are each treated as representing sets of coordinates in a way that is slightly different for binary and grayscale images.

For a binary image, white pixels are normally taken to represent foreground regions, while black pixels denote background. (Note that in some implementations this convention is reversed, and so it is very important to set up input images with the correct polarity for the implementation being used). Then the set of coordinates corresponding to that image is simply the set of two-dimensional Euclidean coordinates of all the foreground pixels in the image, with an origin normally taken in one of the corners so that all coordinates have positive elements.

For a grayscale image, the intensity value is taken to represent height above a base plane, so that the grayscale image represents a surface in three-dimensional Euclidean space. Then the set of coordinates associated with this image surface is simply the set of three-dimensional Euclidean coordinates of all the points within this surface and also all points below the surface, down to the base plane. Note that even when we are only considering points with integer coordinates, this is a lot of points, so usually algorithms are employed that do not need to consider all the points.

The structuring element is already just a set of point coordinates (although it is often represented as a binary image). It differs from the input image coordinate set in that it is normally much smaller, and its coordinate origin is often not in a corner, so that some coordinate elements will have negative values. Note that in many implementations of morphological operators, the structuring element is assumed to be a particular shape (e.g. a 3×3 square) and so is hardwired into the algorithm.

Binary morphology can be seen as a special case of grayscale morphology in which the input image has only two gray levels at values 0 and 1.

Erosion and dilation work (at least conceptually) by translating the structuring element to various points in the input image, and examining the intersection between the translated kernel coordinates and the input image coordinates. For instance, in the case of erosion, the output coordinate set consists of just those points to which the origin of the structuring element can be translated, while the element still remains entirely `within' the input image.

Virtually all other mathematical morphology operators can be defined in terms of combinations of erosion and dilation along with set operators such as intersection and union. Some of the more important are opening and closing.

Erosion

Erosion is one of the fundamental operations in the mathematical morphology. It is usually applied to black and white images, but can also be applicable to grayscale ones. The basic effect of the operation is to erode away the boundaries of regions of foreground pixels (white pixels). Thus areas of foreground pixels shrink in size, and holes within those areas become larger. Applying this to the grayscale image will make bright objects smaller, i.e. image darker.

Both erosion and dilation work by translating the structuring element to various points in the input image, and examining the intersection between the translated kernel coordinates and the input image coordinates. For instance, in the case of erosion, the output coordinate set consists of just those points to which the origin of the structuring element can be translated, while the element still remains entirely `within' the input image. In case of dilation the effect is opposite. See Erode.

Dilation

Dilation is one of the fundamental operators in the mathematical morphology. It is usually applied to black and white images, but can also be applicable to grayscale ones. The basic effect of the operation is to gradually enlarge the boundaries of regions of foreground pixels (white pixels). Thus areas of foreground pixels grow in size while holes within those regions become smaller. Applying this to the grayscale image will make bright objects larger, i.e. image lighter.

Both erosion and dilation work by translating the structuring element to various points in the input image, and examining the intersection between the translated kernel coordinates and the input image coordinates. For instance, in the case of erosion, the output coordinate set consists of just those points to which the origin of the structuring element can be translated, while the element still remains entirely `within' the input image. In case of dilation the effect is opposite. See Dilate.

Opening

Opening is another operation from mathematical morphology that is derived from the fundamental operations of erosion and dilation. Like those operators it is usually applied to black and white images, but can be applicable to grayscale images as well. The basic effect of an opening is somewhat like erosion in that it tends to remove some of the foreground (bright) pixels from the edges of regions of foreground pixels. However it is less destructive than erosion in general. As with other morphological operators, the exact operation is determined by a structuring element. The effect of the operator is to preserve foreground regions that have a similar shape to this structuring element, or that can completely contain the structuring element, while eliminating all other regions of foreground pixels. See Open.

Closing

Closing is another operation from mathematical morphology that is derived from the fundamental operations of erosion and dilation. Like those operators it is usually applied to black and white images, but can be applicable to grayscale images as well. Closing is similar in some ways to dilation in that it tends to enlarge the boundaries of foreground (bright) regions in an image (and shrink background color holes in such regions), but it is less destructive of the original boundary shape. As with other morphological operators, the exact operation is determined by a structuring element. The effect of the operator is to preserve background regions that have a similar shape to this structuring element, or that can completely contain the structuring element, while eliminating all other regions of background pixels. See Close.

Red-Eye Removal

Red-eye removal group of methods removes the "red eye" effect in color images by converting the red color in the eye to the new specified color. ImageGear's Red-Eye Removal works by detecting an area around a specified point where the colors correspond to the point color with the specified threshold. This detected area is saved as a Region of Interest (ROI) of the raster page. Red eye is then removed for every point in the ROI of a raster page. It is designed only for red eye removal, not other colors (as may occur with animal eyes).

The DetectRedeyeArea method detects an area around specified point where the colors correspond to the point color with the specified threshold. The detected area is returned as a ROI.

For example, the color of the specified point is:

Red == 212;

Green == 96;

Blue == 128;

And threshold is 10.

The method detects a closed polygon around the specified point in which the color components belong to the range.

Red - 202.. 222;

Green - 86..106

Blue - 118.. 138

The RemoveRedeye method removes red eye for every point in the ROI of a raster page. It is designed only for red eye removal, not other colors (as occurs with animal eyes). First, the red component must be reduced to be around the same level of the green and blue components. Then, all three components must be reduced. The following are some examples of corrected color values:

210,39,71 -> 25,23,26

186,77,82 -> 64,54,53

236,95,101 -> 80,80,78


Special Effects Processing

The various ways in which an image can be modified with IGEffectsCtl are described in the following table. All of these modifications are "artistic effect" modifications, typically used in graphics design applications. Please refere to the ImageGear Effects Component API Reference Chapter for complete descriptions of the IGEffectsCtl methods.

Modification
API Reference
Perform a ChromaKey merge of 2 images (like on TV, where the weatherman stands in front of a blue screen, and the weathermap is merged onto the areas of blue)
Image

Backdrop

Result
AddChromaKey
Change the image to give the impression of motion (as if the camera was moving when the picture was taken)
Before
After
AddMotion
Change the image by adding "noise" (as if the image were dusty or very old)
Before
After
AddNoise
Darken the area outside of a circular area in the image.
Before
After
AddSpotlight
Change the image to look like it was printed on a textured surface (a specific type of Blend)
Image
Texture
Result
AddTexture
Add a watermark to the image (a specific type of Merge)
Image
Watermark
Result
AddWatermark
Aging - applies an aging effect to make an image look older. The effect can adjust image saturation and contrast, and add noise and random vertical lines to the image.
Original

Aging effect

Aging
Soften the image (as if the camera was out of focus, or as if the picture was taken through a filter).
Before
After
Blur
Diffuse
Convert the picture so that it resembles a bas-relief sculpture.
Before
After
Emboss
Stitch
Convert the picture so that it appears as if the pixels were very large (as if the picture was taken through a glass shower-stall door).
Before
After
BackColor
Pixelate
Twist
Convert the picture so that it has a stylized effect
Before
After
Posterize
Provides a cylindrical warping effect on the IGPage
Before
.
After
Cylinder
Functional Lights - change the colors of an image according to the pattern of a sine wave, or an application defined pattern. The image will appear to have circles or bars of light and/or shadow overlaid on top of it.
Original:

Directional Light effect:

Radial Light effect

DirectionalLight
FreeDirectionalLight
FreeRadialLight
RadialLight
Add borders and shadows.
Original

DropShadow: adds a drop shadow to the image.

DropShadow
Fragmentation - fragments an image into four blended images which move diagonally outward from the original image.
Before

After

Fragment
Lens Flare - changes the colors of an image according to the pattern of a sine wave. The image will appear to have regularly spaced bars of light and shadow overlaid on top of it.
Original

Lens Flare effect

LensFlare
Artistic Effects - make the image appear to have been hand-painted.
Original

Oilify effect

Pointillist effect

Spatter effect

Oilify
Pointillist
Spatter
Divides a bitmap into tiles of a specified shape and size, changes the color of all pixels in each tile to the average color of pixels within the tile, and adds 3D borders between the tiles.
Original

Pixelate efect

Tile Mosaic - spider's web

Pixelate
MosaicTiles
Provides a parabolic warping effect on the IGPage.
Before
.
After
Parabola
Provides a perspective-like effect on the IGPage.
Before
After
Perspective
Pinch - transforms the image by making it appear as if it were pinched in the center.
Before
After
Pinch
Ripple Effects - warps the image using a specified pattern.
Original
RadialWave effect
DirectionalWave
RadialWave
Ripple
RippleFreeHand
RippleTexture
Provides a spherical warping effect on the IGPage.
Before
After
Sphere


Working with Events

"Events" are the mechanism whereby ImageGear informs your application of external events (hey, that's why they call them "Events") - the user clicking the mouse, or pressing a key on the keyboard. An "Event Handler" is a subroutine in your application program that ImageGear calls when the Event occurs. Conceptually, it looks like this:

Your application can do anything it wants in the Event Handler subroutine. Typically, however, Event Handlers are used to coordinate the activities of various ImageGear ActiveX controls. For example, if you have an IGGUIThumbnailCtl control displayed in your application's UI, and also an IGPageViewCtl, and you're using the IGGUIThumbnailCtl as a kind of "file chooser", then you'd want the user to be able to click on one of the thumbnails and have the image automatically displayed in the IGPageViewCtl. You'd define a "ClickIn" Event Handler for the IGGUIThumbnailCtl, and call LoadPageFromFile in the Event Handler subroutine.

The most commonly implemented Event Handlers are listed in the table below:

Control
Event
Usage
<all>
Error
One of the 4 mechanisms for Error handling. See "Error Handling" above.
IGFormatsCtl
IGMetadataItemAdd
IGMetadataItemRead
IGMetadataItemWrite
Only used for image files containing non-image data ("meta-data"). These event handlers are called as the file is read or written. Use these to obtain the meta-data (Read) or create the meta-data (Add) or correct the meta-data (Write). See "Non-image data ("Meta-data") Handling", below.
IGPageViewCtl
MouseDown
MouseMove
MouseUp
MouseDown followed by MouseUp is a "click" in the image, which can be used to trigger some default image-related function your application. MouseMove can be used to track the mouse (e.g., to display that part of the image magnified).
IGGUIThumbnailCtl
Click
Called to indicate that the user clicked somewhere within the thumbnail browser.
IGArtXCtl
Called when toolbar buttons are clicked and when the toolbar is closed.
IGArtXCtl
Called for the various events in the "life" of an ART mark. For example, when the user presses the mouse button down as they begin to draw the mark, PreCreateNotify is called (your program can provide default mark values at this point). When the user releases the mouse button after drawing the mark, CreateNotify is called (your program can validate the mark and cancel it, if necessary, at this point). After the mark is created, PostCreateNotify is called (your program can react to the creation of the mark at this point)..


Working with Global Control Parameters

There is a set of parameters that are used to control the behavior of various portions of ImageGear, called the "Global Control Parameters". Typically, your application program will not access these control parameters - they'll be set by the internal operation of ImageGear, and your application will not need to access them. The Global Control Parameter facility is quite general purpose, however, and your application can use it to store (and later retrieve) any information desired. Also, in some situations your application program may need to set a Global Control Parameter to cause ImageGear to behave the way you want.

Each Global Control Parameter consists of:

  • Name - Uniquely identifies the parameter. The convention is to structure the name in the form "component.parameter". For instance, one of the parameters used by the CPM Format Filter is "CPM.ENABLE_PROFILES".
  • Type - Identifies the type of data stored in this parameter. Can be any of the enumIGAbsDataType values.
  • Value - The value of the parameter.
  • Info - An optional character string containing any useful information about the parameter.

The list of Global Control Parameters defined by ImageGear are as follows:

Parameter
Usage
LIC.PRODUCT_KEY
Product Key as defined in your License Key file.
COMM.PATH
Default path to search for components
CPM.ENABLE_PROFILES
Enable/Disable color profiles.
CPM.RGB_PROFILE_PATH
Filename for RGB color profile
CPM.CMYK_PROFILE_PATH
Filename for CMYK color profile
FLTR.METADATA_FORMAT
Meta-data format ("binary" or "text")
IGResult ::NotificationMode
IGCoreCtl.Result.NotificationFlags value
PDF.PDF_RESOURCE_PATH*
Path to the Resource\PDF directory
PDF.PS_RESOURCE_PATH*
Path to the Resource\PS directory
PDF.HOST_FONT_PATH*
Path to the system font directory
PDF.TMP_PATH*
Path to the TEMP directory

* These parameters are not defined by default, but can be used for locating PDF resources.

Your application can access the Global Control Parameters via the IGCoreCtl . Settings property. To create a new parameter, do the following:

Dim gcp As IGGlobalParameter
Set gcp = IGCoreCtl.CreateObject(IG_OBJ_GLOBAL_PARAM)
gcp.Name = "MyApp.MaxFrammisSize"
gcp.Info = "Maximum Frammis size for the MyApp application"
Dim gcpvalue as IGDataItem
Set gcpvalue = new IGDataItem
gcpvalue.Type = IG_DATA_LONG
gcpvalue.Long = 32767
Set gcp.Value = gcpvalue
IGCoreCtl.Settings.UpdateParamFrom gcp

To later get the value for the parameter created by the above code, do the following:

Dim gcp As IGGlobalParameter
Set gcp =
IGCoreCtl.Settings.GetParamCopy("MyApp.MaxFrammisSize")
lMaxFrammisSize = gcp.Value.Long


Working with Format Filters

Every image file format supported by ImageGear has its own filter, including the set of internal functions organized into special structure that completely defines the filter's functionality. Every format filter is described by a COM object called IGFormatParams. This object contains a Flags property which describes some general capabilities of the filter, and it contains a set of control parameters that your application can set to control the filter's functionality (e.g., to control in which it loads images).


Basic Capabilities of each Filter

To access the IGFormatParams object for a given format filter, your application will use the Format property of the IGFormatsSettings object. For instance, to access the IGFormatParams object for the JPEG format filter, your application would execute the following:

Dim jpeg as IGFormatParams
Dim temp as IGFormatParams
Dim i As Integer
For i = 0 To IGFormatsCtl1.Settings.FormatCount - 1
Set temp = IGFormatsCtl1.Settings.Format(i)
If temp.ID = IG_FORMAT_JPG Then
Set jpeg = temp
Break
End If
Next i

The general features of a given format filter are described by the 1-bit flags in IGFormatParams.Flags. The table below describes the meaning of each of these flags:

IG_FLTR_DETECTSUPPORT
Means that filter supports autodetection.
IG_FLTR_PAGEREADSUPPORT
Means that filter supports single page file reading.
IG_FLTR_MPAGEREADPSUPPORT
Means that filter supports multi-page (document) file reading.
IG_FLTR_PAGEINSERTSUPPORT
Means that filter supports single-page file writing.
IG_FLTR_MPAGEWRITEPSUPPORT
Means that filter supports multipage (document) file writing.
IG_FLTR_PAGEDELETESUPPORT
Means that filter supports page deleting from multi-page file.
IG_FLTR_PAGESWAPSUPPORT
Means that filter supports page swaping in multi-page files.
IG_FLTR_MPDATASUPPORT
Means that filter supports faster multi-page access by storing private format data .

Please see information about the supported features for each format filter in the ImageGear Supported File Formats Reference section.

ImageGear supports different types of image compression. Currently every ImageGear format filter has its own list of supported compressions. Your application can determine which compressions are supported by a format filter by checking the values in IGCompressionsInfo. To check to see if the JPEG format filter supports the PACKED_BITS compression, your application would execute the following:

Dim jpeg as IGFormatParams
.
. (set jpeg as above)
.
Dim comp as IGCompressionInfo
Set comp = jpeg.GetCompressions()
Dim i As Integer
For i = 0 To comp.Count - 1
If comp.Item(i) = IG_COMPRESSION_PACKED_BITS Then
` It does!
End If
Next i

For information about the supported compressions for every format filter, see the ImageGear Supported File Formats Reference section.


Controlling Operation of a Filter

Almost every format filter in ImageGear has some attributes that it depends on while processing the Loadxxx and Savexxx methods of IGFormatsCtl. These attributes are called the control parameters of the filter. Your application can query these parameters, and change them to control the way that the filter operates. The ImageGear Supported File Formats Reference section in Chapter File Format Reference, where descriptions of filters are located, contains the full description of each control parameter for each format filter.

Your application accesses these control parameters using the GetParamCopy and GetParamCopyByIndex methods of IGFormatParams. Using these methods, your application gets IGControlParameter objects. If desired, your application can change the value in a given IGControlParameter object, and then change the format filter behavior by calling UpdateParamFrom. To continue the preceeding example, to tell the JPEG format filter to start saving a thumbnail image in any JPEG file, your application would execute the following:

Dim jpeg as IGFormatParams
.
. (set jpeg as above)
.
Dim param as IGControlParameter
Set param = jpeg.GetParamCopy("SAVE_THUMBNAIL")
param.Value.Boolean = true
jpeg.UpdateParamFrom param
NOTE: In the case of TXT Filter to set the LINES_PER_PAGE and CHAR_PER_LINE control parameters, do not set the POINT_SIZE parameter because setting the PAGE_WIDTH, PAGE_HEIGHT and POINT_SIZE parameters provides sufficient page description, and LINES_PER_PAGE, CHAR_PER_LINE options are ignored. To set these parameters you should set POINT_SIZE option to zero.


Controlling Format Detection

When IGFormatsCtl processes a LoadPage, LoadPageFromFile, LoadDocument or LoadDocumentFromFile call, it uses automatic format detection to determine the type of image file. Normally, on a Windows computer, an application can only use the "filename extension" (letters following the last period in the filename) to determine the filetype. For example, programs normally must assume that a file named "myfile.jpg" contains a JPEG file.

With ImageGear, your application has the advantage of automatic format detection: when your application calls the LoadPageFromFile (or any of the other 3 file I/O mechanisms), IGFormatsCtl actually reads in the first few bytes in the file and then asks each active format filter: "is this one of yours?" In this way, if the file were named "myfile.jpg", but in fact contained a GIF file, the IGFormatsCtl processing would be able to load it successfully.

Your application can control the automatic format detection. This is done by using the DetectionEnabled and DetectionPriority properties of the various IGFormatParams objects. To disable the automatic detection of some formats (and thus speed up Loadxxx processing), simply set some of the DetectionEnabled properties to false.

NOTE: If you turn off automatic detection of a particular format, then any attempt to load a file of that format will generate an "unknown format" error.

Your application can also give preference to particular formats. Thus, if it's very likely that users of your application will be working with FlashPix files, then your application can execute the following statements to have IGFormatsCtl check every file for FlashPix first:

Dim flashpix as IGFormatParams
Dim temp as IGFormatParams
Dim i As Integer
For i = 0 To IGFormatsCtl1.Settings.FormatCount - 1
Set temp = IGFormatsCtl1.Settings.Format(i)
If temp.ID = IG_FORMAT_FPX Then
Set flashpix = temp
flashpix.DetectionPriority = 255
Break
End If
Next i


Non-Image Data Processing

Working with XMP Metadata

Extensible Metadata Platform (XMP) is an XML-based standard for storage and interchange of metadata, developed by Adobe Systems Inc. The standard defines the rules for storage and processing of the metadata, and provides a number of schemas for storage of information that is typically asociated with images and documents, such as Title, Author, Creation date/time, Rating, etc. Applications can add their own schemas to store arbitrary information.

XMP metadata can be attached to files of various formats, such as TIFF, JPEG, PSD and PDF, or stored as a standalone file.

ImageGear provides the following ways for working with XMP metadata.

  1. Accessing XMP properties via the ImageGear Metadata API. In this mode, ImageGear decodes XMP properties and sends them to the application via metadata callbacks.
  2. Working with unprocessed XMP metadata. In this mode, ImageGear passes XMP to the application as a byte array, treating it as a single tag of the containing metadata format.

By default, ImageGear parses XMP stream into its metadata structure, and does not provide the Raw XMP stream. If you don't want ImageGear to parse the XMP stream, and prefer to instead access the unprocessed XMP stream, set global control parameter XMP.Parse to false.

During saving, if XMP.Parse is TRUE, ImageGear expects a tree under the XMP tag, and serializes this tree into the output file. If XMP.Parse is FALSE, ImageGear expects a byte array in the XMP tag, and saves it verbatim to the file.

Since XMP standard identifies schema properties using string names, rather than numbers, ImageGear also uses names to identify XMP properties. However, it uses numeric identifiers to differentiate between the kinds of entities, such as Description (schema), Array, Property, Qualifier, etc. All properties have ID = ImGearXMPTagIDs.Property, but differ by their names.

See XMP Non-Image Data Structure section for description of XMP metadata structure in ImageGear.

Example:

Representation of XMP metadata tree.

  • XMP
    • http://ns.adobe.com/xap/1.0/
      • About = ""
      • Namespace
      • Prefix = "xmp"
      • URI = "http://ns.adobe.com/xap/1.0/"
      • Properties
      • xap:Rating
      • Value = 4
      • xap:Identifier
      • Value = "1234.0345.34532.234231"
    • http://purl.org/dc/elements/1.1/
      • Namespace
      • Prefix = "dc"
      • URI = http://purl.org/dc/elements/1.1/
      • Properties
      • dc:subject
      • Bag
      • Item
      • Value = "Test subject 1"
      • Item
    • Value = "Test subject 2"
      • dc:title
      • Alt
      • Item
      • Lang = "x-default"
      • Value = "XMP Support Specification"


Working with ImageGear Layers

ImageGear allows users to load layered image files and retain image layers for editing. Users can also create new layers, delete existing ones, as well as flatten and display the selected layers.

ImageGear currently supports layers for PSD and large PSD (PSB) file formats.

ImageGear provides a set of API for working with layers. See IGImageLayer, IGLayer, IGLayerArray for more information.


Layers

Layers are used to specify different elements of an image. There are different types of layers. They represent a part of an image either as image pixels or as adjustment instructions. They are stacked on top of each other, producing the resulting appearance of the image. ImageGear supports the image layers described in the next section.

Image Layer

Image Layer is a type of layer containing image pixels that can be applied/blended with other layers. An image from the Image Layer can cover the same area as the resulting image or just a part specified by its rectangle. Image Layer does have a certain opacity, and the other properties associated with it.

Layered Page

An ImageGear layered page is a raster image page containing the composition of layers. Layers associated with an image page can be blended in the order they appear, producing the resulting page. The result of such blending represents the final image view and is stored in the page's DIB.


Working with Non-image Data

Some complex format filters as EXIF-JPEG, EXIF-TIFF, TIFF, JPEG, PNG and some others contain a lot of non-image data generally refered to as meta-data. ImageGear provides a machanism for reading the meta-data during image loading and modifying it during image saving. Non-image data itself can be of any possible complex type and completely depends on the nature of the file format. ImageGear processes this complex data through a single interface and allows uniform processing that does not depend on the actual data format and starts from information fields of such simple formats as BMP and PCX, up to the complex metadata support in the EXIF filter and the IPTC non-image data format in such filters as TIFF and JPEG.

NOTE: For more information, see the EXIF-TIFF Non-Image Data Structure, EXIF-JPEG Non-image Data Structure and the IPTC Non-Image Data Structure sections in Appendix Appendix B: Non-Image Data Storage as well as the EXIF-JPEG, EXIF-TIFF sections in the File Format Reference Chapter.

Meta-data is stored in the file containing the image. Thus, your application will use functions of IGFormatsCtl to access the meta-data. Access to the meta-data is accomplished via an IGFormatsCtl property, a Global Control Variable, 3 Event Handlers and a COM object:

IGFormatsCtl.Settings.MetaDataEnabled
Set this property to true to enable the Event Handler processing. If set to false (the default), then none of the Events will be raised by ImageGear, even if the file being loaded contains meta-data.
IGMetaDataItem
This is the COM object. It is passed to the various Event Handlers. Depending on the operation, your application will either read the Meta-data out of this object, or store the Meta-data in this object.
FLTR.METADATA_FORMAT
This is a Global Control Parameter. Your application must either set it to the string "binary" or "text". If "text", then all meta-data values will be AM_TID_META_STRING. If "binary", then each meta-data item will be of a different data-type, and your application will have to check the IGMetaDataItem.ValueType field in order to determine the data-type.
IGMetadataItemRead
This is the first of the 3 Event Handlers. This one is called as each Meta-data item is read from the image file. The Event Handler in your application can do anything you want with the data.
IGMetadataItemWrite
This is the second of the 3 Event Handlers. This one is called as each Meta-data item is written back into the image-file. The Event Handler in your application can inspect the data, and if IGMetaDataItem.ReadOnly is false, can change the value.
IGMetadataItemAdd
This is the third of the 3 Event Handlers. This one is called after the existing Meta-data (if any) has been written to the file. Your Event Handler must fill in the IGMetaDataItem object. If you wish to create multiple meta-data items, then set the IsLastItem to false and return to ImageGear. ImageGear will store that meta-data item and raise the Event again. When your Event Handler fills in the IGMetaDataItem object for the last time, then set IsLastItem to false, and the Event won't be raised again.


Meta-data structure

Meta-data can either be a collection of simple data-values, or can consist of a hierarchy of data-values. Graphically, the options are as follows:

As ImageGear reads through the image-file, it will call your IGMetaDataItemRead Event Handler for each simple value and for each group-item. The sequence of events in the case of the two examples shown above would be:

Simple Collection
Hierarchy
IGMetaDataItemRead (Value 1)
IGMetaDataItemRead (Value 2)
IGMetaDataItemRead (Value 3)
IGMetaDataItemRead (Value 4)
IGMetaDataItemRead (Value 5)
IGMetaDataItemRead (Value 1)
IGMetaDataItemRead (Value 2)
IGMetaDataItemRead (Level Start, Group A)
IGMetaDataItemRead (Value A1)
IGMetaDataItemRead (Value A2)
IGMetaDataItemRead (Value A3)
IGMetaDataItemRead (Level End, Group A)
IGMetaDataItemRead (Level Start, Group B)
IGMetaDataItemRead (Value B1)
IGMetaDataItemRead (Value B2)
IGMetaDataItemRead (Value B3)
IGMetaDataItemRead (Level End, Group B)
IGMetaDataItemRead (Value 3)


IGMetaDataItem object

The 3 Meta-data Event Handlers are all passed a copy of the IGMetaDataItem object. The Event Handler in your application will either inspect this object to obtain the Meta-data item, or will set the values in this object to change or create the Meta-data item. The rules for each of these values are dependent on the file-type. See the "Non-image Data Storage" Appendix for more information.

The values in the IGMetaDataItem object are as follows:

FilerID
Identifies the file-type. One of the enumFormats values.
ID
Numerical ID of data item.
Name
The name of the data item.
Type
One of the following (see "Meta-data Structure", above)
  • IG_METAD_VALUE_ITEM - simple value
  • IG_METAD_LEVEL_START - data-item group start. Value, ValueType and Length are not used.
  • IG_METAD_LEVEL_END - data-item group end. Value, ValueType and Length are not used..
ValueType
Contains the type identifier of the item in the case of Type = IG_METAD_VALUE_ITEM. One of the enumIGMETADItemType values.
Length
Contains the number of bytes required to store the value. For ValueType = AM_TID_TXT_STRING it should indicate the number of characters in the string excluding last null character (basically the length of the string). For ValueType = AM_TID_RAW_DATA it should indicate the number of bytes that the raw data occupies.
Value
Contains the value of the item in the case of Type = IG_METAD_VALUE_ITEM. The value is presented as an IGDataItem object.
IsLastItem
Used only in the IGMetaDataItemAdd Event Handler. Your Event Handler should set this to true to indicate that there is no more data to be added.
ReadOnly
Set this to true in your IGMetaDataItemAdd Event Handler to indicate that this Meta-data item can never be changed when the file is read in the future.
In IGMetaDataItemRead and IGMetaDataItemWrite, if this is true then any changes made by your Event Handler to the Meta-data item will be ignored by ImageGear.

You can transfer different non-image data using the general data structure described in this section. Please see Appendix Appendix B: Non-Image Data Storage for the TIFF, JPEG, EXIF-TIFF, EXIF-JPEG, PNG, IPTC, DCRAW, CIFF and JPEG 2000 non-mage data structure description in the next sections:

  • TIFF Non-Image Data Structure
  • JPEG Non-Image Data Structure
  • EXIF-TIFF Non-Image Data Structure
  • EXIF-JPEG Non-image Data Structure
  • IPTC Non-Image Data Structure
  • PNG Non-Image Data Structure
  • GIF Non-image Data Structure
  • DCRAW Non-Image Data Structure
  • CIFF Non-Image Data Structure
  • JPEG2000 Component Metadata
NOTE: It may happen that the application provides the item with the name or ID of a different type than the format filter is expecting. For example, the format filter may expect the item named SOFTWARE with text as a String, but the application provides its value as an Integer. In this case the filter will raise an error that this type of item is not expected.

Thus, the code needed to obtain the Meta-data for a file is as follows:

Dim page As IGPage
IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
IGFormatsCtl1.Settings.MetaDataEnabled = true
Dim gcp As IGGlobalParameter
Set gcp = IGCoreCtl.CreateObject(IG_OBJ_GLOBAL_PARAM)
gcp.Name = "FLTR.METADATA_FORMAT"
Dim gcpvalue as IGDataItem
Set gcpvalue = new IGDataItem
gcpvalue.Type = IG_DATA_STRING
gcpvalue.String = "binary"
Set gcp.Value = gcpvalue
IGCoreCtl.Settings.UpdateParamFrom gcp
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myfile.tiff", 0
.
.
.
End Sub
Private Sub IGFormatsCtl1_IGMetaDataItemRead(ByVal MetaDataItem
As GearFORMATSLibCtl.IIGMetaDataItem)
If MetaDataItem.Type = IG_METAD_LEVEL_START Then
' start of a new group
Else
If MetaDataItem.Type = IG_METAD_VALUE_ITEM Then
' a simple value
' refer to MetaDataItem.ValueType and MetaDataItem.Value
Else
' end of a group
End If
End If
End Sub


Working with Grayscale Look Up Tables

ImageGear provides an object and a set of methods for working with grayscale display LUTs. A grayscale LUT can be attached to an IGPage or to an IGPageDisplay. The LUT maps image pixel intensities to the contrast range of the display output. This can be used for displaying a specific range of image intensities, as well as for tone correction.

An IGLUT object can have various input and output depths. Both input and output can be signed or unsigned.

The ImageGear Medical component provides a set of methods to build grayscale LUTs according to various DICOM display settings.

Example:

Dim GrayLUT as IGLUT
Dim Index as Long
Dim Value as Long
` Create a LUT to converts 16-bit signed pixels to 8-bit
unsigned
Set GrayLUT = IGCoreCtl1.CreateObject(IG_OBJ_LUT)
GrayLUT.ChangeAttrs(16, True, 8, False);
` Fill the LUT with a linear table, transforming 16-bit signed
pixel range to 8-bit unsigned
For Index = -32768 to 32767
            Value = (index + 2048) / 256
            GrayLUT.Item[Index] = Value
Next Index
` Update image's grayscale LUT with the new data
igPage.UpdateGrayscaleLUTFrom(GrayLUT);
See Also:

Grayscale Look Up Tables

Medical Component Grayscale Look Up Tables


Working With Spot Colors

This section describes Color Channels and ImageGear Support of spot colors.


Color Channels

The following types of color channels are currently supported by ImageGear for reading, writing and display.

  • Alpha Channel
  • Extra Channel
  • Mask Channel
  • Spot Channel
  • Unknown Channel

Alpha Channel

Alpha channel defines opacity/transparency of an image. Only one Alpha channel per image can exist. Color space with Alpha channel can be pre-multiplied or non-pre-multiplied. This is the common definition of an Alpha channel, used by most file formats, such as TIFF, PNG, SGI, TGA, etc.

Extra Channel

Extra channel is any channel besides regular color channels or Alpha. There can be any number of Extra channels per image. Extra channels may have some defined semantics, such as Mask or Spot channels, or can be "Unknown", meaning that ImageGear does not know how to display or process them.

Mask Channel

Mask channel specifies a mask or selection in the image. There can be any number of mask channels per image. Images are never pre-multiplied by mask channels. In ImageGear, Mask channel is a subtype of Extra channel.

Spot Channel

Spot channel uses a specific color. The color can be specified using a standard color space, such as RGB or CMYK, or using a custom color, such as Pantone, TRUMATCH, etc. The cusom spot color is defined by its Vendor ID and Color ID.

Existing Vendor IDs:

  • 3000 (ANPA)
  • 3001 (Focoltone)
  • 3002 (PantoneCoated)
  • 3003 (PantoneProcess)
  • 3004 (PantoneProSlim)
  • 3005 (PantoneUncoated)
  • 3006 (Toyo)
  • 3007 (Trumatch)
  • 3008 (HKSE)
  • 3009 (HKSK)
  • 3010 (HKSN)
  • 3011 (HKSZ)
  • 3012 (DIC)
  • 3013 (PantoneMatte)
  • 3020 (PantonePastelCoated)
  • 3021 (PantonePastelUncoated)
  • 3022 (PantoneMetallic)
  • 3024 (HKSEProcess)
  • 3025 (HKSKProcess)
  • 3026 (HKSNProcess)
  • 3027 (HKSZProcess)
  • 3028 (PantoneProSlimEuro)
  • 3029 (PantoneProcessUncoated)

In ImageGear, Spot channel is a subtype of Extra channel.

Unknown Channel

Unknown channel is an additional channel which purpose is unknown to ImageGear. In ImageGear, Unknown channel is a subtype of Extra channel.


ImageGear Support

This section describes ImageGear's support of spot colors:

  • Extra Color Space
  • Reader, Writer and Format Converter
  • Color Books

Extra Color Space

An image may contain multiple Extra channels. An Extra channel can belong to one of the following subtypes: Mask, Spot or Unknown. These channels can be mixed in arbitrary order. ImageGear does not use separate bitmasks from enumIGColorSpaceIDs enum for Mask and Spot channels. Instead, it uses IG_COLOR_SPACE_ID_Ex bitmask to specify presence of any of these channels in an image.

ImageGear stores an array of extra channel info objects in the DIB. Length of this array must always be equal to the number of extra channels in the DIB. DIB constructors, color space and channel manipulation functions must insure this.

If an entry of the info array has type IG_EXTRA_CHANNEL_TYPE_Spot then corresponding Extra channel is a Spot channel. Spot channel info contains information that is necessary for displaying the spot channel. ImageGear uses spot color channels for display and color space conversions, and saves them to output files when supported by format. If output format does not allow storing additional channels, ImageGear converts Spot channels, together with regular color channels, to the destination color space.

If an entry of the info array has type IG_EXTRA_CHANNEL_TYPE_Mask then corresponding Extra channel is a Mask channel. ImageGear uses Mask channels for display and saves them to output files when supported by format. However, it does not use them in color space conversions. If output format does not allow storing additional channels, ImageGear ignores Mask channels in conversion to the destination color space.

If an entry has type IG_EXTRA_CHANNEL_TYPE_Unknown then corresponding Extra channel is unknown. It is not used in display and color conversions, but preserved and saved to output files when possible.

Spot color, Mask and Extra channels can be appended after any regular color channels, in any order, including color spaces that contain Alpha or Pre-multiplied Alpha channel.

Reader, Writer and Format Converter

ImageGear can load extra channels from TIFF and PSD file formats. The extra channels are internally stored as specified above and saved back as extra channels when the output format is either TIFF or PSD. Spot color support is added to the raster color conversion mechanism, so when saving an image to a format that doesn't support extra channels the image spot channels are get blended to the base channels. The alpha channels are skipped in this case.

Color Books

ImageGear can load Adobe Color Books and apply the loaded colors for displaying spot channels. Color books API allows specifying a path to the color books, enumerates loaded books and colors within a book, and retrieves info on the specific spot color. Display and processing code use color books to convert spot colors to regular colors such as CMYK, RGB etc.


Working with TIFF Files

Setting TIFF Tags

ImageGear ActiveX provides two ways to set and modify TIFF tags. You can modify or set some of the TIFF tags using IGFormatParams control parameters (see Working with Format Filters) and Image Processing functions (see Image Processing). When you use these techniques, ImageGear automatically transfers the setting your application specifies into the TIFF tags. You can modify or set all of the TIFF tags using the meta-data processing Events (see Working with Non-image Data).

The following table summarizes the first approach.

Tag
Property/Method to set
IGTAG_TIF_ORIENTATION
IGPageDisplay.Orientation property
IGTAG_TIF_XRESNUMERATOR
IGPage.CopyImageResolutionFrom
IGTAG_TIF_YRESNUMERATOR
IGPage.CopyImageResolutionFrom
IGTAG_TIF_DATETIME
IGFormatParams.GetParamCopy
("DATETIME")
IGTAG_TIF_ARTIST
IGFormatParams.GetParamCopy ("WRITE_CLASS_F")
IGTAG_TIF_DOCUMENTNAME
IGFormatParams.GetParamCopy ("DOCUMENTNAME")

Saving TIFF Files

ImageGear provides several control parameters for saving a file in the TIFF format. You can set/modify these parameters using the IGFormatParams object (see Working with Format Filters).

There are currently four storage modes supported for writing TIFF files. These settings are achieved by setting WRITE_CONFIG control parameter to one of the following constants:

IG_TIF_STRIP_FIXED_COUNT
Writes the image using a fixed number of strips. The number of strips to use can be set using the NUMBER_OF_STRIPS control parameter. This is ImageGear's default setting.
IG_TIF_STRIP_FIXED_BUFFER
Writes the image using strips such that each strip must not be greater than the specified size in bytes. The size of the strip buffer can be set using the STRIP_FIXED_BUFFER parameter. At least one raster will be included in the strip.
IG_TIF_TILED_FIXED_SIZE
Saves the image using tiles of a fixed size. The tile size can be set using the TILE_WIDTH and TILE_HEIGHT control parameters.
IG_TIF_TILED_FIXED_COUNT
Saves the image using a fixed number of tiles. The number of tiles in both the horizontal and vertical direction can be set using the control parameter TILE_H_COUNT and TILE_V_COUNT.

NOTE: If you do not specify the configuration to use for saving a TIFF file, ImageGear will use the default setting, IG_TIF_STRIP_FIXED_COUNT. If you do not specify the number of strips, 1 is used as the default.

The following table displays the additional control parameters that you can use to further control how TIFF tiles are saved.

Control Param
Data Type/Purpose
Valid Values
WRITE_CONFIG
UINT
Purpose: Tells ImageGear whether to save TIFF files using strips or tiles, and allows 2 choices for formatting the strips or tiles.
IG_TIF_STRIP_FIXED_COUNT
IG_TIF_STRIP_FIXED_BUFFER
IG_TIF_TILED_FIXED_SIZE
IG_TIF_TILED_FIXED_COUNT
TILE_H_COUNT
LONG
Purpose: If you are saving a tiled TIFF with a fixed count, use this to set the horizontal tile count
minimum = 1
maximum = MAX_LONG*. If you set to MAX_LONG, and this is greater than the width, the setting will be reduced to the image width.
TILE_V_COUNT
LONG
Purpose: If you are saving a tiled TIFF with a fixed count, use this to set the vertical tile count
minimum = 1
maximum = MAX_LONG. If you set to MAX_LONG, and this is greater than the height, the setting will be reduced to the image height.
TILE_WIDTH
LONG
Purpose: If you are saving a tiled TIFF with a fixed tile size, use this to set the tile width
minimum = 1
maximum = MAX_LONG. If you set to MAX_LONG, and this is greater than the width, the setting will be reduced to the image width.
TILE_HEIGHT
LONG
Purpose: If you are saving a tiled TIFF with fixed tile size, use this to set the tile height
Minimum = 1
Maximum = MAX_LONG. If you set to MAX_LONG, and this is greater than the height, the setting will be reduced to the image height.
BUFFER_SIZE
DWORD
Purpose: If you are saving a stripped TIFF with a fixed buffer, use this to specify the size of the strip in bytes
minimum = 0
maximum = MAX_DWORD*

* where MAX_LONG = 2147483647; MAX_DWORD = 4294967295


Working with Tiled Images

Automatic tile stitching

ImageGear allows you to automatically stitch all image tiles during loading. Set "STITCH_TILES" filter control parameter to TRUE to enable automatic tile stitching. In this mode:

  • Image loading functions load the whole image as if it was not tiled;
  • Tile counting functions report that the image is not tiled (has a single tile);
  • Header reading functions report full image dimensions rather than dimensions of a single tile.

Set "STITCH_TILES" filter control parameter to FALSE to disable automatic tile stitching. In this mode:

  • Image loading functions load a single tile (by default - first image tile);
  • Tile counting functions report actual number of tiles;
  • Header reading functions report dimensions of a single tile.
NOTE: The ActiveX version of ImageGear stitches image tiles automatically even if "STITCH_TILES" parameter is set to FALSE. To load individual tiles, use IGFormatsCtl.LoadPage method specifying a zero-based tile number.

Currently, the following ImageGear format filters support automatic tile stitching:

  • IBM AFP
  • IBM IOCA
  • IBM MO:DCA
  • JPEG 2000
  • JPX
  • MJ2
  • TIFF


Working with Vector Data

ImageGear reads most popular vector formats providing native support for handling vector data. While doing so it doesn't perform so called "rasterization", i.e. conversion of vector data into raster representation, but keeps native vector objects attached to the image handle and provides a set of methods to operate this data, including rasterization. When handling vector data ImageGear doesn't attach any raster dib, but uses an empty dib with IG_BI_EMPTY compression. This approach significantly improves performance and memory usage.

For some vector formats such conversion can only be possible for the certain platforms (WMF/EMF vector data can only be rasterized in Windows version of the product, and PICT vector data can only be rasterized in Mac version of the product). For some vector formats (DWF, DWG, DXF, HPGL, HPGL/2, DGN, U3D) ImageGear also allows to control the projection of 3D vector data into 2D raster bitmap.


PDF and PostScript documents

ImageGear can load, save, and process native PDF and PostScript documents. It provides full multi-page reading and writing support for the entire document as well as for the specified set of pages. You can detect, read, write, append, insert, replace, swap and delete a specified page in the PDF document. It also allows rasterization of PDF and PostScript documents, by converting them to bitmaps, and provides you an ability of text extraction from loaded PDF and PostScript documents.

NOTE: The access to the same PDF document from multiple threads is not permitted because the multiple threads cannot share Adobe PDF Library datatypes. PDF doc created/opened in the main thread can be only used from the main thread.

ImageGear PDF support is compatible with Adobe® PDF version 1.7 as defined in the Portable Document Format Reference Manual Version 1.7, distributed by Adobe Systems Incorporated. It provides reading capability up to the PDF version 1.7 and writing of the PDF 1.7 documents.

ImageGear PostScript support is compatible with Adobe® PostScript® 3.0 language as defined in the PostScript Format Reference Manual, distributed by Adobe Systems Incorporated. It provides reading capability up to the PostScript 3.0 Language Level 3 and writing of the PostScript 3.0 files with the Language Level 1, 2 and 3. This includes writing of the Enhanced PostScript (EPS) files with standard and extended preview as well as without preview at all.


Vector images

ImageGear can read most popular formats that contain vector elements. Some of them such as WMF/EMF, TXT and PTOCA are converted to bitmap during file reading. This process is called "rasterization".

Other such as DXF/DWG, CGM, DGN, HPGL, U3D are kept as a vector structure consisting of vector primitives such as lines, arcs, ellipses, polygons, text strings, splines and so on. These primitives are drawn on the drawing surface (screen, printer and so on) every time the surface is updated. The customer can rasterize such images any time he wants using IGPage.Rasterize method.

It is also possible to save vector structure in CGM format.

See ImageGear CAD/Vector Components API Reference for more information.


3D Visualization API

The objects IGVector3DIVObject and IGVector3DIVOptions present a set of properties and methods for generating isosurface for 3D objects.

The 3D algorithm works on the set of images, that should comprise a 3D object, and generate an isosurface for 3D visualization. It allows the options of adding "cover-up" slices at both ends, and also limiting the surface depth to reduce the number of triangles in the isosurface. Both of these two options, along with a few others, can be passed to the algorithm through an object of type IGVector3DIVOptions.

Usually, you need to create an object IGVector3DIVOptions to store the values of options to be passed to the isosurface algorithm. The objects IGVector3DIVObject and IGVector3DIVOptions can be created by calling function CreateObject of IGVectorCtl object, with parameter VECTOR_OBJ_3DIV_OBJECT or VECTOR_OBJ_3DIV_OPTIONS for the object type.

IGVector3DIVObject has a method CanApplyGenerateIsosurface, that can be used to check whether an IGDocument can be used to calculate isosurface from. The user should use this CanApplyGenerateIsosurface method instead of instantiating such an object.

Method GenerateIsosurface takes an IGDocument object and extracts the 3D surface into a vector page, based on the options specified by IGVector3DIVOptions. The algorithm itself takes an IGDocument object as the data source, so there is no limitation as far as the image format is concerned. It is the user's responsibility to somehow read data from the images and store them in an IGDocument object. It is important to make sure that the slices of images in the IGDocument are in the desired order as it would be in the 3D object.

This algorithm generates an IGPage as the result, in which the vertices of triangles together with the normals at those vertices are included.

For a complete sample program, please see the "Medical" sample for ImageGear.


Working with Digital Camera RAW formats

ImageGear supports reading raw images created by many digital cameras. Support for raw images includes reading of image pixel data, color reconstruction of raw images, and reading of metadata stored with the images.


File format

Since there are many flavors of raw formats, the list is continuously growing as new vendors/models enter the market, and the formats share many similarities, ImageGear treats most of raw formats as one format: IG_FORMAT_DCRAW. Details regarding manufacturer, model, etc, are available as metadata.

A special group of camera raw formats is Headerless Camera Raw formats. Headerless Digital Camera RAW file filter provides support for Digital Camera Raw images that only contain pixel data and no header. Because of absence of a header, such files can't be detected reliably. ImageGear uses low detection priority for these images, and by default, detection of this filter is disabled. Also, since these files do not contain any metadata describing color reconstruction, ImageGear support level for them is limited to "S2" - pixel decoding only.


Loading raw images

Load camera raw images in the same way as you load images of all other formats, using one of the image loading methods. Use control parameters of the IG_FORMAT_DCRAW or IG_FORMAT_HLDCRAW filter to control loading of raw images.

By default, ImageGear attempts to reconstruct the full color image from raw data. You can also load an unprocessed or partially processed image and apply some custom processing to it.


Loading pixel data from raw and DNG images

Digital cameras store raw images in exactly the same format as obtained from the camera sensor. A number of image processing operations must be performed to reconstruct full color image from the raw data. DCRaw and DNG filters have the same set of loading options that allows loading unprocessed or partially processed image. Partially processed image can then be processed with the help of ImageGear image processing methods.

Note that camera manufacturers do not publish specifications on their raw formats. ImageGear attempts to reconstruct color images correctly where it is possible. For some cameras not all of the color balance data is available. The application may need to apply additional processing to such images.

The section ImageGear Supported Digital Camera RAW Formats lists the level of support that ImageGear provides for particular cameras.


Reconstructing Camera Raw images with ImageGear Processing API

By default, ImageGear reconstructs Camera Raw images automatically, using the settings found in image metadata. However, one of the main benefits of Raw formats is that they can be custom adjusted during conversion to the working RGB colorspace.

ImageGear provides API that allows to specify white balance and tone settings for Raw image reconstruction.

Colorspace Conversion

In order to use custom white balance for the image, set "APPLY_COLORSPACE_CONVERSION" control parameter of DCRAW format filter to FALSE. Use IGProcessingCtl . CalculateCameraToSRGBMatrix method to calculate a conversion matrix, based on selected white balance and on known conversion matrices obtained from metadata. Use IGProcessingCtl . ConvertToColorSpaceWithMatrix to convert the image to the linear sRGB colorspace.

Use IGColorTemperature class to operate with color temperature and white balance settings.

APPLY_COLORSPACE_CONVERSION parameter only has effect if RECONSTRUCT_COLORS parameter is True.

Tone Correction

In order to adjust image tone (contrast/brightness curve), set "APPLY_TONE_CORRECTION" filter option to FALSE. This will tell ImageGear to skip tone correction step. The application can create a Tone correction LUT using IGProcessingCtl . BuildCameraToneLUT function, or build its own Tone LUT. In order to convert the image to the standard sRGB colorspace, an additional sRGB Gamma LUT must be applied. Use IGProcessingCtl . BuildSRGBGammaLUT method to build sRGB Gamma LUT.

Use IGProcessingCtl . TransformWithLUTs method to apply a LUT to the image.

APPLY_TONE_CORRECTION parameter only has effect if both APPLY_COLORSPACE_CONVERSION and RECONSTRUCT_COLORS options are True.


Control Parameters for the Digital Camera Raw and Headerless Camera Raw Filters

Filter Control Parameter
Type
Default Value
Available Values
Description
APPLY_COLORSPACE_CONVERSION
AT_BOOL
TRUE
FALSE,
TRUE
Set to TRUE to convert raw image to linear sRGB colorspace during loading. Has effect only if RECONSTRUCT_COLORS is TRUE.
APPLY_TONE_CORRECTION
AT_BOOL
TRUE
FALSE,
TRUE
Set to TRUE to automatically adjust image tone and apply sRGB gamma correction during loading. Has effect only if both
RECONSTRUCT_COLORS and APPLY_COLORSPACE_CONVERSION are TRUE.
RECONSTRUCT_COLORS
AT_BOOL
TRUE
TRUE,
FALSE
If TRUE, ImageGear attempts to reconstruct full color image from the camera raw image. Otherwise, ImageGear loads raw pixel data without any processing. See also APPLY_COLORSPACE_CONVERSION and APPLY_TONE_CORRECTION parameters

Loading options are discussed in more detail below.

RECONSTRUCT_COLORS

When TRUE, ImageGear performs the following operations during image loading:

  • Linearization. Some cameras store images in a non-linear colorspace, to increase compression efficiency.
  • Calculation of image Black Level, trimming of the black frame, subtraction of black level. Black level, or Thermal Black is the level of signal produced by heating of the camera rather than by light. Many camera sensors measure the black encoding level using fully masked pixels at the edges of the sensor. ImageGear trims these pixels from the image during loading. Intensities of these pixels are averaged to produce the Black Level value. Black Level should be subtracted from image pixels for correct reconstruction of the image.
  • Intensity stretching according to White Level. White level specifies the maximum intensity that can be recorded by camera sensor, or an intensity at which the sensor's output becomes highly nonlinear. Image intensities between the BlackLevel and WhiteLevel range should be stretched to the full contrast range supported by the image bit depth.
  • Demosaicing. Most of digital cameras store pixels in "mosaic" format. At a given pixel location either a Red, Green, Blue, Cyan, or some other color sample value is recorded. Such images are referred to as "Color Filter Array" type. A two-dimensional matrix called "Color Filter Array pattern" describes positions of pixels of particular color in the mosaic image. In order to recreate the full color values in each pixel, it is necessary to interpolate neighbouring pixels.
  • Image rotation. Some camera sensors are rotated by 45 degrees. Such images need to be rotated back.

These operations normally don't require user interaction. After applying these operations, all Camera raw images are converted to linear CMYG or RGB colorspace and promoted to 16 bits per channel.

APPLY_COLORSPACE_CONVERSION and APPLY_TONE_CORRECTION parameters control the rest of color reconstruction operations.

When RECONSTRUCT_COLORS is FALSE, ImageGear does not perform any color reconstruction operations during image loading.

APPLY_COLORSPACE_CONVERSION

When TRUE, ImageGear converts image from camera color space to linear sRGB colorspace, using white balance settings from the image metadata. This option is enabled only if RECONSTRUCT_COLORS is True. In order to load the image with custom white balance settings, set APPLY_COLORSPACE_CONVERSION to FALSE and use Camera Raw Colorspace Conversion API functions after image loading.

APPLY_TONE_CORRECTION

When TRUE, ImageGear adjusts image exposure using image's default settings (baseline exposure) and default setting of 5 for Shadows. This option is enabled only if both RECONSTRUCT_COLORS and APPLY_COLORSPACE_CONVERSION are True. In order to load the image with custom exposure/shadows settings, set APPLY_TONE_CORRECTION parameter to FALSE and use Camera Raw Tone Correction API functions after image loading.


Working with Image and ImageGear Information

All of the ImageGear ActiveX controls and objects have methods and properties that your application program can access to obtain information about ImageGear itself and about your images. The following table lists the more commonly used properties, by control/object.

Control
Property/Method
Usage
<all ActiveX controls>
ComponentInfo
Provides information about the ActiveX control itself (build date, version number, etc.)
IGCoreCtl
ComponentCount
GetComponentInfoByName
GetComponentInfoByProgID
Used to locate a particular ActiveX control or COM object, previously associated with IGCoreCtl via the AssociateComponent method.
IGPage
BitDepth
ImageHeight
ImageWidth
ImageIsGray
IsValid
GetDIBInfo
GetImagePaletteSize
Basic information about the image in the IGPage object. Note that this information will initially be the same as for the image file, but as your application modifies the image (e.g., with IGProcessingCtl functions) this will change.
IGDisplayCtl
GetClipboardInfo
Used to determine the type of information in the Windows clipboard (whether it's an image or not)
IGPageDisplay
ConvertCoordinates
ConvertPointCoordinates
GetAdjustedDeviceRect
Used to convert (x,y) coordinates from one coordinate system to another (e.g., to convert from image-coordinates to display-coordinates).
IGFormatsCtl
DetectImageFormat
GetDocumentInfo
GetPageCount
GetPageInfo
Used to obtain information about a file on disk (e.g., is it an image file, what format is it).
IGFormatsCtl.Settings
GetCompressions
GetCompressionsForPage
Used to obtain an IGCompressionsInfo object, which describes the capabilities of a particualr compression scheme.
IGFormatsCtl.Settings
Format(i)
FormatCount
GetFormatRef(id)
Used to obtain an IGFormatParams object, which describes the capabilities of a particular image file format
IGProcessingCtl
TabulateHistogram()
Used to obtain the data that describes how often each color (or grayscale level) occurs in the image. The data can be used for many purposes, including display as a histogram. For example:
Image
Histogram
IGMedCtl
DataDict
The DICOM Data Dictionary contains the "schema" of the non-image data in a DICOM file. Your application can add new information to the Data Dictionary (for private DICOM tags, or should the DICOM standard be amended). See ImageGear MD Component API Reference for more information.
IGMedPage
DataSet
This is the non-image data from the DICOM file. Your application can create a Data Set when it creates a DICOM file, read the Data Set from an existing file, or modify the Data Set in an existing file. See ImageGear MD Component API Reference for more information.
IGTwainCtl
GetCapability
These methods get information about the capabilies of the TWAIN device. .
IGTwainCtl
GetDSInfo
Gets the list of available TWAIN Data Sources. .
IGTwainCtl
GetTWAINInfo
Gets the version information for the TWAIN Data Source Manager.
IGGUIDlgCtl
Directory
This is the name of the directory chosen by the user when open_Dir is called. It is also the starting-point directory used by open_File and save_File.
IGGUIDlgCtl
FileName
PageNum
SaveFormat
SaveMode
These are the values chosen by the user when open_File and save_File are called. They are the values needed to call LoadPageFromFile and SavePageToFile, respectively.


Working with ImageGear ActiveX Dependency Analyzer

ImageGear ActiveX Dependency Analyzer is a useful utility provided with the ImageGear installation from \Accusoft\ImageGear v16\[Enterpise, MD or Professional Edition Depending on Installation]\ActiveX\Dependency Analyzer Tool. It allows you to select the components that are required for your application, analyzes their dependencies, and produces the output that describes the exact set of ImageGear components that need to be used in the application, and the order in which they have to be associated with each other.

Below you will find a Table of all ImageGear components and their dependencies:

ABIC

Core, Formats

ART

Core, Formats, Display, Processing

CAD

Core, Formats

CGM

Core, Formats

Core

Core, Formats

DGN

Core, Formats

Display

Core, Formats

Dialogs

Core, Formats, Display

Effects

Core, Formats, Display, Processing

FPX

Core, Formats, Display, Processing

Formats

Core

GUIDlg

Core, Formats, Display, Processing

GUIMagnify

Core, Formats, Display

GUIPalette

Core, Formats, Display

GUIPan

Core, Formats, Display

GUIThumbnail

Core, Formats, Display

HPGL

Core, Formats

ImageClean

Core, Formats, Display, Processing

JBIG2

Core, Formats

JPEG2K

Core, Formats

LZW

Core, Formats

Medical

Core, Formats, Display, Processing, (JPEG2K)

ISIS

Core, Formats, Display, Processing

Multimedia

Core, Formats

PDF

Core, Formats

Processing

Core, Formats, Display

SVG

Core, Formats

TWAIN

Core, Formats, Display, Processing

View

Core, Formats, Display


Working with Error Handling

When an error condition is detected during call to any ImageGear property/method, an error code and all necessary error information is placed in an internal memory area called the ImageGear error stack. You can analyze the error stack for the error count and error information.

The error stack information is available via an object IGResult that is belongs to the Core type library.

Information about any error is available via IGResultRecord object.

IGResult object has the following properties and methods:

Name
Prop/Method
Description
IsOK
Method
Returns True if there is no errors, False otherwise.
ErrorCount
Prop, Get
Returns a count of error on the error stack (count of records of the level 0)
NotificationFlags
Prop, Get/Put
Specifies a method how the customer will be informed about an error. See exsamples below.
RecordCount
Prop, Get
Returns a count of records of the specified level on the error stack
RecordsTotal
Prop, Get
Returns a total count of the records on the error stack
GetError
Method
Returns IGResultRecord object describing the specified error
GetRecordWithLevel
Method
Returns IGResultRecord object describing the specified record of the specified level
Clear
Method
Clears all records on the error stack

The property NotificationFlags allows to choose a way how the customer will be informed about an error. It can take the following values:

IG_ERR_NO_ACTION
No action in case of error. The customer should analyze an error stack after call to the any property/methods. See Example 1. No action in case of error
IG_ERR_OLE_ERROR
An OLE container is informed about an error via IErrorInfo interface. See Example 2. OLE error.
IG_ERR_EVENT_ERROR
ImageGear will fire IGError event every time the error (record of level 0) is added to the error stack. Information about the error is located in the ResRec parameter. See Example 3. Error events
IG_ERR_EVENT_WARNING
ImageGear will fire IGError event every time the warning (record of level 1) is added to the error stack. Information about the warning is located in the ResRec parameter. See Example 3. Error events

Below is a short description of properties of IGResultRecord object:

Name
Description
FileName
The name of the file where an error/warning has been set
LineNumber
The number of the line
ErrCode
The code of the error
Level
The level of the record. 0 - error, 1- warning
Value1
First attribute of the error/warning
Value2
Second attribute of the error/warning
ExtraText
Extra text string describing an error

Example 1. No action in case of error

Public page as IGPage
` Set notification flags to IG_ERR_NO_ACTION
IGCoreCtl1.Result.NotificationFlags = IG_ERR_NO_ACTION
`Create a page and load an image
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myimage.jpg", 0
`check for error
if not IGCoreCtl1.Result.IsOk() then
`Get error count
Dim errcount as Long
errount = IGCoreCtl1.Result.ErrorCount
`Get error description
Dim rec as IGResultRecord
Set rec = IGCoreCtl1.Result.GetError(errount - 1)
`Get error code
Dim errcode as enumIGErrorCodes
Errcode = rec.ErrCode
`Some error processing
...
`Clear error stack
IGCoreCtl1.Result.Clear
End if

Example 2. OLE error

Dim errorRecord As IGResultRecord
Dim i As Integer
On Error GoTo ErrorHandler
IGCoreCtl1.Result.NotificationFlags = IG_ERR_OLE_ERROR
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myimage.jpg", 0
Exit Sub
ErrorHandler:
If IGCoreCtl1.Result.IsOk() then
   `Internal COM error
    MsgBox "VB returned an error (" + Hex(Err.Number) + "):" +
vbCrLf +
Err.Description, vbExclamation, "Internal COM Error"
Else
  `IG error
   For i = 0 To IGCoreCtl1.Result.RecordsTotal - 1
   Set errorRecord = IGCoreCtl1.Result.GetRecord(i)
   MsgBox "ImageGear returned an error (" + errorRecord.ErrCode
+ "):" +
vbCrLf + errorRecord.ExtraText, vbExclamation, "ImageGear
Error"
   Next i
End If
Exit Sub

Example 3. Error events

Public page as IGPage
` Set notification flags to IG_ERR_EVENT_ERROR or
IG_ERR_EVENT_WARNING
IGCoreCtl1.Result.NotificationFlags = IG_ERR_EVENT_ERROR or
IG_ERR_EVENT_WARNING
`Create a page and load an image
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myimage.jpg", 0
Exit Sub
` error processing
Private Sub IGCoreCtl1_IGError(ByVal ResRec As
GearCORELibCtl.IIGResultRecord)
MsgBox "Event: " & ResRec.ExtraText
End Sub


Using ImageGear ARTX Component

NOTE: You can only attach one ART component. ARTX cannot be attached when ART is already attached.

Using the ART component, you can annotate any image that your application loads into ImageGear. The annotations are called "ART marks", or "marks" for short. Every ART mark is represented by its own object, but the actual life of marks starts when they are added into the IGArtXPage. ART page can be associated with one or more IGPage objects. The association is done by using IGPageDisplay property Page.

ART internally tracks the marks that are associated with the image and insures that marks are always displayed on the correct part of the image (even as the image is scrolled, rotated, flipped and zoomed). Your application can save an image with the marks into a separate file in legacy .ART file format or .XML file format. Anytime the image is reloaded, the ART marks can be reloaded with a simple function-call.

ImageGear ART component consists of the marks objects as well as of the objects for handling marks.

To enable ART component in your project add the following code:

IGCoreCtl1.AssociateComponent
IGArtXCtl1.ComponentInterface


Annotation and Redlining

The ImageGear ARTX helps developers to add redlining and annotation capabilities to any application built with ImageGear. If you have an application that can read, display, and print images, with ImageGear ARTX component associated you can add marking capabilities, such as lines, arrows, highlighting, and sticky notes to documents images, and use them as though you were working on printed sheets of paper.

The fundamental "unit" of annotation is called an "ART Mark", or "mark" for short (the original name of ImageGear ART was the "Annotation and Redlining Toolkit"). When the end-user uses your application to annotate an image, (s)he is creating marks. Each mark is defined by some geometry ((x,y) position on the image, height and width, etc.), and (for some marks) textual information (a text string, a date, etc.). While the rest of ImageGear typically works with raster (pixel-based) images, ImageGear ART marks are vector objects - they can be moved, resized and deleted.

While the marks are vector objects, they typically are intended to be related to some part of the raster image. For example, one of the marks is a digital version of a "PostIt" note (called a "Text Note" mark):

If the user scrolls or zooms the image, it's critical that the mark scrolls or zooms with the image - so that it always appears over the same part of the image. ImageGear ART works in conjunction with IGPageDisplay to make sure that this happens.

ImageGear ART provides ART GUI tool that the end-user works with to create and edit the marks. Enabling the ART Forms tool makes adding annotation/redlining capabilities to your application basically trivial.

Once the end-user has created marks for a given image, they need to be saved. ART marks can be saved in any of 4 ways:

  • Save the annotations in a separate .ART or .XML file.
  • "Burn in" the annotations permanently (making them part of the image file).
  • Save the annotations in the image format that supports storing annotations (for example TIFF files).
  • You may also combine these methods. You can, for example, leave classified information in an ART file and "burn in" non-classified information into the image.

The various marks that can be created with ImageGear ART are described in the following table. Please refer to the ImageGear ARTX Component API Reference for complete descriptions of the ImageGear ART component objects, properties and methods.

ART 3.0/ART 2.0 Mark
Example
Text

Line

Freehand Polyline

Rectangle

Ellipse

Polygon

Polyline

Audio (a WAV file on disk is read, and the sound played when the user clicks in the mark)

Image (your application provides the image used - the one shown here is the one used in the sample program)

Ruler (automatically labels the line according to the units defined in the image-file header).

Protractor

Encryption (visually looks like a filled rectangle). When user clicks on the rectangle, an event is raised allowing to request a password. If password matches the one in the mark, then application can make the mark transparent, which displays the image)

Button (when user clicks on the button, an event is raised allowing to take action)

Hotspot (when end-user clicks in shaded area, an event is raised to which your application can respond)

Rich Text

ART 2.0 Mark
Example
Arrow

Filled Rectangle

Hollow Rectangle

Filled Ellipse

Hollow Ellipse

Filled Polygon

Hollow Polygon

Redaction (looks just like a filled rectangle, but cannot be moved after the marks are written to a file)

Hightlighter Rectangle

Typed Text

Text Stamp (automatically set to date and/or time the mark was created)

Text Note

Text From File (a text file on disk is read, and the text displayed in the mark)

Pin-up Text (when user clicks on the pushpin, an event is raised allowing the application to display additional text).

Embedded Image (your application provides the image used - the one shown here is the one used in the sample program)

Image Reference (an image file on disk is read, and the image in the file is displayed for the mark - the one shown here is just a sample)


Working with ART Marks

Creating a Mark via the ToolBar

End users can create a mark using the ART toolbar, or your application can create them directly by calling ART functions. This section describes how to create marks with user interaction through the ART toolbar.

When a button is selected from the toolbar, ART goes into "edit mode", where the mouse is used to place and size the mark. The sequence of events depends on whether the mark is one of the types that contains text or not:

Mark does not contain text:

  • User drags a rectangle on the image
  • Mark is placed and sized on the image, and is selected.
  • Control returns to the application.

Mark contains text:

  • User drags a rectangle on the image
  • Mark is placed and sized on the image, and is placed in text-edit mode.
  • Blinking "I-Beam" insertion point is placed in the mark.
  • User types text into the mark, as desired.
  • User clicks the mouse-button. Mark goes from text-edit mode to selected.
  • Control returns to the application

Note that ART ToolBar event handlers are implemented in the ART GUI open source code and can be modified at any time and any way, but in order for them to work your application need to interact with the following events:

Sub MouseDown (pIDrawParams As IGArtXDrawParams, nMessage As
Long, pPoint As IGPoint)
Sub MouseMove (pIDrawParams As IGArtXDrawParams, nMessage As
Long, pPoint As IGPoint)
Sub MouseUp (pIDrawParams As IGArtXDrawParams, nMessage As Long,
pPoint As IGPoint)

Creating a Mark via Function Calls

Some applications won't use the ART ToolBar, or will provide the ToolBar and other options, for creating marks. In that case, some function in your application will need to create the marks directly. ART marks are created by using their objects. For example rectangle can be created as follows:

Dim rectMark As IGArtXRectangle
Set rectMark = IGArtXCtl1.CreateRectangle(igRect, FillColor,
border, Opacity)

Once it is created it should be added to the ART page:

IGArtXPage.AddMark(Mark, enumIGArtXCoordType.CoordType);

Mark properties can be edited at any time:

IGArtRectangle.Opacity = 128;

Saving ART Marks

Once the end-users of your application have created some marks, they're probably going to save them somewhere. Your application has 5 choices of where to save them:

  • Save them to a separate .ART file. This is a legacy ART storage format supported in the previous versions of ImageGear ART. Using this method, your application will have to keep track of which .ART file goes with which image file, and load them together. Use IGArtXPage.SaveFile method with LEGACY parameter of enumIGArtXSaveFormat.
  • Save them to a separate .XML file. This is a more flexible and extendable storage format highly recommended for using. Using this method, your application will have to keep track of which .XML file goes with which image file, and load them together. Use IGArtXPage.SaveFile method with XML parameter of enumIGArtXSaveFormat.
  • Save the art marks as tags or objects inside the image file. This option is only available for the raster file formats that support storing annotations, like TIFF files. Use IGArtXPage.Save.
  • Save the art marks as annotations inside the PDF file. This option is only available for PDF format. Use IGArtXPage.SaveFile that takes IGPage to do this.
  • "Burn In" the ART marks. This converts the ART marks from their native representation to the format of the raster image file, which usually destroys a lot of their functionality (for instance, once a mark is burned in to a JPEG image, it cannot be moved, resized or hidden). Use IGArtXPage.BurnIn method to do this.
NOTE: .ART files can be read by any other application developed with ImageGear. In addition, the .ART file format is supported by the Imaging for Windows application (from Kodak) supplied with Windows.

Loading ART Marks

Once ART marks have been saved, they can be reloaded (by the same user or a different user, using the same program or using any other ImageGear-enabled application). The way that the marks were saved will determine how they must be reloaded:

  • .ART / .XML / image file / PDF file: Your application loads the image using any of the IIGFormats Loadxxx methods and then loads ART page using the appropriate IGArtXPage.LoadFile method.
  • Burned In: Your application loads the image using any of the IIGFormats Loadxxx methods. The burned-in remains of the marks are loaded as part of the image.

Edit Mode, Run Mode and View Mode

ART GUI can interract in one of three modes:

  • Edit mode lets users create or edit marks.
  • Run mode lets users operate on Hot Spot, Encryption, Image, Audio, and Button activities.
  • View-only mode allows users to view marks but not add or modify them.

Your application can switch the mode from one to another by simply setting ART GUI Mode property.

ART Forms (GUI) code implementes abstract OcxArtX...Processor objects for each mode:

  • View mode processor is implemented via OcxArtXViewProcessor object.
  • Run mode processor is implemented via OcxArtXRunProcessor object.
  • Edit mode processor is implemented via OcxArtXEditProcessor object.

Those classes are distributed with ImageGear ART GUI component and can be modified to fit in your application.

While you are in the View mode, your application will not have to deal with any ART-related events via OcxArtXViewProcessor: it simply loads the image and ART marks and displays them.

If your application switches to Run mode, then it will have to start dealing with specific ART-related events via OcxArtXRunProcessor. For example, for an Encryption mark, when the image and ART marks are first loaded and displayed, the Encryption mark will obscure some or all of the image. When the user moves the cursor over the mark, the cursor will change to pointing hand cursor. ART Forms event handler will display a dialog box asking for the password to enable viewing of that portion of the image, and then (if the user gets the password right), unobscure the image.

If your application switches to Edit mode, then it will have to start dealing with specific ART-related events via OcxArtXEditProcessor.

Modifying Marks

As long as you are in Edit mode, marks can be modified.

As with creating marks, there are two ways to modify marks:

  • The first is to use ART GUI property dialogs.
  • The second is to use mark objects' properties and methods.

Geometric changes (like moving and resizing) are done automatically, as a result of ART GUI implementation, as shown in Creating a Mark via the ToolBar. To make other changes to a mark, your application makes a simple call to the mark's properties and methods.

The technique for modifying marks via function call is used in the ART GUI dialogs code. The marks attributes can be modified by changing their properties and using their methods.

Deleting Marks

Marks are deleted by using IGArtXPage . MarkRemove or RemoveMarks methods.

Clipboard Operations

ART marks can be cut from and copied to the clipboard as well as and pasted into an image individually or in groups. The IGArtXPage object provides the methods to perform clipboard operations.

Iterating Through Marks

Sometimes, your application will need to iterate through the marks in an IGArtXPage object. This can be done by using "foreach" mechanism:

For example, to delete all the selected marks, your application would do the following:

Dim i As IIGArtXMark
Set i = artPage.MarkFirst
While Not i Is Nothing
If artPage.MarkIsSelected(i) Then
...
End If
Set i = artPage.MarkNext(i)
Wend

Mark Groups

IGArtXPage provides a facility called "mark groups" (or just "groups", for short) that provides a powerful mechanism for implementing application features. Every mark belongs to one and only one group; by default all marks belong to a group with index 0 and named "[Untitled]".

Your application can create as many groups as needed, each group is simply given a unique index. IGArtXPage provides a set of methods that manipulate all of the marks in a group (hide them all, make them all visible, etc.). Your application could use groups to provide annotation layers (each "layer" would simply be a group), so that the user could choose which layer, and thus which set of annotations, to view. Alternatively, your application could use groups to provide private annotations (each person would only be able to see "their" annotations).

The various methods that operate on groups are provided by IGArtXGroup object.

Event Handling

Event handlers are implemented in the ART GUI open source code and can be modified at any time and any way. To enable ART GUI event handlers your application need to interract with the IGArtXAction methods:

  • MouseDown
  • MouseMove
  • MouseUp


ART 2.0 and ART 3.0 Marks

This section describes two sets of marks available in ImageGear ART namespace:

  • ART 3.0/ART 2.0 Marks
  • ART 2.0 Legacy Marks

ART 3.0 set consists of the enhanced list of more flexible marks. These marks are recommended for using by new applications. ART 2.0 (Legacy) set consists of the marks backward compatible with the previus ART versions.

Only ART 2.0 marks can be loaded from the .ART files created with previus ART versions and only ART 2.0 marks can be saved into the legacy ART storage format.

Both ART 2.0 and 3.0 marks can be saved into the XML storage format, please note however that ART 2.0 marks will be converted to the appropriate ART 3.0 super class marks. Only ART 3.0 marks are loaded from the XML storage format.

NOTE: Some ART marks, such as Text Note, Text Stamp may require Wang compatibility mode enabled to be saved properly in legacy storage format. On the contrary the Highlighter mark should be saved in legacy format without Wang compatibility mode on.

ART 3.0/ART 2.0 Marks

Text

The Text mark enables the end user to add descriptive text to their annotated image or document. The text can be created in various fonts, sizes, colors and opacity. It can be with or without border, filled color and pin icon. The text appears over the original image or document.

Edit mode: End users create this mark by clicking the Text button with the left mouse button and then dragging the resulting rectangle over the area to be annotated. This rectangle helps to position the Text annotations. Text annotations are easily modified when the application is in the Edit mode. To modify it, the end user double-clicks the left mouse button when the cursor is over the text mark. The cursor appears at the beginning of the text, and transforms to allow editing.

Line

The Line mark enables the end user to create straight lines on an image or document.

Edit Mode: To create this mark, end users:

  1. Click on the Line button with the left mouse button.
  2. Click on the left mouse button at the point where the line shoud begin.
  3. While holding the left mouse button down, drag the line to the point at which the line should end.
  4. Release the left mouse button to complete the line.
  5. Press the right mouse button after the mark is created to activate the popup Edit menu.

Freehand Polyline

The Freehand Polyline mark enables the end user to use freehand drawing for annotation. With this mark, end users create drawings as though they are using a pen and paper.

Edit Mode: In Edit mode, end users create this mark by clicking the Freehand Polyline button with the left mouse button, dragging the image, and then releasing the left mouse button. Pressing the right mouse button after the mark is created activates the popup edit menu.

Rectangle

The Rectangle mark enables end users to cover areas of an image or document with a rectangle. The Rectangle can be with or without border and filled color. It can have a different opacity level.

Edit Mode: In Edit mode, end users create this mark by clicking the Rectangle button with the left mouse button and then dragging the resulting rectangle over the items to be covered. Pressing the right mouse button after the mark is created activates the popup edit menu.

Ellipse

The Ellipse mark enables end users to cover areas of an image or document with an ellipse. The Ellipse can be with or without border and filled color. It can have a different opacity level.

Edit Mode: In Edit mode, end users create this mark by clicking the Ellipse button with the left mouse button and then dragging the resulting ellipse over the items to be covered. Pressing the right mouse button after the mark is created activates the popup edit menu.

Polygon

The Polygon mark enables the end user to cover areas of an image or document with a polygon.

Edit Mode: To create a Polygon mark, end users:

  1. Click the left mouse button at the point where the polygon starts.
  2. Drag the mouse to the location of a vertice and click the left mouse button.
  3. Repeat step 2 to add the desired number of vertices to the polygon, clicking the left mouse button to add a vertice.
  4. Double-click the left mouse button to complete the polygon.
  5. Press the right mouse button after the mark is created to activate the popup Edit menu.

Polyline

The Polyline mark enables the end user to create several connected straight lines by dragging and clicking the mouse.

Edit Mode: To create a Polyline mark in an application, end users:

  1. Click the left mouse button at the point where the polyline starts.
  2. Drag the left mouse button to the location of a vertice.
  3. Drag and click the left mouse button to create each additional vertice.
  4. Move the cursor to the location where the polyline ends.
  5. Double-click the left mouse button.

Pressing the right mouse button after the mark is created activates the popup Edit menu.

Audio

The Audio mark enables end users to hear sounds when annotating an image or document. It is useful for drawing attention to a particular area of a text or image file. This mark plays a waveform audio file (.WAV).

Edit Mode: In Edit mode, end users create this mark by clicking on the Audio button with the left mouse button and then dragging the mark (a loud-speaker-shaped bitmap) to its destination. To display the dialog box, the user double-clicks the left mouse button on the loud-speaker. This allows the user to specify the name of the .WAV file that plays during Run mode.

When the application is in the Run mode, the cursor changes to a pointing hand when it passes over the loud-speaker bitmap. As the mark is activated (makes a sound), lines representing sound waves appear and disappear from the end of the loud-speaker.

Image

The Image mark enables the end user to embed or file reference a bitmap or a vector image in a document or image.

Edit Mode: In Edit mode, end users creates a mark by clicking the Image button with the left mouse button, dragging the image, and then releasing the left mouse button. When the left mouse button is released, the image becomes embedded. Once the bitmap or vector image is in place on the annotation window, it can be re-sized by using the left mouse button. Click the right mouse button over the mark to activate the popup edit menu.

Run Mode: In Run mode, end users interact with a vector Image mark by clicking over the mark and using the popup 3D toolbar. End users can rotate, scale, and move 3D data, as well as change lights and views settings.

Ruler

The Ruler mark enables the end user to create a line that displays its measurement.

Edit Mode: To create a measured line, the end users:

  1. Click on the Ruler button.
  2. Click the left mouse button where the end of the line begins and drag it to the end of the line.
  3. Release the left mouse button to complete the line.
  4. Press the right mouse button to activate the popup Edit menu.

Protractor

The Protractor mark enables the end user to create an angle that displays the arc and the angle measurement.

Edit Mode: To create a measured angle, end users:

  1. Click the protractor button.
  2. Drag the mouse to create the first line of the angle.
  3. Click the left mouse button to end the first line. This click creates the vertex and begins the second line.
  4. Click the left mouse button where you want your second line to end. The measured angle is complete.
  5. Press the right mouse button after the mark is created to activate the popup Edit menu.

Encryption

The Encryption mark enables your users to scramble all or part of the image.

Edit mode: End users create this mark by clicking the Encryption button with the left mouse button and then dragging the resulting rectangle over the area to be scrambled.

NOTE: Encrypted marks cannot overlap.

Button

The Button mark places a programmable button on an image. For example, a button can be programmed to zoom into part of an image.

Edit Mode: In the Edit mode, end users create this mark by clicking on the Button button with the left mouse button and then dragging the resulting mark to its destination. The button can be resized by dragging the resize handles. You can set your application to respond to a right-mouse click by displaying the properties box and selecting the appropriate property. Your user can set several attributes for a button, including font, foreground color, background color and text.

When the application is in Run mode, the cursor changes to a pointing hand when it passes over the Button bitmap.

Hot Spot

The Hot Spot mark enables the end user to define an invisible region in a document or image that can be used to hold hidden messages.

Edit Mode: In Edit mode, end users create this mark by clicking the Hot Spot button with the left mouse button, dragging the image, and then releasing the left mouse button. When the left mouse button is released, the resulting rectangle becomes the hot spot region. It remains visible while the application is in edit mode. Pressing the right mouse button after the mark is created activates the popup edit menu.

Run Mode: When a user passes the cursor over this region, the cursor changes, indicating that there is something special about the contents within the invisible region. If the user clicks the left mouse button while the cursor is in the region, your application sends a message detailing the information about the contents of the region.

NOTE: The Hot Spot region is visible only when the application is in Edit mode.

Rich Text

The Rich Text mark enables end users to edit, load, and display RTF text.

Edit mode: In Edit mode, end users create this mark by clicking the Rich Text button with the left mouse button and then dragging the resulting rectangle over the area to be annotated. The RTF Editor Tool allows users to load RTF files and edit the RTF text using the menu and toolbar buttons.

ART 2.0 Legacy Marks

Arrow

The Arrow mark enables the end user to create an arrow over an image or document. It allows users to point to areas of a document that may be of interest to its reader.

Edit Mode: Users of the completed application can create this mark by clicking the Arrow button with the left mouse button, dragging the image, and then releasing. The head of the arrow is drawn at the point where the left mouse button is first pushed, and the tail (end) of the arrow is set at the location where the left mouse button is released. Pressing the right mouse button after the mark is created activates the popup edit menu.

Filled Rectangle

The Filled Rectangle mark enables end users to cover areas of an image or document with a rectangle.

Edit Mode: In Edit mode, end users create this mark by clicking the Filled Rectangle button with the left mouse button and then dragging the resulting rectangle over the items to be covered. Pressing the right mouse button after the mark is created activates the popup edit menu.

Hollow Rectangle

The Hollow Rectangle mark enables users to surround areas of an image or document with a hollow rectangle.

Edit Mode: In Edit mode, end users of your application create this mark by clicking the Hollow Rectangle button with the left mouse button and then dragging the resulting rectangle over the items to be surrounded. Pressing the right mouse button after the mark is created activates the popup edit menu.

Filled Ellipse

The Filled Ellipse mark enables end users to cover areas of an image or document with an ellipse.

Edit Mode: In the edit mode, end users create this mark by clicking the Filled Ellipse button with the left mouse button, dragging the image, and then releasing the left mouse button. Pressing the right mouse button after the mark is created activates the popup edit menu.

Hollow Ellipse

The Hollow Ellipse mark enables the end user to create a hollow ellipse to surround important areas.

Edit Mode: In Edit mode, end users of the completed application create this mark by clicking the Hollow Ellipse button with the left mouse button, dragging the image, and then releasing the left mouse button. Pressing the right mouse button after the mark is created activates the popup edit menu.

Description
A hollow ellipse whose boundaries are defined by a rectangle. Two points define the rectangle, an upper left point and a bottom right point.
Attr Properties
AttrBounds, AttrForeColor, AttrHighlight, AttrLineSize

Filled Polygon

The Filled Polygon mark enables the end user to cover areas of an image or document with a polygon.

Edit Mode: To create a Filled Polygon mark, end users:

  1. Click the left mouse button at the point where the polygon starts.
  2. Drag the mouse to the location of a vertice and click the left mouse button.
  3. Repeat step 2 to add the desired number of vertices to the polygon, clicking the left mouse button to add a vertice.
  4. Double-click the left mouse button to complete the polygon.
  5. Press the right mouse button after the mark is created to activate the popup Edit menu.

Hollow Polygon

The Hollow Polygon mark enables the end user to surround areas of an image or document with a polygon.

Edit Mode: To create a Hollow Polygon mark, end users:

  1. Click the left mouse button at the point where the polygon starts.
  2. Drag and click the left mouse button to create each vertice you want to add.
  3. Double-click the left mouse button to complete the polygon.
  4. Press the right mouse button after the mark is created to activate the popup edit menu.

Redaction

The Redaction mark enables end users to hide or black out areas of their annotated image or document.

Edit Mode: In Edit mode, end users create this mark by clicking the Redaction button with the left mouse button and then dragging the resulting rectangle over the items they wish to cover. The rectangle covers whatever is underneath it. Pressing the right mouse button after the mark is created activates the popup Edit menu.

Highlighter

The Highlighter mark enables end users to highlight areas of their annotated image or document.

Edit Mode: In Edit mode, end users:

  1. Create this mark by clicking the Highlighter button with the left mouse button and then dragging the resulting rectangle over the items they wish to cover.
  2. The resulting rectangle highlights whatever is underneath it.
  3. Pressing the right mouse button after the mark is created user activates the popup Edit menu.

Text Note

The Text Note mark enables your end users to add notes to their annotated image or document.

Edit Mode: In the edit mode, end users create this mark by clicking the Attach-A-Note button with the left mouse button and then dragging the resulting rectangle over the area to be annotated.

Pressing the right mouse button activates the popup menu that enables users to change the font or the background colors of the note.

The Choose Font option displays a dialog box that allows users to change text properties. If the application is in Edit mode, and an end user wants to modify the text, they simply double-click the left mouse button when the cursor is over the note. The cursor appears at the beginning of the text to allow editing.

The Set Background Color option enables end users to change the color of the note. When this option is selected, a dialog box appears with a range of options.

Text Stamp

The Text Stamp mark allows the end user to annotate documents and images with text.

Edit Mode: In Edit mode, end users create this mark by clicking on the Text Stamp button with the left mouse button. Pressing the right mouse button after the mark is created activates the popup Edit menu, which allows you to enter the text of the stamp.

Text from File

The Text From File mark enables the end user to add descriptive text to an annotated image or document. The text can be created in various fonts, sizes, colors, and even angles of presentation. The text appears to lay over the original image or document.

Edit mode: End users create this mark by clicking the Text From File button with the left mouse button and then dragging the rectangle over the area to be annotated. This rectangle helps to position the Text annotations. Text annotations are modified when the application is in Edit mode. To modify the text, the end user double-clicks the left mouse button when the cursor is over the text mark. The cursor appears at the beginning of the text, and transforms to allow editing.

While creating this mark and entering text, end users use the right mouse button to access a popup menu that enables them to change several attributes of the mark.

  • Choose Fontoption allows users to select the color of the text fonts.
  • Adjust Angle option enables end users to rotate the text mark with a dialog box. The square at the lower left corner of the Adjust Angle dialog box shows the appearance of the text mark with the selected text display angle.
  • Set Background Color option is identical to the one available while creating the Attach-a-Note mark.
  • Set Background Mode option enables end users to change the visibility level of the region within the Text mark. When this option is selected, a dialog box appears.
      • If Transparent is selected, the interior of the text mark is not visible; only the text is visible.
      • If Opaque is selected, end users are not able to see through the interior of the text mark.
      • If Tinted is selected, the text mark resembles a tinted glass. End users are able to see through the mark.
NOTE: If end users create a text mark without any text with a Transparent background, the resulting mark will exist but will not be visible.

Typed Text

The Typed Text mark enables the end user to add descriptive text to their annotated image or document. The text can be created in various fonts, sizes, colors. The text appears over the original image or document.

Edit mode: End users create this mark by clicking the Typed Text button with the left mouse button and then dragging the resulting rectangle over the area to be annotated. This rectangle helps to position the Text annotations. Text annotations are easily modified when the application is in the Edit mode. To modify it, the end user double-clicks the left mouse button when the cursor is over the text mark. The cursor appears at the beginning of the text, and transforms to allow editing.

NOTE: If end users create a text mark without any text with a Transparent background, the resulting mark will exist but will not be visible.

Pin Up Text

The Pin Up Text mark enables the user to create a mark that appears to be tacked onto the image with a push pin.

Edit Mode: This mark can have an optional label. The label indicates which data can be obtained by clicking on the pin in while in Run mode. You can add code to the MouseNotify event to display additional data when the push pin is pressed

Image Embedded

The Image Embedded mark enables the end user to embed a bitmap image in a document or image.

Edit Mode: In Edit mode, end users embed an image by clicking the Image Embedded button with the left mouse button, dragging the image, and then releasing the left mouse button. When the left mouse button is released, the image becomes imbedded. Once the bitmap is in place on the annotation window, it can be re-sized by using the left mouse button. Pressing the right mouse button over the mark to activate the popup edit menu.

Image Embedded marks are intended for use with bitmaps that use no more than the standard 20 Windows colors. Therefore, 1-bit and 4-bit bitmaps are allowed. If you try to display an 8-bit bitmap in the mark, it is displayed using only the standard 20 colors.

Image Reference

The Image Reference mark enables the end user to include an image by reference in a document or image.

Edit Mode: In Edit mode, end users reference an image by clicking the Image Reference button with the left mouse button, dragging the image, and then releasing the left mouse button. When the left mouse button is released, an image is displayed. To insert an image, press the right mouse button over the mark to activate the popup Edit menu and choose Properties. Select the image you wish to reference.


PDF Marks

ImageGear ART can convert ART marks to PDF annotations and PDF annotations to ART marks giving the user an ability to edit PDF annotations using the same ImageGear ART GUI.

The following table lists all the ART marks that can be converted to PDF annotations and describes how the marks are being converted:

ART Marks
PDF Annotations
Ellipse
Circle
Hot Spot
Link
Image (vector)
3D
Legacy Arrow
Line
Legacy Filled Ellipse
Circle
Legacy Filled Polygon
Polygon
Legacy Filled Rectangle
Square
Legacy Highlighter
Square
Legacy Hollow Ellipse
Circle
Legacy Hollow Polygon
Polygon
Legacy Hollow Rectangle
Square
Legacy Redaction
Square
Legacy Text From File
FreeText
Legacy Text Note
FreeText
Legacy Text Stamp
FreeText
Legacy Typed Text
FreeText
Line
Line
Polygon
Polygon
Polyline and Freehand Polyline
PolyLine
Rectangle
Square
Rich Text (RTF)
FreeText
Text
FreeText

The following PDF annotations can be converted to ART marks:

PDF Annotations
ART Marks
3D
Image (vector)
Circle
Ellipse
FreeText (RTF style text)
Rich Text
FreeText (simple style text)
Text
Line
Line
Link
Hot Spot
Polygon
Polygon
PolyLine
Polyline
Square
Rectangle


Using ImageGear ART Component

NOTE: You can only attach one ART component. ART cannot be attached when ARTX is already attached.

The IGArtCtl ActiveX control helps developers to add redlining and annotation capabilities to any application built with ImageGear. If you have an application that can read, display, and print images, with IGArtCtl attached you can add marking capabilities, such as arrows, highlighting, and sticky notes to documents images, and use them as though you were working on printed sheets of paper.

The fundamental "unit" of annotation is called an "ART Mark", or "mark" for short (the original name of IGArtCtl was the "Annotation and Redlining Toolkit"). When the end-user uses your application to annotate an image, (s)he is creating marks. Each mark is defined by some geometry ((x,y) position on the image, height and width, etc.), and (for some marks) textual information (a text string, a date, etc.). While the rest of ImageGear typically works with raster (pixel-based) images, IGArtCtl marks are vector objects - they can be moved, resized and even deleted.

While the marks are vector objects, they typically are intended to be related to some part of the raster image. For example, one of the marks is a digital version of a "PostIt" note (called an "Attach A Note" mark):

If the user scrolls or zooms the image, it's critical that the mark scrolls or zooms with the image - so that it always appears over the same part of the image. IGArtCtl works in conjunction with IGPageDisplay to make sure that this happens.

IGArtCtl provides a "toolbar" feature that the end-user works with to create and edit the marks. Enabling the toolbar makes adding annotation/redlining capabilities to your application basically trivial.

Once the end-user has created marks for a given image, they need to be saved. IGArtCtl marks can be saved in any of 3 ways:

  • Save the annotations in a separate .ART file,
  • "Burn in" the annotations permanently (making them part of the image file), or
  • Save the annotations in the header of a TIFF image (TIFF files only).

You may also combine these methods. You can, for example, leave classified information in an ART file and "burn in" non-classified information into the image.

As described in "Operational Concepts" (above), you use the IGArtCtl ActiveX control by placing it into the UI of your application, using the graphic designer of your development environment. In the code for your application, in the startup sequence, you must associate the control with your IGCoreCtl, before calling any of its methods:

IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGArtCtl1.ComponentInterface

Your application must then create an IGPage object, and load an image into it. The following example shows the use of LoadPageFromFile, but any of the techniques in "Loading and Saving Images" (above) could be used:

Dim page As IGPage
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set page = IGCoreCtl1.CreatePage
IGFormatsCtl1.LoadPageFromFile page, "myfile.jpg", 0

Next, your application must create an IGPageDisplay object for the IGPage, and then associate the IGPageDisplay with the IGPageViewCtl in the user interface.. This is done as follows:

Dim display As IGPageDisplay
Set display = IGDisplayCtl1.CreatePageDisplay(page, True)
IGPageViewCtl1.PageDisplay = display

At this point, the image is displayed in the application's user interface. The IGArtCtl marks are created and maintained inside of another COM object called an IGArtPage. Therefore, the next step is to create an empty IGArtPage and associate it with the IGPage containing the image. IGArtCtl and IGPageDisplay need to coordinate with each other, so that the IGArtCtl marks automatically "track" with the image as it re-oriented, scrolled and zoomed. The IGArtPage is created and associated with IGPage and IGPageDisplay as follows:

Dim art As IGArtPage
Set art = IGArtCtl1.CreateArtPage(page, display,
IGPageViewCtl.hWnd )

Then the application will make the IGArtCtl toolbar appear, so that the end-user can begin creating the marks:

IGArtCtl1.Toolbar(myForm.hWnd, true, 100, 100)

After the marks have been created, the marks need to be saved somewhere. As described above, your application has 3 choices for this. The first is to save the marks as a separate ART file. The code to do this is:

The various marks that can be created with IGArtCtl are described in the following table. Please refer to the ImageGear ART Component API Reference for complete descriptions of the IGArtCtl methods.

Mark
Example
Filled Rectangle

Hollow Rectangle

Hightlighter Rectangle

Straight Line

Typed Text

Attach A Note

Text From File (a text file on disk is read, and the text displayed in the mark)

Text Stamp (automatically set to date and/or time the mark was created)

Freehand Line

Arrow

Filled Ellipse

Hollow Ellipse

Hotspot (when end-user clicks in shaded area, an event is raised to which your application can respond)

Filled Polygon

Hollow Polygon

Polyline

Redaction (looks just like a filled rectangle, but cannot be moved after the marks are written to a file)

Audio (a WAV file on disk is read, and the sound played when the user clicks in the mark)

Pin-up Text (when user clicks on the pushpin, an event is raised allowing the application to display additional text).

Embedded Image (your application provides the image used - the one shown here is the one used in the sample program)

Image Reference (an image file on disk is read, and the image in the file is displayed for the mark - the one shown here is just a sample)

Button (when user clicks on the button, an event is raised allowing the application to take action)

Encryption (visually looks like a filled rectangle). When user clicks on the rectangle, an event is raised allowing the application to request a password. If password matches the one in the mark, then application can make the mark transparent, which displays the image)

Ruler (automatically labels the line according to the units defined in the image-file header). Especially useful for DICOM files.

Protractor

RTF Text


Using ImageGear CAD/Vector Components

ImageGear CAD/Vector Format Components provide support for the following vector format filters:

    • CAD/Vector (CGM) Component Format Filter
    • CAD/Vector (DGN) Component Format Filter
    • CAD/Vector (DWF) Component Format Filter
    • CAD/Vector (DWG, DXF) Component Format Filter
    • CAD/Vector (HPGL, HPGL/2) Component Format Filter
    • CAD/Vector (SVG) Component Format Filter
    • U3D Vector Component Format Filter


CAD/Vector (CGM) Component Format Filter

If you attach CAD/Vector (CGM) Component to core ImageGear it allows you to initialize CGM Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

ImageGear CGM Format Filter supports the following features of CGM files processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.
    • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading.
    • IG_FLTR_PAGEINSERTSUPPORT - saving page in the file.

You can detect, read, and work with pages in multi-page CGM files using methods from ImageGear Format Filters API.

Currently ImageGear CAD/Vector (CGM) Component provides 1 control parameter:

    • WIDTH
See Also:

CAD/Vector Component Filters Control Parameters Reference


CAD/Vector (DGN) Component Format Filter

If you attach CAD/Vector (DGN) Component to core ImageGear it allows you to initialize DGN Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

ImageGear DGN Format Filter supports the following features of DGN files processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.

You can detect and read single-page DGN files.

Currently ImageGear CAD/Vector (DGN) Component provides the following control parameters:

    • BACKCOLOR
    • WIDTH
See Also:

CAD/Vector Component Filters Control Parameters Reference


CAD/Vector (DWF) Component Format Filter

The ImageGear CAD/Vector (DWF) component provides the ability to import AutoCAD formats into ImageGear. This allows your application to DWF images like any other vector format supported by ImageGear.

If you attach this Component to core ImageGear it allows you to initialize CAD/DWF Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

ImageGear DWF Format Filter supports the following features of CAD files processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.
    • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading.
    • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing.

You can detect, read/write and work with pages in multi-page DWF files.

Currently ImageGear CAD/Vector (DWF) Component provides the following control parameters:

    • IMAGE_FORMAT
    • WIDTH
See Also:

CAD/Vector Component Filters Control Parameters Reference


CAD/Vector (DWG, DXF) Component Format Filter

The ImageGear CAD/Vector (DWG, DXF) component provides the ability to import AutoCAD formats into ImageGear. This allows your application to use them like any other format supported by ImageGear. The following formats are supported:

Format
Description
DXF
An AudoDesk graphics format (Drawing eXchange Format). Most CAD programs (PC-based) support this format.
DWG
An AutoCAD, AutoCAD2004, and AutoDesk graphics format (DraWinG).

If you attach this Component to core ImageGear it allows you to initialize CAD Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

ImageGear DXF, DWG Format Filter supports the following features of CAD files processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.
    • IG_FLTR_PAGEINSERTSUPPORT - single page file writing.

You can detect, read/write and work with single-page DXF/DWG files.

Currently ImageGear CAD/Vector (DWG, DXF) Component provides the following control parameters:

    • BACKCOLOR
    • FONTPATH
    • LINEWIDTHDEF
    • PASSWORD
    • SHOWHIDDEN
    • TRUETYPE
    • TTFWIDTH
    • VERSION
    • WIDTH
See Also:

CAD/Vector Component Filters Control Parameters Reference


CAD/Vector (HPGL, HPGL/2) Component Format Filter

If you attach CAD/Vector (HPGL, HPGL/2) Component to core ImageGear it allows you to initialize HPGL Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

ImageGear HPGL, HPGL/2 Format Filter supports the following features of HPGL, HPGL/2 files processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.
    • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading.

You can detect and read pages in multi-page HPGL, HPGL/2 files.

Currently ImageGear CAD/Vector (HPGL, HPGL/2) Component provides the following control parameters:

    • BACKCOLOR
    • WIDTH
See Also:

CAD/Vector Component Filters Control Parameters Reference


CAD/Vector (SVG) Component Format Filter

The ImageGear CAD/Vector (SVG) component provides the ability to import Scalable Vector Graphics format into ImageGear. This allows your application to use them like any other format supported by ImageGear. The following formats are supported:

Format
Description
SVG
Scalable Vector Graphics format. This is a modularized language for describing two-dimensional vector and mixed vector/raster graphics in XML.

If you attach this Component to core ImageGear it allows you to initialize SVG Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

ImageGear SVG Format Filter supports the following features of SVG files processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.
    • IG_FLTR_PAGEINSERTSUPPORT - single page file writing

You can detect, read, write and work with single-page SVG files.

Currently ImageGear CAD/Vector (SVG) Component provides the following control parameters:

    • EXTERN_FILE_PATH
    • WIDTH
See Also:

CAD/Vector Component Filters Control Parameters Reference


U3D Vector Component Format Filter

The ImageGear U3D component provides the ability to import Universal 3D formats into ImageGear. This allows your application to use them like any other format supported by ImageGear. The following formats are supported:

Format
Description
U3D
Universal 3D format is a universal vector standard for storing three-dimensional data of all kinds, to facilitate data exchange.

If you attach this Component to core ImageGear it allows you to initialize U3D Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

ImageGear U3D Format Filter supports the following features of U3D files processing:

  • IG_FLTR_DETECTSUPPORT - auto-detection.
  • IG_FLTR_PAGEREADSUPPORT - single page file reading.
  • IG_FLTR_PAGEINSERTSUPPORT - saving vector data in the file.

Currently ImageGear U3D Component provides 2 control parameters:

  • BACKCOLOR
  • WIDTH


CAD/Vector Component Filters Control Parameters Reference

All ImageGear CAD/Vector Components import DWF, DWG, DXF, HPGL, HPGL/2, DGN, CGM, SVG, and U3D files in internal storage format, preserving all the vector information. This process depends on the control parameters, which the programmer controls. The application can set the width in pixels of the reference bitmap. Height is calculated using file's scale factors. ImageGear keeps one dimension and alters the other one to preserve the aspect ratio of the drawing.

ImageGear provides filter control parameters that are applicable for DWF, DWG, DXF, HPGL, HPGL/2, DGN, CGM, SVG, and U3D vector formats. For the information about which parameter is applicable for which filter please see the sections:

  • CAD/Vector (CGM) Component Format Filter
  • CAD/Vector (DGN) Component Format Filter
  • CAD/Vector (DWF) Component Format Filter
  • CAD/Vector (DWG, DXF) Component Format Filter
  • CAD/Vector (HPGL, HPGL/2) Component Format Filter
  • CAD/Vector (SVG) Component Format Filter
  • U3D Vector Component Format Filter

Use ImageGear objects IGControlParameter and IGFormatParams to get/set value, name, count of control parameters as well as to retrieve information about it. For the detailed information about these objects properties and methods please, see the Chapter ImageGear Formats Component API Reference.

NOTE: DWF, DWG, DXF, HPGL, HPGL/2, DGN and SVG control parameters are stored in the same way as all other ImageGear filters.
    • BACKCOLOR
    • EXTERN_FILE_PATH
    • FONTPATH
    • IMAGE_FORMAT
    • PASSWORD
    • VERSION
    • WIDTH


BACKCOLOR

Group: Control Parameter

Description:

This parameter is used to set background color. If nBackGroundColor=0, then a black background color is set, otherwise a white background color is set.

Type: UINT

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EXTERN_FILE_PATH

Group: Control Parameter

Description:

Defines a path where the external files (like raster images) should be looked for.

Type:

String

Default Value:

" " (This means that the external files should be looked for in the directory of the current SVG file.)


FONTPATH

Group: Control Parameter

Description:

Defines a path to the vector font files. Format - <Path1>;< Path2>;... . The total length is currently 262.

Type: LP | CHAR

Default Value: " "

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IMAGE_FORMAT

Group: Control Parameter

Description:

Defines the internal format that will be used for saving raster data inside the DWF file. This only affects saving of raster images to DWF.

Allowed values correspond to enumIGSaveFormats constants:

IG_FORMAT_BMP

IG_FORMAT_CAL

IG_FORMAT_GIF

IG_FORMAT_G4

IG_FORMAT_JPG

IG_FORMAT_PCX

IG_FORMAT_PCT

IG_FORMAT_PNG

IG_FORMAT_TGA

IG_FORMAT_TIF

Type: INT

Default Value: IG_FORMAT_PNG

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LINEWIDTHDEF

Group: Control Parameter

Description:

This parameter is used to set default line width.

Type:

Double

Default Value:

0


PASSWORD

Group: Control Parameter

Description:

This parameter is used to set password for encrypted files before reading. Currently this parameter is by DWG/DXF filter to read encrypted CAD .

Type: LP|CHAR

Default Value: " "

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SHOWHIDDEN

Group: Control Parameter

Description:

If true, hidden layers are shown by default.

Type:

Boolean

Default Value:

False


TRUETYPE

Group: Control Parameter

Description:

If true, TrueType font (Arial) are used for text drawing, otherwise vector fonts are used.

Type:

Boolean

Default Value:

False


TTFWIDTH

Group: Control Parameter

Description:

Relative default TrueType font width.

Type:

Double

Default Value:

0


VERSION

Group: Control Parameter

Description:

This parameter is used to set a version for the file when vector image is saved.

Type: LP|CHAR

Default Value: " "

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


WIDTH

Group: Control Parameter

Description:

Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.

Type: INT

Default Value: 512

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Using ImageGear GUI Component

ImageGear includes a set of ActiveX controls that provide various "canned" application functions to simplify your programming task. As described in "Operational Concepts" (above), you use each of these controls by placing it into the UI of your application, using the graphic designer of your development environment. The controls shown here are described in ImageGear GUI Component API Reference Chapter. Note that the source-code for IGGUIDlgCtl, IGGUIMagnifierCtl, IGGUIPanCtl, IGGUIPaletteCtl and IGGUIThumbnailCtl are also provided with ImageGear, so that you can modify them to suite your needs. The source-code for these controls is provided in the "Samples" directory.

Since these ActiveX controls are described in detail in ImageGear GUI Component API Reference chapter, the following sections give only a brief overview of each control.


IGDlgsCtl

Provides a set of pre-programmed dialogs for performing image load and save functions. Each of these dialogs combines the function of a Windows standard file-chooser dialog and an IGFormatsCtl load or save function:

PageLoad
"Open File" file-chooser dialog combined with LoadPageFromFile.
PageSave
"Save as" file chooser dialog combined with SavePageToFile
DocumentLoad
"Open File" file-chooser dialog combined with LoadDocumentFromFile
DocumentSave
"Save as" file chooser dialog combined with SaveDocumentToFile


IGGUIDlgCtl

The IGGUIDlgCtl control is provided to save the ImageGear programmer from having to develop application dialog-boxes for 17 of the more commonly used ImageGear functions. The 17 functions are broken into 3 categories:

Display
Functions that affect how the image appears on the screen (or on printed output), but not the actual image itself
Processing
Functions that modify the actual image itself
Miscellaneous
Functions, like "file open dialog" that don't fit in either of the two other categories

The 17 functions provided by the GUI Dialogs control are:

dspl_Alignment
Set the alignment of the image within the display window.
dspl_Antialiasing
Controls the anti-aliasing applied to text in scanned pages.
dspl_Background
Controls the background areas within the display window.
dspl_Dither
Controls the dithering of high-bit-depth images to low-bit-depth output.
dspl_Fit
Controls the way that the image is fit within the display window.
dspl_Gamma
Controls the contrast, brightness and gamma-correction used to display an image (as opposed to ip_Gamma, below).
dspl_Orientation
Controls the orientation of the image (e.g., landscape or portrait) within the display window.
ip_Crop
Provides a means for the user to crop the actual image.
ip_Gamma
Provides a means for the user to set the brightness, contrast and gamma-correction of the actual image (as opposed to dspl_Gamma, above).
ip_Resize
Provides a means for the user to resize the actual image.
ip_Rotate
Provides a means for the user to rotate the actual image.
info_File
Displays information about an image file.
info_Page
Displays information about the image in an IGPage object.
load_File
An ImageGear enhanced version of the standard file-chooser dialog.
open_Dir
The standard directory-chooser dialog.
print_Page
An ImageGear enhanced version of the Print dialog.
save_File
An ImageGear enhanced version of the standard Save-As dialog.

NOTE: The load/save related dialogs are different than those in IGDlgsCtl: the dialogs in IGGUIDlgCtl only perform the file-chooser function (they do not include the call to IGFormatsCtl to actually load or save the file).

See GUI Dialogs Control for more information.


IGGUIMagnifierCtl

IGGUIMagnifierCtl provides a "magnifying glass" facility for your images:

See GUI Magnifier Control for more information.


IGGUIThumbnailCtl

The IGGUIThumbnailCtl can be used to view a preview thumbnail of each image in a directory of image-files, and can also be used as a page-sorted for multi-page image files. It looks like this:

See GUI Thumbnail Control for more information.


IGGUIPanCtl

The IGGUIPanCtl is used as an alternative to the traditional scroll-bars for scrolling very-large images:

See GUI Pan Control for more information.


IGGUIPaletteCtl

IGGUIPaletteCtl provides a display of the palette colors used in an image, plus a mechanism for invoking the Windows Color-chooser dialog so that the user can change a palette color:

See GUI Palette Control for more information.


Using ImageGear ImageClean Component

The various ways in which an image can be modified with IGICCtl are described in the following table. All of these modifications are "cleanup" modifications, typically used to remove problems from scanned images and documents.

NOTE: IGProcessingCtl Despeckle and Deskew methods are also used for these purposes.

Please refer to the ImageGear ImageClean Component API Reference Chapter for complete descriptions of the IGICCtl methods.

Modification
API Reference
Remove large black area around an image (as often occurs when a document is copied with a photocopier and then scanned)
CleanBordersOptions2 property
CleanBorders
Remove large white area around an image (as often occurs when a document is copied with a photocopier and then scanned)
CropAuto
Determine whether there is any image or text on a scanned image (sometimes the auto-feeder doesn't work).
GetNoiseObjectsCount
Invert (black->white, white->black) a monochrome image.
InvertWhiteTextOptions property
InvertBlackImage
InvertWhiteText
Re-orient a scanned image (upside-down -> right-side up, etc.) so that text is readable.
OrientAutoOptions property
OrientAuto


Using ImageGear ISIS Component

While using the ISIS component you can:

  • Acquire single or multiple images from the scanner and store them in disk files, or have them loaded into IGPage objects for further processing.
  • Provide a dialog that allows the user to select the ISIS device to use for scanning (when more than one such device is available).
  • Provide a dialog box that allows the user to set scanning parameters, such as resolution, dither pattern, brightness, contrast, and so forth.
  • Provide a dialog box with copyright and version information for the current driver.
  • Provide a predefined dialog box that allows the user to set scanning area.
  • Provide a dialog box showing configuration information for the currently selected scanner and allowing the configuration information to be changed by the user.
  • Provide a predefined dialog box that allows the user to access scanner specific settings, such as pagesize detection, barcode recognition, endorsement, gamma correction, and so forth.
  • Get and set all the scanning control parameters (as above) directly in your application program.
NOTE: The ISIS driver for your scanner should be included as part of your scanner software. It is not part of IG ISIS component software.


Tags

The scanning process is characterized by a set of control parameters (tags in ISIS terms) that define image properties, such as color, dither pattern, resolution, orientation and page size format, brightness and contrast control, and the size and position of the image on the page. There are 2 objects used in conjunction with tags:

  • IGISISTagChoice contains the specification for the tag: its data type and legal values
  • IGISISTagValue is used to actually get and change the value of a tag.

Every tag is identified by an ID, which must be one of the values in enumIGISISTags. Call GetTagChoice with the ID value for a given tag to determine the "rules" for using the tag. Call GetTagValue with the ID to get the current value of the tag, and call UpdateTagValueFrom with the ID to change the value of the tag. You can also get the default value of a tag by calling GetTagDefaultValue or reset the specified tag to its default value by calling GetTagDefaultValue.


Setting Scanning Parameters

Before starting scanning process you should set scanning parameters. You can do it by calling tag methods described above or using ShowScanParamsDlg (). The ShowScanParamsDlg () method displays a predefined dialog box that allows the user to set scanning parameters, such as resolution, dither pattern, brightness, contrast, and so forth. Application developers should use this method rather than setting scanner parameters explicitly. Applications will then be better able to take advantage of new scanner capabilities as these capabilities are released in new scanner drivers. By using the ShowScanParamsDlg () method, the new capabilities will appear automatically whenever a new scanner driver is connected.


Acquiring and Scanning Pages

ImageGear provides 3 methods of the IGIsisCtl component to actually scan and acquire images:

  • AcquireToDoc Acquires multiple pages from an automatic document feeder, creating an IGDocument.
  • AcquireToFile Acquires multiple pages from an automatic document feeder, creating a multi-page file or multiple single-page files on disk.
  • AcquireToPage Acquires a single page from the flatbed or an automatic document feeder.

You can use any of the file formats supported by ImageGear when storing files on disk. TIFF is the most commonly used file format for storing multi-page documents. You can use TIFF when you scan pages from the ADF. ImageGear-supported formats that store only one image per file, such as Windows Bitmap (BMP), can be used for scanning multiple pages. A separate file is created for each image. There are three possible cases:

  • If FileName specifies only a directory but not a file name, a separate file for each page will be created, using the names 00000001.tif, 00000002.tif, 00000003.tif, etc. If those files already exist, they will be deleted before being scanned into.
  • If FileName specifies a filename and SavePagesSeparately is set to True, a separate file for each page will be created, but will use part of the name that you supplied. If the name you supplied was "ScanTest.bmp", your pages will be named as follows: ScanTest1.bmp, ScanTest2.bmp, ScanTest3.bmp ... ScanTest10.bmp, ScanTest11.bmp, etc. If these files already exist, they will be deleted before being scanned into.
  • If SavePagesSeparately is False and FileFormat is set to a format type that supports multiple pages, such as TIFF, DCX, or MO:DCA, the images are stored in one file identified by the FileName parameter.


Selecting the Paper Source

Pages can be scanned either via a flatbed area or using an Automatic Document Feeder (ADF). ImageGear uses the ADF to feed the scan as its default. If there is no paper in the ADF (or no ADF at all), the scanner scans the flatbed area (even if it is empty).


Loading and Unloading the Driver

Before performing operations with the scanner, the scanner driver must be loaded. After the application is done with the scanner the scanner driver must be uloaded. This is done by calling the LoadDriver () and UnloadDriver () methods.


Using ImageGear JBIG2 Component

The ImageGear JBIG2 component enables you to load and save images using a method based on the JBIG2 compression algorithm. The JBIG2 format supports multi-page images and is the most effective compression method for bitonal (B\W) images.

If you attach JBIG2 Component to core ImageGear it allows you to initialize JBIG2 Format Filter functionality, that can be accessed through core ImageGear Format Filter API.

Supported Features

ImageGear JBIG2 Format Filter supports such features of JBIG2 file processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.
    • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading.
    • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing.
    • IG_FLTR_MPAGEWRITEPSUPPORT - multi-page file writing.

You can detect, read, write and work with pages in multi-page JBIG2 files using ImageGear API.

Supported Compressions for Images

ImageGear JBIG2 Format Filter allows you to save JBIG2 image file using such compressions:

    • IG_COMPRESSION_JBIG2 - 1 bpp


JBIG2 Filter Control Parameters

ImageGear JBIG2 Format Filter provides you with a bunch of control parameters that are optional but can be used for JBIG2 file processing perfection and/or according your own reasons.

Use ImageGear objects IGControlParameter and IGFormatParams to get/set value, name, count of control parameters as well as to retrieve information about it. For the detailed information about these objects properties and methods please, see the Chapter ImageGear Formats Component API Reference.

Currently there are 5 control parameters:

    • JBIG2_DISABLE_CSM ,
    • JBIG2_FILE_ORG ,
    • JBIG2_GENERIC_IMAGE_MMR ,
    • JBIG2_GENERIC_IMAGE_TEMPLATE ,
    • JBIG2_REMOVE_FLY_SPECK


JBIG2_DISABLE_CSM

Group: Control Parameter

Description:

This parameter, when TRUE, specifies that Combined Symbol Matching will not be used. When this option is TRUE, the compression algorithm uses lossy compression. Using lossy compression is likely to result in an image that is smaller (lossless compression can result in encoded images up to 2-3x larger) and a compression speed that is slower than when using lossless compression.

Data type: BOOL

Valid Values: TRUE, FALSE

Default Value: FALSE

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


JBIG2_FILE_ORG

Group: Control Parameter

Description:

This function specifies the file format generated by the encoder.

    • IG_JB2_FILEORGDISTRIBUTED creates a sequential document suitable for transmission.
    • IG_JB2_FILEORGCENTRAL creates a document that allows random access to the pages in the document.

JBIG2 files may be organized in two ways; by sequential access or by random access.

    • In sequential organization (IG_JB2_FILEORGDISTRIBUTED), each page's header immediately precedes the page's data.
    • In random access organization (IG_JB2_FILEORGCENTRAL), all page headers are collected together at the beginning of the file, followed by the data for all of the segments in the same order.

The second organization permits a decoder to determine all the segment dependencies without reading the entire file. Sequential organization is suitable for transmitting images through a network - page by page. Random access organization is used for quick access to each page in an image.

Data type: INT

Valid Values:

  • IG_JB2_FILEORGDISTRIBUTED = 0,
  • IG_JB2_FILEORGCENTRAL = 1

Default Value: IG_JB2_FILEORGDISTRIBUTED = 0

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


JBIG2_GENERIC_IMAGE_MMR

Group: Control Parameter

Description:

This parameter specifies that MMR (G4) encoding should be used for generic image segments.

A typical JBIG2 page contains text data, i.e., small characters arranged in horizontal or vertical rows. The characters in a page's text section are called symbols in JBIG2. A page may also contain halftone data, i.e., grayscale or color photographic images that have been dithered to produce bi-level images. A page may also contain non-text data, such as large characters, line art, and noise. Such non-text data is called generic data in JBIG2.

There are two methods for coding the generic image segment: arithmetic coding and MMR (G4) coding (MMR - Modified Modified READ). MMR provides less compression (up to 4-5 times) than image bitmap compression based on arithmetic coding. Image bitmap decoding using MMR is faster than image bitmap decoding based on arithmetic coding.

Data type: BOOL

Valid Values: TRUE, FALSE

Default Value: FALSE

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


JBIG2_GENERIC_IMAGE_TEMPLATE

Group: Control Parameter

Description:

This parameter specifies one of four templates for the arithmetic coder. The JBIG2 working draft describes these templates in detail. Typically, IG_JB2_GENERICIMAGETEMPLATE16 is used for halftone photographic images and IG_JB2_GENERICIMAGETEMPLATE10B or IG_JB2_GENERICIMAGETEMPLATE10A is used for images that contain primarily text. IG_JB2_GENERICIMAGETEMPLATE13 falls somewhere between halftone images and text.

Data type: INT

Valid Values:

  • IG_JB2_GENERICIMAGETEMPLATE16 = 2
  • IG_JB2_GENERICIMAGETEMPLATE13 = 3
  • IG_JB2_GENERICIMAGETEMPLATE10A = 4
  • IG_JB2_GENERICIMAGETEMPLATE10B = 5

Default Value: IG_JB2_GENERICIMAGETEMPLATE16 = 2

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


JBIG2_REMOVE_FLY_SPECK

Group: Control Parameter

Description:

This parameter specifies whether or not isolated single pixels, also known as "fly specks", should be removed.

Data type: BOOL

Valid Values: TRUE, FALSE

Default Value: FALSE

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Using ImageGear JPEG2000 Component

The ImageGear JPEG2K Component allows you to create an imaging application, supporting JPEG2000 standard (Part I), JPEG2000 extensions (Part II) and Motion JPEG2000 (Part III) formats.

The JPEG2000 standard (JP2, J2K, JPC) provides the set of features that are of importance to many high-end and emerging applications by taking advantage of new technologies. It addresses areas where current standards fail to produce the best quality or performance and provides capabilities to markets that currently do not use compression. The markets and applications better served by the JPEG2000 standard are Internet, color facsimile, printing, scanning (consumer and pre-press), digital photography, remote sensing, mobile, medical imagery, digital libraries / archives and E-commerce. Each application area imposes some requirements that the standard should fulfill.

Many applications require extensions to the JPEG2000 file format that would prevent the file from being treated improperly. To avoid such confusions JPEG2000 Standard Part II defines extended format called JPX. Using this extension allows applications to operate images with different colorspaces (like CMYK), better handle for transparent channels and define more metadata elements.

The Motion JPEG2000 file format (MJ2) is designed to contain one or more motion sequences of JPEG2000 images, with their timing, and also optional audio annotations, all composed into an overall presentation. It's expected to be used in a variety of applications, particularly where the codec is already available for other reasons, or where the high-quality frame-based approach, with no inter-frame coding, is appropriate.

For more information about JP2, JPX and MJ2 formats please go to the site:

http://www.jpeg.org/JPEG2000.html

See Also:

JPEG2000 Format Support

JPX Format Support

MJ2 Format Support


JPEG2000 Format Support

The ImageGear JPEG2K component is based on Kakadu SDK and allows for utilizing the wide functionality of the JPEG2000 Standard (JP2, J2K, JPC) (ISO/IEC 15444-1). It provides following advantages:

  • The ability to read/write JPEG2000 codestream and JP2 format. See also FILE_FORMAT.
  • Excellent image quality at high compression rates. A major difference between JPEG2000 and the well known JPEG (Joint Photographic Experts Group) technique is the use of the analyzing method. While JPEG uses the Discrete Cosine Transform, JPEG2000 uses a special Discrete Wavelet Transform, which results in improved image quality. The Discrete Wavelet Analysis is performed over the whole image without partitioning it into many different tiles. The reconstructed image does not contain blocking artifacts corresponding to these initial tiles even at high compression rates. See also Discrete Wavelet Transform (DWT) and WAVELET_FILTER, WAVELET_LEVELS.
  • Choice of lossless and loss image compression. The analyzing wavelet filter operation allows a lossless compression at low compression rates and a loss compression at higher rates. The lossless compression is the lowest possible compression rate. The JPEG2000 compression is so efficient it outperforms comparable lossless image compression techniques like LZW and TIFF.
  • User controlled output loss compression rate. The image to be stored may be compressed to either a predetermined rate or to achieve a desired quality. If set for a predetermined compression rate the size of the resulting JPEG2000 file will meet the rate exactly. While using other compression techniques, the size of a compressed file depends on the image contents and differs over a wide range. The different progression orders available in a JPEG2000 compressed file allows for size-dependent compression control. In addition to compression rate this component allows to set a different number of quality layers. See also RATE_BYTES.
  • Support of different image types. JPEG2K Component supports following image types and bit depths: palette-based (1,4,8 bit depths), grayscale (8, 16 bit depths), and truecolor (24 bit depth). Restricted ICC profiles are supported as well.
  • User controlled opacity and transparency information (alpha channel transparency). The ImageGear JPEG2K component allows to store and load alpha channel transparency for all color channels. Loading and saving of additional alpha channels can be performed using core ImageGear functionality. See also "AlphaMapping".
  • User controlled reading/writing of JPEG2000 format metadata (XML and IPR). Non-image information (XML and IPR) does not affect the decoding or visual appearance of the image itself. See also JPEG2000 Part I (JPEG2K) Metadata Tags and Non-image Dataset Structure for JPEG2K as well as "XML" and "IPR".
  • Quicklook generation and scaled image reconstruction based on embedded coding techniques: The resolution progression feature of the compressed JPEG2000 data is best suited to perform a scaled reconstruction. The reconstruction process can be interrupted at any time and the partly processed data contains information of the full-size image. The reconstructed image appears in the appropriate quality corresponding to the processed amount of image data. If the image is reconstructed only for quicklook purposes, the best quality is not necessary because it is displayed at a fraction of the original image size. Using ImageGear JPEG2K component the quality and size of the reconstructed image can be scaled. This reconstructed image may be shown clearly because critical image information is located at the beginning of the compressed file, and remaining data follows in the order of detail. See also DISCARD_LEVELS, MODE.

These features outperform all other image compression techniques. JPEG2K image compression is suited well for sensitive image compressions because of the lossless feature, or for its excellent image quality at high compression ratios for uses such as transmission in low bandwidth applications.

If you attach JPEG2000 Component to core ImageGear it allows you to initialize JPEG2K Format Filter functionality, that can be accessed through core ImageGear Format Filter API. JPEG2K Format Filter supports some features of JPEG2000 Part I format file processing. These features are determined by IG_FLTR_ flags. This Format Filter also allows you to save JPEG2000 Part I images with different compressions depending on image bit depth.

Supported Features

ImageGear JPEG2K Format Filter supports such features of JPEG2000 Part I file processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single page file reading.
    • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing.

You can detect, read and write JPEG2K files.

Supported Compressions for Images

ImageGear JPEG2K Format Filter allows you to save JPEG2000 Part I image file using such compression:

    • IG_COMPRESSION_JPEG2K - for 1, 4, 8, 16, 24, 32 bpp

JPEG2000 Format Filter Control Parameters

ImageGear provides the following control parameters for JPEG2000 Format filter:

  • CODE_BLOCK_SIZE
  • CODE_BLOCK_STYLE
  • DISCARD_LEVELS
  • DISPLAY_OPTIMIZED
  • FILE_FORMAT
  • MODE
  • PROGRESSION_ORDER
  • QUALITY_LAYERS
  • QUANT_STEP
  • RATE_BYTES
  • STITCH_TILES
  • TILE_HEIGHT
  • TILE_WIDTH
  • VIEW_HEIGHT
  • VIEW_WIDTH
  • WAVELET_FILTER
  • WAVELET_LEVELS


JPX Format Support

JPEG2000 Standard Part II defines JPX file architecture rather than a specific, fixed set of data structures that will be found in a file. The ImageGear JPEG2K component provides you with the support of the following important JPX features:

  • In addition to the JP2 color spaces, JPX offers much richer set of color descriptions. These include a much larger set of colour spaces, arbitrary ICC profiles, and vendor-specific colour spaces. ImageGear JPEG2K Component understands more than fifteen color spaces.
  • ImageGear JPEG2K Component allows you to manipulate JPX files with many compositing layers. LOAD_COMPOSITION control parameter allows switching between loading of single layer and loading result composition of all available layers according to composition rules, resided within the file.
  • JPX file format extends JP2 with ability to separate transparency channels into different codestreams. In many image editing applications, the color data and the opacity data are edited separately, and thus it is useful to allow those channels to be stored in separate codestreams.
  • JPX file format (and ImageGear JPEG2K Component) allows for specification of fully transparent samples through a chroma-key. File format specifies an array of sample values, one from each color channel. Image locations that contain that combination of sample values shall be considered fully transparent. Desired value of the transparent pixels can be manages thought "Croma" value of assigned metadata.
  • User controlled reading/writing of JPEG2000 format metadata (XML and IPR). Non-image information (XML and IPR) does not affect the decoding or visual appearance of the image itself. See also JPEG2000 Part II (JPX) Metadata Tags and Non-image Dataset Structure for JPX as well as "XML" and "IPR".

If you attach JPEG2K Component to core ImageGear it allows you to initialize JPX Format Filter functionality, that can be accessed through core ImageGear Format Filter API. JPX Format Filter supports some features of JPEG2000 Part II (JPX) format file processing. These features are determined by IG_FLTR_ flags. This format filter also allows you to save JPX images with different compressions depending on image bit depth.

Supported Features

ImageGear JPX Format Filter supports the following features of JPEG2000 Part II (JPX) file processing:

    • IG_FLTR_DETECTSUPPORT - autodetection.
    • IG_FLTR_PAGEREADSUPPORT - single-page file reading.
    • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing.
    • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading.
    • IG_FLTR_MPAGEWRITEPSUPPORT - multi-page file writing.

You can detect, read and write JPX files.

Supported Compressions for Images

ImageGear JPX Format Filter allows you to save JPEG2000 Part II (JPX) image file using such compression:

    • IG_COMPRESSION_JPEG2K - for 1, 4, 8, 16, 24, 32 bpp

JPX Format Filter Control Parameters

ImageGear provides the following control parameters for JPX Format filter:

  • CODE_BLOCK_SIZE
  • CODE_BLOCK_STYLE
  • DISCARD_LEVELS
  • DISPLAY_OPTIMIZED
  • FILE_FORMAT
  • LOAD_COMPOSITION
  • MODE
  • PROGRESSION_ORDER
  • QUALITY_LAYERS
  • QUANT_STEP
  • RATE_BYTES
  • STITCH_TILES
  • TILE_HEIGHT
  • TILE_WIDTH
  • VIEW_HEIGHT
  • VIEW_WIDTH
  • WAVELET_FILTER
  • WAVELET_LEVELS


MJ2 Format Support

Support of Motion JPEG2000 file format (MJ2) is based on support of JP2 file formats, since MJ2 is designed to contain one or more motion sequences of JPEG2000 images. Thus ImageGear JPEG2K component is able to handle all features of single image which can be extracted from any track, available in MJ2 file. To select particular video track VIDEO_TRACK control parame ter should be used.

If you attach JPEG2K Component to core ImageGear it allows you to initialize Motion JPEG2000 (MJ2) Format Filter functionality, that can be accessed through core ImageGear Format Filter API. MJ2 Format Filter supports some features of JPEG2000 Part III (MJ2) format file processing.

Supported Features

ImageGear MJ2 Format Filter supports the following features of JPEG2000 Part III (MJ2) file processing:

  • IG_FLTR_DETECTSUPPORT - autodetection.
  • IG_FLTR_PAGEREADSUPPORT - single page file reading.
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading.

You can detect and read MJ2 files using properties and methods from ImageGear Format Filters API.

Supported Compressions for Images

ImageGear MJ2 Format Filter allows you to save JPEG2000 Part III (MJ2) image file using such compression:

    • IG_COMPRESSION_JPEG2K - for 1, 4, 8, 16, 24, 32 bpp

MJ2 Format Filter Control Parameters

ImageGear provides the following control parameters for MJ2 Format filter:

  • CODE_BLOCK_SIZE
  • CODE_BLOCK_STYLE
  • DISCARD_LEVELS
  • DISPLAY_OPTIMIZED
  • FILE_FORMAT
  • MODE
  • PROGRESSION_ORDER
  • QUALITY_LAYERS
  • QUANT_STEP
  • RATE_BYTES
  • STITCH_TILES
  • TILE_HEIGHT
  • TILE_WIDTH
  • VIDEO_TRACK
  • VIEW_HEIGHT
  • VIEW_WIDTH
  • WAVELET_FILTER
  • WAVELET_LEVELS


JP2, JPX and MJ2 Format Filters Control Parameters Reference

This section contains detailed information about ImageGear JP2, JPX and MJ2 format filters control parameters. Use ImageGear objects IGControlParameter and IGFormatParams to get/set value, name, count of control parameters as well as to retrieve information about it. For the detailed information about these objects properties and methods please, see the Chapter ImageGear Formats Component API Reference.


JPEG2K Control Parameters

Currently ImageGear JPEG2K component provides the following control parameters:

  • CODE_BLOCK_SIZE
  • CODE_BLOCK_STYLE
  • DISCARD_LEVELS
  • DISPLAY_OPTIMIZED
  • FILE_FORMAT
  • ICC_PROFILE_MODE
  • LOAD_COMPOSITION
  • MODE
  • PROGRESSION_ORDER
  • QUALITY_LAYERS
  • QUANT_STEP
  • RATE_BYTES
  • STITCH_TILES
  • TILE_HEIGHT
  • TILE_WIDTH
  • VIDEO_TRACK
  • VIEW_HEIGHT
  • VIEW_WIDTH
  • WAVELET_FILTER
  • WAVELET_LEVELS


CODE_BLOCK_SIZE

Group: Control Parameter

Data type: AT_INT

Purpose:

Nominal code-block dimension. Actual dimension is the subject to precinct, tile and image dimensions.

Valid Values:

Must be powers of 2 and no less than 4.

Default Value: 64

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CODE_BLOCK_STYLE

Group: Control Parameter

Data type: enumJPEG2KCodeBlockStyles

Purpose:

Block coder mode switches. Any combination of values from enumJPEG2KCodeBlockStyles is legal.

Valid Values:

IG_JPEG2K_CODE_BLOCK_STYLE_ALL_OFF = 0,

IG_JPEG2K_CODE_BLOCK_STYLE_BYPASS = 1,

IG_JPEG2K_CODE_BLOCK_STYLE_RESET = 2,

IG_JPEG2K_CODE_BLOCK_STYLE_RESTART = 4,

IG_JPEG2K_CODE_BLOCK_STYLE_CAUSAL = 8,

IG_JPEG2K_CODE_BLOCK_STYLE_ERTERM = 16,

IG_JPEG2K_CODE_BLOCK_STYLE_SEGMARK = 32

Default Value:

IG_JPEG2K_CODE_BLOCK_STYLE_ALL_OFF


DISCARD_LEVELS

Group: Control Parameter

Data type: INT

Purpose:

This parameter affects the decompression process. It allows to load reduced version of image, which takes less time then loading of the whole image.

It This parameter indicates the number of highest resolution DWT levels which will not appear at the output image. Image dimensions are essentially divided by 2 to the power of this number. If specified number exceeds the number of DWT levels then it will be set to the maximal possible value.

To allow using DISCARD_LEVELS parameter on images saved by ImageGear you must save images with WAVELET_LEVELS parameter set to more then one level.

Valid Values:

From 0 to maximal value depends on DWT levels in compressed JPEG2000 image.

Default Value: 0

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DISPLAY_OPTIMIZED

Group: Control Parameter

Data type: Boolean

Purpose:

This parameter forces filter to produce RGB24 images regardless of original colorspace, alpha channels and bit depth. It's necessary to note, that this parameter doesn't suppose faster load. Although current implementation uses Kakadu's workhorse clases, some slowdown is available due to differencies in Kakadu and ImageGear RGB24 representation. Kakadu uses 32 bits per pixels whetheras ImageGear - 24. Thus additional loop is performed to convert result raster from 32-bit RGB to 24-bit.

Here are some results of performance for different types of viewing area:

  • 300K image:

Testing image: {3072x2048}.

Viewing Area: {640x480}.

'As Is Load' time: 0.543000 (sec.).

'Screen Bounded Load' time: 0.066250 (sec.).

  • 1.8Mb image:

Testing image: {3072x2048}.

Viewing Area: {800x600}.

'As Is Load' time: 1.160000 (sec.).

'Screen Bounded Load' time: 0.332000 (sec.).

NOTE: This parameter was designed for those customers, who need only to display images. This parameter forces JP2 filter to use Kakadu native high-level classes that do all data processing in its own way avoiding temporary transformations from Kakadu to ImageGear structures.

Valid Values:

TRUE, FALSE

Default Value:

FALSE


FILE_FORMAT

Group: Control Parameter

Data type: INT

Purpose:

Specifies whether the result file will be a JP2-compatible file or a raw JPEG2000 code-stream. Fully JP2/JPX compatible file contains various metadata such as resolution, colorspace, palette, XML, etc. Raw code-stream does not store any metadata.

Valid Values:

  • IG_JPEG2K_FORMAT_CODESTREAM = 0
  • IG_JPEG2K_FORMAT_JP2 = 1

Default Value:

IG_JPEG2K_FORMAT_JP2 = 1


ICC_PROFILE_MODE

Group: Control Parameter

Data type:

INT

Purpose:

Specifies the usage mode for ICC profiles embedded into JPEG2K and JPX images.

There are two possible values of this control:

  • JPEG2K_ICC_PROFILE_LOAD: ImageGear loads the embedded profile and attaches it to the image. It does not apply the profile to image pixels during loading. If ImageGear ICC support is enabled, ImageGear uses this profile for image display and for colorspace conversion.
  • JPEG2K_ICC_PROFILE_APPLY: ImageGear converts the image to sRGB colorspace using the embedded profile, during loading. Use this mode for compatibility with ImageGear version 15.1 and earlier.

Valid Values:

  • JPEG2K_ICC_PROFILE_LOAD = 0
  • JPEG2K_ICC_PROFILE_APPLY = 1

Default Value:

JPEG2K_ICC_PROFILE_LOAD


LOAD_COMPOSITION

Group: Control Parameter

Data type: Boolean

Purpose:

This parameters affects JPX filter only and allows switching between loading of single layer and loading result composition of all available layers according to composition rules, resided within JPX file.

Valid Values:

FALSE, TRUE

Default Value:

FALSE


MODE

Group: Control Parameter

Data type: INT

Purpose:

Specifies the mode of the reading process. There are three possible values of this control:

    • IG_JPEG2K_MODE_FAST - The fast mode is used by default. In this case, compliance is assumed and checking is minimized; there is no attempt to recover from any errors.
    • IG_JPEG2K_MODE_FUSSY - In the fussy mode, the code-stream management machinery makes a serious attempt to identify compliance violations and generates an appropriate terminal error message if it finds one.
    • IG_JPEG2K_MODE_RESILIENT - In the resilient mode, the code-stream management machinery makes a serious attempt to both detect and recover from errors in the code-stream. We attempt to guarantee that decompression will not fail, so long as the main header is uncorrupted and there is only one tile with one tile-part.

Valid Values:

  • IG_JPEG2K_MODE_FAST = 0
  • IG_JPEG2K_MODE_FUSSY = 1
  • IG_JPEG2K_MODE_RESILIENT = 2

Default Value: IG_JPEG2K_MODE_FAST = 0

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PROGRESSION_ORDER

Group: Control Parameter

Data type: enumJPEG2KProgressionOrders

Purpose:

This parameter specifies progression order. Any constant from enumJPEG2KProgressionOrders enumeration is valid.

Valid Values:

IG_JPEG2K_PROGRESSION_ORDER_LRCP = 0,

IG_JPEG2K_PROGRESSION_ORDER_RLCP = 1,

IG_JPEG2K_PROGRESSION_ORDER_RPCL = 2,

IG_JPEG2K_PROGRESSION_ORDER_PCRL = 3,

IG_JPEG2K_PROGRESSION_ORDER_CPRL = 4

Default Value:

IG_JPEG2K_PROGRESSION_ORDER_LRCP


QUALITY_LAYERS

Group: Control Parameter

Data type: AT_DOUBLE | AT_LP

Purpose:

This parameter represents more powerful variant of RATE_BYTES control parameter. Its value is an array of one or more bit-rates, expressed in terms of the ratio between the total number of compressed bits (including headers) and the largest horizontal and vertical image component dimensions. The number of elements in array represents the number of quality layers. If parameter is NULL, then RATE_BYTES parameter is used to limit the output codestream.

Valid Values:

Default Value:

NULL


QUANT_STEP

Group: Control Parameter

Data type: DOUBLE

Purpose:

This control parameter is the base step size to be used in deriving irreversible quantization step sizes for every subband.

NOTE: This control parameter is mostly used for 16g images.

Valid Values: the range from 0 to 2

Default Value: 1/256

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RATE_BYTES

Group: Control Parameter

Data type: INT

Purpose:

This control parameter specifies maximal size of the compressed data in bytes. Supplying non-zero value causes filter to produce codestream with the size not greater than specified value. Zero (default) value instructs filter to use lossless compression.

NOTE: Using the same value for different images causes filter to write files with different compression quality. This happens because RATE_BYTES specifies size of final codestream and thus filter is obligated to use more loss compression for bigger images.

Dividing size of unpacked image (DIB) to some number and specifying result as value of RATE_BYTES parameter simulates quality lost coefficient.

For example, uncompressed truecolor image with 800x600 dimensions has 1,440,000 bytes size. Setting 480,000 as RATE_BYTES value instructs filter to compress image in three times.

Valid Values: 0 - (2^32 - 1)

Default Value: 0

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


STITCH_TILES

Group: Control Parameter

Data type: AT_BOOL

Purpose:

This parameter specifies the way tiled images should be loaded. If TRUE then all tiles are stitched into image. If FALSE, then the single tile can be loaded.

Valid Values:

TRUE, FALSE

Default Value:

TRUE


TILE_HEIGHT

Group: Control Parameter

Data type: INT

Purpose:

Specifies the height of one tile in the reference grid. A zero value indicates the image's height.

Valid Values: 0 - (2^32 - 1)

Default Value: 0

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TILE_WIDTH

Group: Control Parameter

Data type: INT

Purpose:

Specifies the width of one tile in reference grid. A zero value indicates the image's width.

Valid Values: 0 - (2^32 - 1)

Default Value: 0

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


VIDEO_TRACK

Group: Control Parameter

Purpose:

This parameter available for Motions JPEG2000 filter and specifies video tracks from which frame should be loaded.

Valid Values:

Any non-zero value.

Default Value:

1


VIEW_HEIGHT

Group: Control Parameter

Data type:

Int32

Default Value:

0

Valid Values:

0 - (2^32 - 1)

Description:

This parameter is used for loading reduced copies of big images. If the value is nonzero, ImageGear only loads DWT levels which width is not greater than parameter value. Dimensions of each decomposition level are twice greater than that of previous level. A zero value indicates the initial image's height. This parameter is similar to DISCARD_LEVELS in that it allows to select the highest resolution level for image loading.


VIEW_WIDTH

Group: Control Parameter

Data type:

Int32

Default Value:

0

Valid Values:

0 - (2^32 - 1)

Description:

This parameter is used for loading reduced copies of big images. If the value is nonzero, ImageGear only loads DWT levels which width is not greater than parameter value. Dimensions of each decomposition level are twice greater than that of previous level. A zero value indicates the initial image's width. This parameter is similar to DISCARD_LEVELS in that it allows to select the highest resolution level for image loading.


WAVELET_FILTER

Group: Control Parameter

Data type: INT

Purpose:

Specifies the type of Wavelet filter to be used for Wavelet Discrete Transform:

  • IG_JPEG2K_FILTER_AUTO automatically selects the best transform depending on image type. It selects irreversible transform for true color and grayscale images, and reversible transform for paletted images.
  • IG_JPEG2K_FILTER_REVERSIBLE is a reversible transform based on 5\3 filter. This mode allows saving JP2 filter as lossless.
  • IG_JPEG2K_FILTER_IRREVERSIBLE is an irreversible transform based on Daubechies 9\7 filter. It allows JP2 filter to apply lossy compression. The amount of loss and compression ratio are defined by other parameters, such as RATE_BYTES and QUALITY_LAYERS.
NOTE: Selecting the IG_JPEG2K_FILTER_REVERSIBLE filter does not guarantee that image will be saved without loss of quality. To save the image in lossless mode, set RATE_BYTES to 0.
NOTE: Applying irreversible transform to paletted images may result in significant degradation of image quality, because small changes in pixel values may result in significant visual difference after application of palette. Consider using reversible transform for paletted images, or promote images to true color and then use reversible transform.

Valid Values:

  • IG_JPEG2K_FILTER_AUTO = -1
  • IG_JPEG2K_FILTER_REVERSIBLE = 0
  • IG_JPEG2K_FILTER_IRREVERSIBLE = 1

Default Value: IG_JPEG2K_FILTER_AUTO = -1

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


WAVELET_LEVELS

Group: Control Parameter

Data type: INT

Purpose:

Specifies quantity of decomposition levels (stages) for image being saved. Main purpose of each level is to provide ability to faster decompress reduced in size version of original image. Level number defines size of reduced image: level[0] allows to get whole image, level[1] lets get original image reduced in two times by each dimension, level[2] - allows get into four times and etc.

The default value for this parameter is '-1', which tells ImageGear to select the value automatically depending on image type. In this mode, ImageGear uses 0 for paletted images and 5 for other cases.

Valid Values: -1 - 16

Default Value: -1

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


JPIP Client Support

NOTE: AccuSoft JPIP client API currently supports JPEG2000 Part I (JP2, JPC, J2K, J2C) format only.

ImageGear JPIP client API can be used by an application to efficiently and dynamically stream portions of a JPEG2000-compressed image over a network. The application based on this API can:

  1. establish a session over which multiple regions of interest within an image may be streamed from a JPIP server
  2. efficiently extract these regions of interest from the cached compressed data on the client side

This makes it possible to vary the region of interest over time to meet the changing needs of an interactive application, and to interactively explore images that are so large that they could not be held in memory in uncompressed form.

The application can use this API to perform the following main tasks:

  • Connect to a JPIP server
  • Request access to a JPEG2000-compressed image
  • Retrieve information about the image, such as dimensions and component configuration
  • Retrieve compressed image data for regions of interest within the image
  • Retrieve image metadata
  • Decompress regions of the image into memory (HIGEAR object)

Region of interest/window

This is a combination of several parameters which define a region of interest in an image for the purpose of interactively requesting image data transfer from a JPIP server. The parameters are as follows:

  • Spatial region of interest - defines a rectangular spatial area of the image.
  • Resolution - typically set according to user's zoom level.
  • Max quality layers - can be varied by the client for progressive display.
  • Image component(s) - typically channels (i.e. RGBA), but can also be used to access slices in a medical image.

An application varies these parameters and sends new windows to the JPIP server as the user takes actions such as panning and zooming, or to facilitate progressive display.

How to use JPIP client API

Connect to JPIP server with IGJPIPClient. Connect method.

  • Wait until information about the image has been received. (Use IGJPIPClient.StatusChange event to wait for a network event, access the event's IGJPIPClientStatusEventParams . Status to get status, and see if IsValidImage is True.)
  • Get information about the image with IGJPIPClient.GetImageInfo. Use this to inform the user, set up user interface, possibly allocate a HIGEAR to use as a frame buffer.
  • Set a region of interest with IGJPIPClientWindow object.
  • Respond to network events:
    • Get current session status with GetStatus.
    • If IsModifiedWindow is True, the server has modified the window. Use GetWindowInProgress to get the new window. The user may need to be notified, or the user interface may need to be updated.
    • Update user interface to indicate status, progress.
    • If enough new data has been transferred, get updated image data using ExportImage and repaint the display.
  • Respond to user events:
    • If user's ROI has changed, set new window with IGJPIPClientWindow object.
    • If display area or parameters have changed, get updated image data using ExportImage and repaint the display.


JPIP Server Support

NOTE: AccuSoft JPIP server API currently supports JPEG2000 Part I (JP2, JPC, J2K, J2C) format only.

ImageGear JPIP server API can be used to implement a JPIP server capable of efficiently and dynamically streaming portions of a JPEG2000-compressed image over a network. A JPIP client can establish a session over which multiple regions of interest within an image may be streamed from the JPIP server. This makes it possible to vary the region of interest over time to meet the changing needs of an interactive application.

An application can use this JPIP server API to perform the following main tasks:

  • Set server settings
  • Start and stop the server
  • Monitor server log and error messages
  • Monitor incoming requests and grant or deny them
  • Supply a JPEG2000 image on the fly (from a file or memory buffer) to use as a request response

How to use JPIP server API

  • Set server parameters with IGJPIPServerParams object properties.
  • Start the server with IGJPIPServer . Start method.
  • Stop the server object with IGJPIPServer.Stop method.


Using ImageGear MD Component

The IGMedCtl control is used for several purposes. It is a Format Filter, and as such is used exactly like the other Format Filters described in the Loading, Saving and Acquiring Images section. It allows your application to load and save images in the DICOM file format. In addition, it contains functions like those in IGPageDisplay that are used to control the rendering of the DICOM image. Also, it has some image-manipulation functions, like those in IGProcessingCtl. Finally, it contains functions for reading, creating and maintaining the non-image data (the Part-10 header and the Data Set), like those in Working with Non-image Data.

The format support of the MD component includes loading and saving grayscale, palettized, and true color medical images using the following file formats:

  • DICOM 3.0 Part 10-compliant images
  • DICOM 3.0 Raw Format (non-Part 10-compliant)

In addition, your application will continue to support all ImageGear-supported file formats-meaning that you can convert an image of a different format to a medical image format, and vice versa.

As described in Operational Concepts section, you use the IGMedCtl ActiveX control by placing it into the UI of your application, using the graphic designer of your development environment. In the code for your application, in the startup sequence, you must associate the control with your IGCoreCtl, before calling any of its methods:

IGCoreCtl1.License.SetSolutionName "AccuSoft 1-100-16"
IGCoreCtl1.Result.NotificationMode = IG_ERR_NO_ACTION
IGCoreCtl1.AssociateComponent IGMedCtl1.ComponentInterface

If your application needs to access the Data Set or the Part 10 Header in the DICOM file (the non-image data), then it will need a data dictionary object (this object contains the "schema" of the DICOM Data Set, which defines the hierarchical organization of the tags in the Data Set). Obtaining the data dictionary is simple:

Dim datadict As IGMedDataDict
Set datadict = IGMedCtl1.DataDict

Your application must then create an IGPage object, plus an IGMedPage object (this holds the non-image data from the DICOM file), and load a DICOM file into them. The following example shows the use of LoadPageFromFile, but any of the techniques in Loading, Saving and Acquiring Images section could be used:

Dim page As IGPage
Dim medpage as IGMedPage
IGCoreCtl1.AssociateComponent IGFormatsCtl1.ComponentInterface
Set page = IGCoreCtl1.CreatePage
Set medpage = IGMedCtl1.CreateMedPage(page)
IGFormatsCtl1.LoadPageFromFile page, "myfile.dcm", 0

Next, your application must create an IGPageDisplay object for the IGPage, and then associate the IGPageDisplay with the IGPageViewCtl in the user interface.. This is done as follows:

Dim display As IGPageDisplay
Set display = IGDisplayCtl1.CreatePageDisplay(page, True)
IGPageViewCtl1.PageDisplay = display

At this point, the image is displayed in the application's user interface. Your application program can perform specialized 12- and 16-bit grayscale display functions by accessing the IGMedDisplay object associated with your IGMedPage. For example, to reset the contrast Window Level, do the following:

Dim contrast As IGMedContrast
Set contrast = IGMedCtl1.CreateObject(MED_OBJ_CONTRAST)
contrast.WindowCenter = 4096
contrast.WindowWidth = 1024
medpage.Display.AdjustContrastAuto contrast
IGPageViewCtl1.UpdateView

Your application can perform specialized 12- and 16-bit grayscale image processing by accessing the IGMedProcessing object associated with your IGMedPage. For example, to convert a 12-bit image to 8-bit using the current Window Level settings, do the following:

medpage.Processing.ReduceWithDisplayLUT
IGPageViewCtl1.UpdateView

Finally, your application can perform DICOM Part 10 Header and Data Set functions by accessing the IGMedDataElem object associated with your IGMedPage. For example, the following code gets the VR info from the first element in the DICOM Data Set:

Dim CurrElem As IGMedDataElem
Dim VRInfo As IGMedVRInfo
medpage.DataSet.MoveFirst MED_DCM_MOVE_LEVEL_FLOAT
Set CurrElem = medpage.DataSet.CurrElem
Set VRInfo = MedDataDict.GetVRInfo(CurrElem.VR)

Please refer to the ImageGear MD Component API Reference for complete descriptions of the IGMedCtl functionality.


Loading and Saving DICOM Images

With the MD component loaded, your application is ready to load and save DICOM image files in addition to the file formats normally supported by ImageGear.

Supported features:

  • IG_FLTR_DETECTSUPPORT - autodetection.
  • IG_FLTR_PAGEREADSUPPORT - single page file reading.
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing.
  • IG_FLTR_PAGEDELETESUPPORT - page deleting from multi-page files
  • IG_FLTR_MPAGEWRITEPSUPPORT - multi-page file writing.

Supported Compressions for Images:

  • IG_COMPRESSION_NONE - 8, 9-16, 24 bpp
  • IG_COMPRESSION_JPEG - 8, 9-16, 24 bpp
  • IG_COMPRESSION_JPEG2K - 8, 9-16, 24 bpp
  • IG_COMPRESSION_RLE - 8, 9-16, 24 bpp

Loading DICOM Images

Load DICOM images in the same way as you load images of all other formats, using one of the Formats Component loading methods. You can use Page or Document loading modes, and all Image Sources that are supported by the Formats Component. Use DICOM Filter Control Parameters to control loading of the DICOM images. See also the section Using ImageGear MD Component in Chapter Using ImageGear.

Saving DICOM Images

Save DICOM images in the same way as you save images of all other formats, using one of the Formats Component saving methods. You can use Page or Document saving modes, and all Image Sources that are supported for writing by the Formats Component. Use DICOM Filter Control Parameters to control saving of the DICOM images. See also the section Using ImageGear MD Component in Chapter Using ImageGear.

The important requirement for saving a DICOM image is that the image must have a DICOM DataSet structure attached to it. If it does not have a DataSet, the saving function will return an error. If the image being saved out was originally a DICOM image (and assuming that you have not altered its Data Set to contain illegal values), you can save it by simply calling one of the IGFormatsCtl saving functions.

If the image was loaded from a non-DICOM file, you need to add a DataSet to the image, and fill it with appropriate Data Elements. Please remember that it is up to you to add all the Mandatory Data Elements to make it a valid DICOM file. When you create the Data Set, a handful of basic Data Elements are added to it. These values were taken from the image. Note that they are not sufficient to satisfy the requirements of the DICOM Standard. For instruction on how to create and fill a Data Set see the section Working With DICOM Data Structures.

You can specify a compression when saving a DICOM image file. The following table lists supported compression modes and the corresponding DICOM Transfer Syntaxes:

IG_COMPRESSION_NONE
MED_DCM_TS_IMPLICIT_VR_LE
IG_COMPRESSION_JPEG
MED_DCM_TS_JPEG_LOSSY
IG_COMPRESSION_RLE
MED_DCM_TS_RLE
IG_COMPRESSION_JPEG2K
MED_DCM_TS_JPEG_2K

Use SAVE_SYNTAX control parameter to save a DICOM image with other Transfer Syntaxes.

Saving DICOM Images with JPEG Compression

ImageGear supports the following modes for saving JPEG compressed DICOM images:

JPEG Lossy Baseline or Extended

This is the default mode for saving DICOM images with JPEG compression in ImageGear. In this mode, depending on the channel depth of the source image, ImageGear saves it as either 8 bits per channel, using "JPEG Baseline (Process 1)" transfer syntax, or as 9..12 bits per channel, using "JPEG Extended (Process 2 & 4)" transfer syntax.

Use one of these ways to save an image as DICOM JPEG Baseline or Extended:

  • Save the image, passing IG_FORMAT_DCM | IG_COMPRESSION_JPEG << 16 to the SaveFormat parameter. JPEG control parameter SAVE_TYPE should be set to IG_JPG_LOSSY. DICOM control parameter SAVE_SYNTAX is ignored.
  • Save the image as IG_FORMAT_DCM. Set DICOM control parameter SAVE_SYNTAX to either MED_DCM_TS_JPEG_LOSSY or MED_DCM_TS_JPEG_EXTENDED_PR_2_4. JPEG control parameter SAVE_TYPE is ignored.
JPEG Lossy Baseline Only

This mode provides compatibility with viewers that do not support JPEG Extended coding process (12-bit images). In this mode ImageGear saves images as 8 bits per channel, using "JPEG Baseline (Process 1)" transfer syntax. If the image has greater bit depth, ImageGear reduces it to 8 bits per channel for saving.

To save an image as DICOM JPEG Baseline, use IG_FORMAT_DCM saving format. Set DICOM control parameter SAVE_SYNTAX to MED_DCM_TS_JPEG_BASELINE_PR_1_ONLY. JPEG control parameter SAVE_TYPE is ignored.

NOTE: For compatibility with earlier versions of ImageGear, MED_DCM_TS_JPEG_BASELINE_PR_1 constant has the same meaning as MED_DCM_TS_JPEG_LOSSY: the image is saved using either Baseline or Extended process. To save with the Baseline process, make sure to use MED_DCM_TS_JPEG_BASELINE_PR_1_ONLY constant.
JPEG Lossless

In this mode, depending on the channel depth of the source image, ImageGear saves it as 8...16 bits per channel, using "JPEG Lossless, Non-Hierarchical (Process 14)" transfer syntax.

Use one of these ways to save an image as DICOM JPEG Lossless:

  • Save the image, passing IG_FORMAT_DCM | IG_COMPRESSION_JPEG << 16 to the SaveFormat parameter. Set JPEG control parameter SAVE_TYPE to IG_JPG_LOSSLESS. DICOM control parameter SAVE_SYNTAX is ignored.
  • Save the image as IG_FORMAT_DCM. Set DICOM control parameter SAVE_SYNTAX to either MED_DCM_TS_JPEG_LOSSLESS, or MED_DCM_TS_JPEG_LOSSLESS_FIRSTORDER. JPEG control parameter SAVE_TYPE is ignored.

Saving a Multiframe DICOM Image

ImageGear Medical component allows to save single-frame as well as multiframe (multipage) images.

Use the following steps to create a multiframe DICOM image from individual IGPage objects:

    • Create or load first frame into IGPage.
    • Create the DataSet if it is not present.
    • Add the DCM_TAG_NumberOfFrames tag to the DataSet, if it is not present. Value of this tag is irrelevant but its presence is necessary.
    • Save the image using any standard ImageGear saving function. (Saving functions from Medical component do not support saving multiframe images.)
    • * Create or load second frame into IGPage.
    • Create Data Set if it is not present.
    • Add the DCM_TAG_NumberOfFrames tag to the Data Set, if it is not present.
    • Save the image, specifying the same file name that you used for the first frame.

* Repeat for all consequent frames.

Use the following steps to save an IGDocument as DICOM:

    • Create or load all pages of the IGDocument.
    • Add DataSets to all pages of the document, if they are not present.
    • Add the DCM_TAG_NumberOfFrames tag to the DataSet, if it is not present. Value of this tag is irrelevant but its presence is necessary.
    • Save the Document.
NOTE: It is important to note that only a few DICOM modalities allow the presence of multiple frames in the image, while the others do not. When you try to add a frame to an existing DICOM file, ImageGear checks the file for presence of the NumberOfFrames (0028, 0008) Data Element. If it is present ImageGear tries to append the frame, otherwise ImageGear considers the file as belonging to a single-frame modality and returns an error.

Several limitations that are imposed by the DICOM standard are listed below.

    • All frames of the image should have same dimensions, bit depth and photometric interpretation. All frames should use the same Transfer Syntax (compression). ImageGear returns an error if these conditions are not met.
    • ImageGear Medical only supports appending a frame at the end of the DICOM image, but not insertion or overwriting of frames.
    • ImageGear Medical writes the DICOM DataSet only when writing the first frame, and does not modify it when adding frames. The only exclusion is the "Number Of Frames" Data Element, which is always kept consistent with the actual number of frames.
    • Number of Frames Data Element has the Value Representation of Integer String. i.e., the integer value is represented by an ASCII string. ImageGear Medical uses all of the 14 positions for storing the Number Of Frames Data Element. This allows to rewrite Number of Frames without shifting the whole DataSet. IG Medical will not append a frame to a file where Value Length of the Number of Frames DE is less than 14 (for example, if the file has been created by some other vendor).

If you need to insert or delete a frame, or modify DataSet in the DICOM image, create a new image with the modified DataSet, copy necessary frames to it, and then delete the original image.


DICOM Filter Control Parameters

The Medical Component provides the following filter control parameters for loading DICOM images:

    • DETECT_CONTINUOUS_RLE
    • LOAD_CONCAT_REPEATED_DE
    • LOAD_CONVERTTO8G
    • LOAD_DETECTSKIPDIMSE
    • LOAD_MASKALPHACHANNEL
    • LOAD_PAGENUMBER
    • LOAD_SAVE_PIXDATA_TAG
    • LOAD_SYNTAX
    • LOAD_USE_8x8_LUT
    • LOAD_USE_AUTO_WL_FOR_8G

and the following filter control parameters for saving DICOM images:

    • SAVE_ASPART10
    • SAVE_GROUPLENGTHS
    • SAVE_JPEGQUALITY
    • SAVE_LARGEST
    • SAVE_PLANARCONFIG
    • SAVE_SMALLEST
    • SAVE_SYNTAX

The Medical Component uses JPEG and JPEG 2000 format filters for loading and saving compressed DICOM images. Control parameters of JPEG and JPEG 2000 filters are taken into account when loading or saving such images (see JPEG and ImageGear JPEG2000 Component API Reference).


DETECT_CONTINUOUS_RLE

Group: Control Parameter

Description:

This parameter specifies what to do with RLE compressed images where RLE runs across row boundaries. If it is set to TRUE, ImageGear tries to detect and load images where RLE runs across row boundaries. Otherwise, ImageGear truncates any row overruns and decodes each row separately. This parameter does not affect the loading of properly encoded images, where each row is encoded separately.

Type:

Boolean

Default:

TRUE

Settings:

TRUE, FALSE


LOAD_CONCAT_REPEATED_DE

Group: Control Parameter

Description:

If this parameter is TRUE then concatenate duplicated tags data, FALSE otherwise.

Type:

Boolean

Default Value:

FALSE

Settings:

TRUE, FALSE


LOAD_CONVERTTO8G

Group: Control Parameter

This parameters is not used any longer. Use medical image processing functions instead.


LOAD_DETECTSKIPDIMSE

Group: Control Parameter

Description:

This option controls loading process if a DICOM image contains DIMSE commands. DIMSE commands are a type of Data Element, with a group number of "0000" that are almost always removed by the DICOM network protocol before a transmitted image is saved to a disk file. However, sometimes they are found in the file and in such case ImageGear doesn't automatically recognize the file as a DICOM image. This is done because the DIMSE Tags are very hard to differentiate from other file formats that ImageGear supports. However, if DCM_CONTROL_LOAD_DETECT_SKIP_DIMSE is set to TRUE then the auto format detection skips over the DIMSE Tags when it attempts to decide if the file is DICOM or not.

Type: Boolean

Default Value: False

Settings:

  • False- ImageGear will not detect DICOM image files that contain DIMSE commands.
  • True - Allow DIMSE commands and attempt to parse the file as a valid DICOM file.


LOAD_MASKALPHACHANNEL

Group: Control Parameter

Description:

This option controls what would have done if an Alpha Channel image has been stuffed into the upper unused bits of a 16-bit image (Bits Stored < 16). These extra bits can be masked off or loaded along with the actual pixel value. If they are not masked off, you may need to alter the 16x8 LUT in order to display the image appropriately.

Type: Boolean

Default Value: True

Settings:

  • True - The extra bits (the Alpha Channel) are masked off.
  • False - The extra bits will be loaded into the DIB with the rest of the pixel.


LOAD_PAGENUMBER

Group: Control Parameter

This parameter is not supported now. Instead, please use parameters of the Formats Component saving functions. See ImageGear Formats Component API Reference Chapter.


LOAD_SAVE_PIXDATA_TAG

Group: Control Parameter

Description:

When LOAD_SAVE_PIXDATA_TAG is TRUE, ImageGear does not read pixel data into a DIB, but rather creates an empty DIB, so the image cannot be displayed. When reading compressed image, IG Medical treats PixelData tag as a Sequence, and places actual binary data into Item tags. This corresponds to the structure of compressed PixelData in DICOM files. When using this parameter for writing, make sure that Transfer Syntax matches actual Transfer Syntax of the PixelData element.

Type:

Boolean

Default:

TRUE

Settings:

TRUE, FALSE


LOAD_SYNTAX

Group: Control Parameter

Description:

This parameter controls the types of DICOM files ImageGear attempts to detect. If the file that is being loaded does not fall into the category specified by this control parameter it will be ignored and a IGE_CANT_DETECT_FORMAT error will be returned.

Type: enumIGMedTS

Default Value: MED_DCM_TS_AUTODETECT = 9998

Settings:

  • MED_DCM_TS_AUTODETECT = 9998 - ImageGear makes its best to determine the format of the DICOM file.
  • MED_DCM_TS_PART_10 = 9997 - only files with Part 10 Header will be detected. The Transfer Syntax of the file will be determined from the header and used to load the remainder of the image file.

If you specify any standard DICOM Transfer Syntax, such as MED_DCM_TS_IMPLICIT_VR_LE or MED_DCM_TS_JPEG_LOSSY, the Medical Component will only load files having this Transfer Syntax.


LOAD_USE_8x8_LUT

Group: Control Parameter

Description:

If this parameter is TRUE then use 8x8 LUT for 8-bit images, otherwise use Palette.

Type:

Boolean

Default Value:

TRUE

Settings:

TRUE, False


LOAD_USE_AUTO_WL_FOR_8G

Group: Control Parameter

Description:

If this parameter is TRUE use auto window/level for 8g images, if VOI LUT is not present. If it is FALSE, use default 0...255 window/level.

Type:

Boolean

Default Value:

TRUE

Settings:

TRUE, False


SAVE_ASPART10

Group: Control Parameter

Description:

This parameter controls whether Meta Information Header is saved with the file, or not.

Type: Boolean

Default Value: True

Settings:

  • False - The image is saved as a raw DICOM file
  • True - The image is saved with a Part 10 header, making the file "Part 10-compliant".


SAVE_GROUPLENGTHS

Group: Control Parameter

Description:

This parameter controls the usage of Group Length values in a DICOM file. ImageGear treats these Data Elements as either on or off. That is they either are all included in each Group of Data Elements through the saving process or they are all absent. The internal Data Set that is attached to the HIGEAR does not contain Group Length Data Elements. When a DICOM file is to be written to disk they are computed and inserted if this parameter is set to TRUE.

Type: Boolean

Default Value: True

Settings:

  • True - Group Lengths are saved
  • False - Group Lengths are not saved


SAVE_JPEGQUALITY

Group: Control Parameter

This parameter is not supported now. Please use QUALITY control parameter of JPEG filter instead. Please see JPEG section in File Format Reference Chapter.


SAVE_LARGEST

Group: Control Parameter

Description:

Controls whether Largest Image Pixel Value (0028,0107) is updated by ImageGear.

If the original image Data Set did not contain a Data Element for Largest Image Pixel Value (0028,0107) and you set SAVE_LARGEST = True, ImageGear scans the image and determines a value for this DE. Largest Image Pixel Value is included in the Data Set of the DICOM image being saved and contains the ImageGear-determined value. The value of the DE from the original Data Set (if any) is ignored.

If you set SAVE_LARGEST = False, ImageGear does not determine this value for you, and the Data Set of the image being saved does not include the Largest Image Pixel Value Data Element. However, if the original Data Set did contain this DE, ImageGear preserves and includes it in the Data Set being saved

Type: Boolean

Default Value: False

Settings:

  • True - The Largest Image Pixel value DE (0028,0107) are set to the minimum pixel value found in the image when it is saved.
  • False - ImageGear does not update the Largest Image Pixel value DE when it saves a DICOM image.


SAVE_PLANARCONFIG

Description:

This parameter controls how the pixels are saved:

  • in normal RGB order ("pixel by pixel" configuration)
  • in a planar configuration meaning that all Red, Blue, and Green pixels are saved in separate planes

Type: AT_MODE

Default Value: MED_DCM_PLANAR_PIXEL_BY_PIXEL

Settings:

  • MED_DCM_PLANAR_PIXEL_BY_PIXEL - Pixels are saved in normal RGB order
  • MED_DCM_PLANAR_PLANE_BY_PLANE - Red, Blue, and Green are stored in separate planes.


SAVE_SMALLEST

Group: Control Parameter

Description:

This parameter controls whether ImageGear updates the Smallest Image Pixel Value (0028,0106).

If the original image Data Set did not contain a Data Element for Smallest Image Pixel Value (0028,0106) and you set SAVE_SMALLEST = True ImageGear scans the image and determines a value for this DE. Smallest Image Pixel Value are included in the Data Set of the DICOM image being saved, and contains the ImageGear-determined value. The value of the DE from the original Data Set (if any) are ignored.

If you set SAVE_SMALLEST = False ImageGear does not determine this value for you, and the Data Set of the image being saved does not include the Smallest Image Pixel Value Data Element. However, if the original Data Set did contain this DE, ImageGear preserves and includes it in the Data Set being saved.

Type: Boolean

Default Value: False

Settings:

  • True - The Smallest Image Pixel Value DE (0028,0106) is set to the minimum pixel value found in the image.
  • False - ImageGear does not update the Smallest Image Pixel Value (0028,0106) when saving a DICOM image.


SAVE_SYNTAX

Description:

This parameter controls how a DICOM file is to be formatted when it is written to disk. It does not control the file being Part 10 or Raw (see bSaveAsPart10), but controls how the non-Group 2 Data Elements are formatted. It also specifies the compression that will be used for Pixel Data.

Type: enumIGMedTS

Default Value: MED_DCM_TS_DEFAULT = 2

Settings:

See enumIGMedTS section.

  • MED_DCM_TS_IMPLICIT_VR_LE = 2
  • MED_DCM_TS_EXPLICIT_VR_LE = 3
  • MED_DCM_TS_EXPLICIT_VR_BE = 4
  • MED_DCM_TS_JPEG_LOSSY = 5
  • MED_DCM_TS_JPEG_LOSSLESS = 12
  • MED_DCM_TS_JPEG_LOSSLESS_FIRSTORDER = 22
  • MED_DCM_TS_JPEG_2K_LOSSLESS_ONLY = 157
  • MED_DCM_TS_JPEG_2K = 158
  • MED_DCM_TS_RLE = 522 RLE
  • MED_DCM_TS_DEFAULT = 2
  • MED_DCM_TS_UNKNOWN = 0
  • MED_DCM_TS_PART_10 = 9997
  • MED_DCM_TS_AUTODETECT = 9998


IGMedPage Object

IGMedPage object provides access to all objects that represent the medical features of an image. You do not have to deal with the IGMedPage object if you just need to load DICOM images, convert them to other formats, and view DICOM images using default display settings.

If you need to access the data stored with the DICOM image, convert non-DICOM images to DICOM format, display medical images using specialized display settings, and transform 16-bit images, you need to deal with the Medical Component API. All of the functionality related to data access, display and processing of a medical image is does through the IGMedPage object.

To get access to the Medical API, create a IGMedPage object, using CreateMedPage method of the IGMedCtl control. The following properties of the IGMedPage object provide access to medical Display and Image Processing functionality:

Feature
API Reference
Provides access to Medical Display functionality
Display
Provides access to Medical Image Processing functioanlty
Processing

DICOM Data Structures attached to the image

If you have loaded a non-DICOM image, and are going to save it to a DICOM file, you have to add the DataSet and FileMetaInfo to it. If you need to store any data in the Preamble, you also have to create it.

On the other side, if you have loaded a DICOM file, you may want to remove the DICOM structures attached to it, to reduce the amount of memory used by the image.

The following properties and methods of the IGMedPage object control the DICOM Data structures attached to the image:

Action
API Reference
Access the DICOM Data Structures
DataSet
FileMetaInfo
Preamble
Add, remove and check for presence of a DICOM Data Structure
AddDICOMStructure
IsDICOMStructurePresent
RemoveDICOMStructure


Displaying Medical Grayscale Images

Many of the medical images use more than 8 bits per grayscale pixel. The main concern in displaying such images is that commonly used monitors can display only 256 shades of gray, which corresponds to 8 bits per pixel. The 16-bit pixels need to be mapped in some way to 8-bit pixels. ImageGear uses two approaches for this mapping.

If a 9..16 bit grayscale image has been loaded from a non-DICOM file, its pixels are mapped to 8g by left shifting the pixels by (n-8), where n is the bit depth of the image. For example, if the image has 12 bits per pixel, its pixels will be left shifted by 4 bits, so the 8 most significant bits of the 12-bit pixel will be used. This mapping is done only for image display, and does not affect the image stored in memory.

When ImageGear loads a DICOM image, it creates a 16-bit to 8-bit, or 8-bit to 8-bit display Look Up Table (16x8 LUT or 8x8 LUT), and attaches it to the image. This LUT gives more flexibility in displaying medical images, allowing to display a certain range of pixel intensities with best contrast.

DICOM image files may contain several Look Up Tables that describe how the image shall be displayed. "Modality" LUT specifies transform of image pixels into modality meaningful values, such as optical density or Hounsfield Units. "Value of Interest" LUT (VOI LUT) specifies what range of pixel intensities should be shown on the screen. Most often, both these LUTs are linear, and thus are presented by a pair of values that are similar to brightness and contrast. For Modality LUT, these are Rescale Intercept (0028, 1053) and Rescale Slope (0028, 1053). For VOI LUT, these are Window Center (0028, 1050) and Window Width (0028, 1051). The standard also allows the usage of non-linear LUTs. These LUTs are represented as an array of values that map source image intensities to the output range.

If all of these values are found in the file, they are all used to build the 16x8 LUT. If Rescale values are not found, default values (Intercept = 0.0, Slope=1.0) are substituted. If VOI LUT values are not found, the image is scanned for min and max pixel intensities, and the LUT is built to display the min intensity as black and max intensity as white. The values between min and max are linearly scaled between black and white.

Many of the medical images use more than 8 bits per grayscale pixel. The main concern in displaying such images is that commonly used monitors can display only 256 shades of gray, which corresponds to 8 bits per pixel. The 16-bit pixels need to be mapped in some way to 8-bit pixels. ImageGear uses two approaches for this mapping.

If a 9..16 bit grayscale image has been loaded from a non-DICOM file, its pixels are mapped to 8g by left shifting the pixels by (n-8), where n is the bit depth of the image. For example, if the image has 12 bits per pixel, its pixels will be left shifted by 4 bits, so the 8 most significant bits of the 12-bit pixel will be used. This mapping is done only for image display, and does not affect the image stored in memory.

When ImageGear loads a DICOM image, it creates a 16-bit to 8-bit, or 8-bit to 8-bit display Look Up Table (16x8 LUT or 8x8 LUT), and attaches it to the image. This LUT gives more flexibility in displaying medical images, allowing to display a certain range of pixel intensities with best contrast.

DICOM image files may contain several Look Up Tables that describe how the image shall be displayed. "Modality" LUT specifies transform of image pixels into modality meaningful values, such as optical density or Hounsfield Units. "Value of Interest" LUT (VOI LUT) specifies what range of pixel intensities should be shown on the screen. Most often, both these LUTs are linear, and thus are presented by a pair of values that are similar to brightness and contrast. For Modality LUT, these are Rescale Intercept (0028, 1053) and Rescale Slope (0028, 1053). For VOI LUT, these are Window Center (0028, 1050) and Window Width (0028, 1051). The standard also allows the usage of non-linear LUTs. These LUTs are represented as an array of values that map source image intensities to the output range.

If all of these values are found in the file, they are all used to build the 16x8 LUT. If Rescale values are not found, default values (Intercept = 0.0, Slope=1.0) are substituted. If VOI LUT values are not found, the image is scanned for min and max pixel intensities, and the LUT is built to display the min intensity as black and max intensity as white. The values between min and max are linearly scaled between black and white.

Many of the medical images use more than 8 bits per grayscale pixel. The main concern in displaying such images is that commonly used monitors can display only 256 shades of gray, which corresponds to 8 bits per pixel. The 16-bit pixels need to be mapped in some way to 8-bit pixels. ImageGear uses two approaches for this mapping.

If a 9..16 bit grayscale image has been loaded from a non-DICOM file, its pixels are mapped to 8g by left shifting the pixels by (n-8), where n is the bit depth of the image. For example, if the image has 12 bits per pixel, its pixels will be left shifted by 4 bits, so the 8 most significant bits of the 12-bit pixel will be used. This mapping is done only for image display, and does not affect the image stored in memory.

When ImageGear loads a DICOM image, it creates a 16-bit to 8-bit, or 8-bit to 8-bit display Look Up Table (16x8 LUT or 8x8 LUT), and attaches it to the image. This LUT gives more flexibility in displaying medical images, allowing to display a certain range of pixel intensities with best contrast.

DICOM image files may contain several Look Up Tables that describe how the image shall be displayed. "Modality" LUT specifies transform of image pixels into modality meaningful values, such as optical density or Hounsfield Units. "Value of Interest" LUT (VOI LUT) specifies what range of pixel intensities should be shown on the screen. Most often, both these LUTs are linear, and thus are presented by a pair of values that are similar to brightness and contrast. For Modality LUT, these are Rescale Intercept (0028, 1053) and Rescale Slope (0028, 1053). For VOI LUT, these are Window Center (0028, 1050) and Window Width (0028, 1051). The standard also allows the usage of non-linear LUTs. These LUTs are represented as an array of values that map source image intensities to the output range.

If all of these values are found in the file, they are all used to build the 16x8 LUT. If Rescale values are not found, default values (Intercept = 0.0, Slope=1.0) are substituted. If VOI LUT values are not found, the image is scanned for min and max pixel intensities, and the LUT is built to display the min intensity as black and max intensity as white. The values between min and max are linearly scaled between black and white.

Grayscale LUTs can be attached to IGPage or to IGPageDisplay. In the latter case, if there are multiple IGPageDisplay objects corresponding to the same IGPage, they can have different LUTs, allowing to display the same image with different contrast settings simultaneously, in different windows.

Use methods of IGPage and IGPageDisplay to access the LUTs attached to them. Use IGMedCtl.BuildGrayscaleLUT method, together with methods and properties of IGMedContrast object, to build grayscale LUTs according to DICOM display settings.

NOTE: Grayscale LUTs (16x8, 8x8) only work with grayscale images. They do not work with bitonal, indexed (paletted), or color images.

The following table lists display methods of the Medical Component:

Feature
API Reference
Adjust 16x8 or 8x8 Display LUT
IGMedDisplay.AdjustContrastFrom
IGMedDisplay.AdjustContrastAutoFrom
IGMedCtl.BuildGrayscaleLUT
Control Pixel Padding
IGMedDisplay.GetPixPaddingSettings
IGMedDisplay.UpdatePixPaddingSettingsFrom
Create pseudocoloring LUTs
IGMedDisplay.CreateColorLUT
IGMedDisplay.CreateColorLimitsLUT

Pixel Padding Value

DICOM images sometimes contain a Data Element called "Pixel Padding Value" (PPV). The PPV is used mostly to fill in the corners of round images. DICOM provides a Tag for PPV which is (0028,0120). This Data Element stores a 16-bit grayscale value that is to be treated as the Pixel Padding Value. Any pixels in the image that have this value are not to be treated as meaningful objects - but as background color.

When the ImageGear Medical loads a DICOM image that contains a PPV the value is captured and stored in the IGMedPage. In fact, 3 values are stored to the HDS: the PPV from the PPV Data Element, a flag indicating that a PPV was found in the file when it was loaded, and an 8-bit grayscale value used to display pixels with this value.

Use GetPixPaddingSettings and UpdatePixPaddingSettingsFrom methods of the IGMedDisplay object to get/set the Pixel Padding Value that is to be used while displaying a 16-bit grayscale image.

Pseudocoloring of Medical images

Medical Display API contains methods for creating color LUTs that can be used to pseudocolor grayscale images.

Medical Component Grayscale Look Up Tables

The ImageGear Medical component provides a set of methods that allow you to create grayscale look up tables (LUTs) according to DICOM display attributes, such as VOI LUT, Modality LUT, Presentation LUT, etc.

Use the IGMedCtl.BuildGrayscaleLUT method to build a grayscale LUT based on DICOM display settings. This function supports both linear and non-linear Modality and VOI LUTs, as well as the presentation state related LUTs.

Once you have built the LUT, you can copy it either to IGPage, or to IGPageDisplay using IGPage.UpdateGrayscaleLUTFrom or IGPageDisplay.UpdateGrayscaleLUTFrom.

When ImageGear loads a grayscale DICOM image, it builds a grayscale LUT and attaches it to the image. This LUT can be obtained with the IGPage.GetGrayscaleLUTCopy method.

Example:

Dim MedContrast As IGMedContrast
Dim ModLUT As IIGLUT
Dim GrayLUT As IIGLUT
` Create MedContrast object
Set MedContrast = IGMedCtl1.CreateObject(MED_OBJ_CONTRAST)
If (medPage.DataSetLUTExists(DCM_TAG_ModalityLUT)) Then
    Set ModLUT = medPage.GetDataSetLUTCopy(DCM_TAG_ModalityLUT)
    MedContrast.ModalityLUT.CopyFrom(ModLUT)
Else
    MedContrast.RescaleSlope = 1.0
    MedContrast.RescaleIntercept = 0.0
End If
MedContrast.WindowCenter = 1024
MedContrast.WindowWidth = 2048
` Build a grayscale LUT based on display settings
Set GrayLUT = IGCoreCtl1.CreateObject(IG_OBJ_LUT)
GrayLUT.ChangeAttrs(16, True, 8, False)
IGMedCtrl1.BuildGrayscaleLUT(MedContrast, GrayLUT)
` Copy LUT to the image.
IGPage.UpdateGrayscaleLUTFrom(GrayLUT)
See Also:

Grayscale Look Up Tables

Working with Grayscale Look Up Tables


Image Processing of 16-bit Images

Most of the baseline Image Access and Image Processing methods support 9..16 bit images. See Processing Component API Reference to find supported bit depths for particular methods.

Medical Component presents a set of methods that were designed specifically for 9..16 bit and Medical images. IGMedProcessing member of the IGMedCtl provides access to these functions.

The various ways in which an image can be modified or investigated with IGMedCtl.Processing are described in the following table. Please refer to the ImageGear MD Component API Reference for complete descriptions of the IGMedProcessing methods.

Feature
API Reference
Reduce image color from 9..16g 8g
ReduceWithDisplayLUT
ReduceWithDownshift
Promote image color from 8g to 9..16g
PromoteTo16Gray
Transform bits of a 9..16 bit image
Normalize
TransformHighBit
Calculate Minimum and Maximum pixel intensities
GetMinMax
Tabulate histogram for a 9..16g image
TabulateHistogram16Gray

Critical Data Elements

In this manual, we use the term "Critical Data Elements" for those DEs that are used to help load a DICOM image correctly. It's important to note that when certain IP methods are called, the toolkit alters the Data Set. See Critical Data Elements topic in the Working With DICOM Data Structures section for more detail.


Working With DICOM Data Structures

When a DICOM image is loaded into ImageGear, it is loaded into a DIB just like any other supported image. In addition to the actual image, the following DICOM-specific data structures are also loaded: File Meta Information Header (if present) and the Data Set. This chapter explains how to read and/or manipulate the data in the Data Set or File Meta Information Header, or how to create your own Data Set or File Meta Information Header.

All of the DICOM data structures attached to the image can be accessed through properties of the IGMedPage object.

DICOM DataSet

DICOM DataSet is a list of Data Elements of various types. Each Data Element is marked with a 32-bit Tag number, which defines the meaning and usage of the Data Element. Some of the Data Elements can contain nested sets of Data Elements inside. These Data Elements are calles "Sequences of Items" (SQ). Due to the SQ Data Elements, the DataSet makes up a tree. In IG Medical Component, DataSet is represented by the IGMedElemList type. It is described in the section Working with the Data Element List.

File Meta Information Header (Part10 Header)

File Meta Information Header is structured as a simple Data Set. Only particular Data Elements (having Tag Group of 0002) can be included in the File Meta Info Header. There are no SQ Data Elements in the FileMetaInfo Header, so it does not have any nesting levels.

Due to the similarities in DataSet and FileMetaInfo Header, IG Medical Component represents them as the same type of object: IGMedElemList. However, since FileMetaInfo is simpler, you will not need to use all of the IGMedElemList methods for it. IGMedElemList object is described in the section Working with the Data Element List.

Preamble

DICOM FileMetaInformation Header also contains a special field called Preamble. It is an array of 128 bytes, which is placed at the beginning of the image. It is not structured as a DICOM Data Element, and does not have a Tag number associated with it. Thus, IG Medical stores Preamble as a separate object that behaves as a fixed size Byte array.

Updating DICOM DataSet without updating Pixel Data

There are cases when an application needs to update DataSet of a DICOM file, while leaving PixelData unchanged. For example, if the image is compressed using a Lossy compression scheme, this will avoid degradation of image quality.

Use IGMedCtl.UpdateFileMetadata() method to update DataSet in a DICOM file, without changing its pixel data.

Working with the Data Element List

Data Element List objects represent two important DICOM Data Structures attached to the image: DataSet and FileMetaInfo.

Working with a Element List includes two main steps: setting the "Current Index" of the Element List to a particular Data Element, and obtaining or modifying its data. This section lists various ways of setting the Current Index.

Due to the SQ Data Elements, Element List actually represents a tree. Navigation methods of the IGMedElemList allow to move the Current Index from element to element and up and down the nesting levels.

Internally, Element List is represented as a one-dimensional continious array of Data Elements. The Current Index is the index in this array. It enumerates the whole Element List, disregarding the nesting levels. To obtain or change the current index, use CurrentIndex property of the IGMedElemList object.

It is important to note how the SQ Data Elements are structured. An SQ Data Element contains one or more "Sequence Items" (SQ Items), but no Data Elemens. Each of the SQ Items, in turn, contains a set of Data Elements. Thus, the actual Data Elements can only be located at the even-numbered nesting levels.

Navigation properties and methods of the IGMedElemList are listed in the table below.

Navigation method
API Reference
Move Current Index element by element
MoveFirst
MoveLast
MoveNext
MovePrev
Move Current Index from level to level
MoveDown
MoveUp
Move Current Index by searching for a particular Tag or Tag Group
MoveFind
MoveFindFirst
Obtain or change current index
CurrentIndex
Obtain the level where Current Index is located
CurrentLevel

All of the navigation methods, except MoveDown and MoveUp, take the LevelOp parameter that tells what to do when the Current Index comes to a Level boundary: go up or down to the next level, or stay within the current level.

The following methods provide access to the Data Elements in the Element List:

Action
API Reference
Access the Current Data Element to retrieve information about it, obtain or change its data.
CurrentElem
Insert new Data Element
InsertElem
Remove a Data Element
RemoveCurrentElem

To insert a new Data Element to the ElementList, use the InsertElem method, specifying the Tag, Value Representation and Item Count for the new Element, and then populate the Element with data using the CurrentElem property.

The following group of properties obtain information on the Element List:

Returns number of Elements in the list
ElemCount
Checks whether the Element List contains any Elements
IsEmpty
Returns maximum nesting level in the Element List
MaxLevel

Inserting a Sequence of Data Elements

Use the following steps to create and fill a sequence (SQ) of Data Elements:

  1. Insert the Data Element of VR = SQ. This positions you one level lower in the DataSet hierarchy. At this level you can only add items to the sequence, not the Data Elements.
  2. Insert the DCM_TAG_ItemItem Data Element to denote the beginning of a new item in the sequence. This positions you one level lower in the DataSet hierarchy. Now you can add Data Elements to the embedded Data Set.
  3. Insert the data elements you would like to insert to this item.
  4. Insert the DCM_TAG_ItemDeliminationItem Data Element to denote end of the item. This positions you one level higher. Repeat steps 2-4 for every item you would like to add.
  5. Insert the DCM_TAG_SequenceDeliminationItem Data Element to denote the end of the sequence. This moves you one level higher - to the same level where you added the SQ Data Element.

Working with Data Elements

Use the IGMedDataElem object to obtain information on the individual Data Elemetns, retrieve or modify their data.

DICOM Standard defines a number of "Value Representations", which specify the type and meaning of the Data Element. A few examples of Value Representations are: "SL" (Signed Long), "CS" (Code String), "OB" (Other Byte). Many of the Value Representations allow the Data Element to have multiple values. Some of the Value Representations have a certain maximum or fixed length, such as "SL" and "CS", and some allow the Value to be of unlimited length.

To deal with the various Value Representations in a unified way, IG Medical component indexes Data Element Values as "Items". Each Value Representation is mapped to a certain "Item Type". All string based Value Representations are mapped to String type. They can be accessed through the String indexed property of the IGMedDataElem. Floating point Value Representations are mapped to Float and Double item types, and can be accessed through the Double indexed property. Integer Value Representations are mapped to integer types, and can be accessed through the Long indexed property. The table that lists the mapping from Value Representations to Item Types is provided in the API Reference (see description of the IGMedDataElem object).

The table below lists the properties and methods of the IGMedDataElem object.

Action
API Reference
Obtain information on the Data Element
Tag
ValueRepresentation
ValueLength
ValueMultiplicity
Find out which type of data is actually stored in the Data Element, and the number of data items
ItemCount
ItemType
Access the Data Items stored in the Data Element
Double
Long
String
Change the number of items stored in the Data Element
Resize
Output the data in a printable form
OutputDataToString

Critical Data Elements

In this manual, we use the term "Critical Data Elements" for those DEs that are used to help load a DICOM image correctly. It's important to note that when certain IP methods are called, the toolkit alters the Data Set. For example, when an aspect of the image has been altered (for instance, by image processing) so, that the Critical DEs no longer correctly describe the image, the Data Set have to be altered. When the image is actually saved, ImageGear also analyzes the DIB and set its own values for the Critical Data Elements of the file being saved. The original values are ignored.

The Critical Data Elements are:

(0028,0010)
Rows
(0028,0011)
Columns
(0028,0100)
Bits Allocated
(0028,0101)
Bits Stored
(0028,0102)
High Bit
(0028,0004)
Photometric Interpretation
(0028,0103)
Pixel Representation
(0028,0002)
Samples per pixel
(0028,0006)
Planar Configuration
(7FE0,0010)
Pixel Data

NOTE: PixelData DE does not contain any actual data, it is always empty. The actual pixel data is stored in ImageGear's DIB, to which the DataSet is attached. Value Representation and Value Length of the Pixel Data tag correspond to VR and VL of PixelData tag, if the DIB is saved to an uncompressed image.


Working with DICOM Data Dictionary

ImageGear Medical Component provides an object that represents DICOM Data Dictionary (Part 6 or DICOM Standard). The Data Dictionary provided by the ImageGear Medical Component contains information on all registered DICOM tags, and can be extended with private tags during runtime. It also contains information on DICOM Value Representations. Data Dictionary is represented by the DataDict member of the IGMedCtl control.

The table below lists groups of properties and methods of the IGMedDataDict object:

Feature
API Reference
Obtain information on the DICOM Tag, add and remove private tag information to/from the dictionary
AddTagInfo
GetTagInfo
ResetTagInfo
TagInfoExists
Compose Tag number from Group and Element numbers, and decompose Tag number into Group and Element numbers
GetTagElement
GetTagGroup
MakeTag
Obtain information on Value Representations
GetVRInfo
GetVRID


Working with Overlays

Use IGMedPage.ApplyOverlay() method to load graphic overlays from DICOM DataSet to ART annotations. Use IGMedPage.ExtractOverlay() method to save ART annotations into DICOM DataSet as overlay data.


Working with Presentation State Objects

Presentation State (PS) objects serve for the following purposes: consistent display of images on various devices and media, storage of specific settings for display (contrast transformations, geometric transformations), and storage of annotations. They also allow for special display of multiframe images.

Presentation State object files do not include actual images, but reference one or more images.

Presentation State object files, in addition to LUTs, display parameters and annotations, contain other tags, such as Patient/Study/Series info, Referenced Image UIDs, etc. ImageGear provides read/write access to these tags.

Consistent Display of Images

DICOM standard introduces the Standardized Display System. A Standardized Display System may be a printer, a monitor or some other display device which has been calibrated according to the Grayscale Standard Display Function (GSDF). The main feature of such display system is that throughout its display range, equal differences in digital input values correspond to visually equal differences in luminosity. Two Standardized Display Systems will always show the same detail in an image, even if their physical characteristics are different.

The values that can be used as input to a Standardized Display System are called "Presentation Values" ("P-Values"). To map image pixel intensities into P-Values, Presentation Look Up Table ("P-LUT") is used. It is applied after Modality and VOI LUTs.

Presentation LUT is stored in a Presentation State DataSet.

If a display device is not physically calibrated to comply with GSDF, but its characteristic curve (a table that lists luminosities for each digital input value) is known, it can be calibrated at the software level. In that case, P-Values shall be used as input to a GSDF LUT, which will map them to the device's input values according to GSDF. Thus, a non-standardized device together with its GSDF LUT can be considered as Standardized Display System.

ImageGear Medical component allows to build a GSDF LUT from a device's Characteristic Curve.

ImageGear uses all available LUTs (Modality LUT, VOI LUT, Presentation LUT and GSDF LUT), to build the general 16x8 or 8x8 LUT that maps image pixel values into display input values.

Grayscale Contrast Transformations

Presentation State DataSet may include VOI and Modality LUTs. Their usage is the same as in normal DICOM images. If either of these LUTs is present, it overrides the LUT found in the image.

This includes VOI and Modality LUTs (rescale and window/level)

Geometric Transformations

Presentation State DataSet may include Rectangle of Interest, scale mode (True size, Scale to Fit, Magnify), and orientation (Rotate, Flip).

Annotations

Annotation objects include: Text box, Point, Polyline, Spline, Circle, Ellipse. Graphical objects can be filled or not filled. Annotations can be grouped into layers.

ImageGear Medical component uses ART marks to represent DICOM annotation objects. When a Presentation State DataSet is applied to an image, ImageGear creates ART marks for each of the annotation objects. These marks can then be edited with the ART API methods.

DICOM Graphic Annotation objects are grouped into Layers. All objects on the same layer have the same color (recommended grayscale value). ImageGear uses ART mark groups to represent layers.

When extracting presentation state from a IGPage that has ART marks attached to it, ART marks are converted to DICOM Graphic Annotation objects or Text Annotation objects. The table below lists ART marks that can be converted, corresponding DICOM Graphic Annotation objects, and properties that Graphic Annotation objects support. Marks that are not listed in this table are ignored.

ART mark type
DICOM Graphic Annotation Object
Supported properties
POINT
POINT
Point coordinates
POLYLINE
POLYLINE
Node coordinates, "Filled" property
FILLED_POLYGON
POLYLINE
Node coordinates, "Filled" property
SPLINE
INTERPOLATED
Node coordinates, "Filled" property
FILLED_ELLIPSE
ELLIPSE
Bounds coordinates, "Filled" property
HOLLOW_ELLIPSE
ELLIPSE
Bounds coordinates, "Filled" property

The following ART marks are saved as DICOM Text Annotation objects:

ImGearARTMarkType
Supported properties
TYPED_TEXT
Text, bounds coordinates,
CALLOUT
Text, bounds coordinates, anchor point coordinates, anchor point visibility

Graphic Annotation objects do not have a color property. Instead, Graphic Layer has "Recommended Display Grayscale Value" property. ImageGear converts the color of the first mark in the ART group to grayscale and uses this value to initialize the "Recommended Display Grayscale Value" property of the layer.

Working with Presentation State Objects

You can load Presentation State files in the same way as you load normal DICOM images. However, since PS files do not contain an image, HIGEAR will be set to an empty image (DIB.biCompression |= IG_BI_EMPTY). Data Set of such image is accessible through Medical API. Such images can also be saved in the same way as normal DICOM images.

A HIGEAR containing a Presentation State DataSet can be "applied" to another HIGEAR that contains an image. This operation applies display and annotation settings from Presentation state onto the target image. In the opposite way, display settings and annotations can be exported from an image into another HIGEAR.

When you apply Presentation State to an image, ImageGear updates its 16x8 or 8x8 LUT using the Presentation LUT. However, it does not store Presentation LUT with that image. If you would like to work with Presentation LUT, you should allocate memory for it in your application. Pass Presentation LUT as a parameter to medical display functions. You can also save Presentation LUT to a Presentation State data set.

If a Characteristic Curve is available for a display, you can build a GSDF LUT from it, and use it in calls to medical Presentation State and Display functions. Otherwise, pass a NULL to GSDF LUT parameter.


Waveform Image Support

ImageGear supports both DICOM raster and vector (waveform) images. ImageGear loads waveform images in vector form. You can use Vector component API to modify waveform images that have been loaded to ImageGear. Use any image loading functions to load DICOM waveform images.

ImageGear reads and displays waveform data (graphs), as well as axes and some annotations.

As of this writing, ImageGear creates the following annotations for waveform images:

  • X axis with second marks, according to SamplingFrequency tag value.
  • X axis for every image, if it is visible and does not intersect with other images
  • Y axis for all images.
  • Minimum and maximum Y values for each graph
  • The Print Management Service Class defines an application-level class-of-service which facilitates the printing of images and image related data on a hard copy medium.
  • The Media Storage Service Class defines an application-level class-of-service which facilitates the simple transfer of images and associated information between DICOM AEs by means of Storage Media.
  • The Storage Commitment Service Class defines an application-level class-of-service which facilitates the commitment to store SOP Instances.
  • The Basic Worklist Management Service Class defines an application-level class-of-service which facilitates the access to worklists.
  • IGMedCDicomDirMgr
  • IGMedCDirRecord


Using ImageGear PDF Component

This document outlines the methods and objects defined in the ImageGear PDF component.

  • About the PDF Component
  • Disabling and Enabling PostScript Support
  • PDF Standards
  • Working with PDF Layers
  • Working with 3D Artwork
  • Distributing PDF and PS Fonts with Your Application
  • PDF Format Filter
  • PDF Format Filter Control Parameters Reference
  • PostScript Filter Control Parameters


About the PDF Component

PostScript Language (PS)

The PostScript Language (PS) is a simple interpretive programming language with powerful graphics capabilities. Its primary application is to describe the appearance of text, graphical shapes, and sampled images on printed or displayed pages, according to the Adobe® imaging model. A program in this language can communicate a description of a document from a composition system to a printing system or control the appearance of text and graphics on a display. The description is high-level and device-independent.

Adobe® Portable Document Format (PDF)

The Adobe® Portable Document Format (PDF) is the native file format of the Adobe® Acrobat® family of products. PDF relies on the same imaging model as the PostScript page description language to describe text and graphics in a device-independent and resolution-independent manner. A document can be converted between PDF and the PostScript language; the two representations produce the same output when printed. To improve performance for interactive viewing, PDF defines a more structured format than that used by most PostScript language programs. PDF also includes objects, such as annotations and hypertext links that are not part of the page itself but are useful for interactive viewing and document interchange. However, PDF lacks the general-purpose programming language framework of the PostScript language.

Using the ImageGear PDF API allows you to load, save, edit and process native PDF and PostScript documents. The ImageGear PDF Component can also perform rasterization of PDF and PostScript documents, converting them to bitmaps. The component also provides you with the ability to extract text from loaded PDF and PostScript documents

ImageGear PDF component provides full multi-page reading and writing support for the entire document as well as specified set of pages. You can detect, read, write, append, insert, replace, swap and delete a specified page in the PDF document.

Content Editing

Content editing provides an API for creating, accessing and editing PDF page content objects. With this API you can work with a page's content as with a list of such objects like images, texts, forms. Retain, modify and save their data and properties.

Document Fonts

Document font support includes:

  • Listing the fonts available in the host system and finding a system font that matches a PDF font
  • Creating a font from the system font and encoding as well as from the specified attributes
  • Changing font's information
  • Editing and embedding a font in the document
  • Both single and multiple bytes fonts are supported

Word Extraction

Text words extraction includes:

  • Extracting words from a PDF document or specified page
  • Enumerating and sorting the words
  • Getting word layouts, styles and characters

PDF Multi-thread Safety

The access to the same PDF document from different multiple threads is not permitted because the multiple threads cannot share Adobe PDF Library datatypes. PDF doc created/opened in the main thread can be only used from the main thread.

Document Metadata

You can get and set PDF document metadata corresponding to a document's Info dictionary.

Native Printing

Native PDF document printing now renders the document content directly to the printer, so it is fast and requires less memory.

NOTE: PDF support is compatible with Adobe® PDF version 1.7 as defined in the Portable Document Format Reference Manual Version 1.7, distributed by Adobe Systems Incorporated. It provides reading capability up to the PDF version 1.7 and writing of the PDF 1.7 documents.
NOTE: PostScript support is compatible with Adobe® PostScript® 3.0 language as defined in the PostScript Format Reference Manual, distributed by Adobe Systems Incorporated. It provides reading capability up to the PostScript 3.0 Language Level 3 and writing of the PostScript 3.0 files with the Language Level 1, 2 and 3. This includes writing of the Enhanced PostScript (EPS) files with standard and extended preview as well as w/o preview at all.


Disabling and Enabling PostScript Support

The PDF.ENABLE_POSTSCRIPT Global Control Parameter is used to enable/disable PostScript support in PDF component.

By default the ImageGear PDF Component enables PDF and PostScript file format support. But it is possbile to disable PostScript file format support in case if it is not required. There is a boolean global parameter named PDF.ENABLE_POSTSCRIPT used to control this.

To disable PostScript support use the following code:

Dim curPrm As IGGlobalParameter
    Set curPrm = frmMain.IGCoreCtl1.Settings.GetParamCopy
("PDF.ENABLE_POSTSCRIPT")
    curPrm.Value.Boolean = False

    ' update the global parameter value
    frmMain.IGCoreCtl1.Settings.UpdateParamFrom curPrm


PDF Standards

PDF/X and PDF/A standards are defined by the International Organization for Standardization (ISO).

  • PDF/X standards apply to graphic content exchange

The most widely used standards for a print publishing workflow are several PDF/X formats: PDF/X-1a, PDF/X-3, and PDF/X-4.

  • PDF/A standards apply to long-term archiving of electronic documents

The most widely used standards for PDF archiving are PDF/A-1a and PDF/A-1b (for less stringent requirements).

For more information on PDF/X and PDF/A, see the ISO website.

PDF/A

PDF/A is a file format based on PDF. It provides a mechanism for representing electronic documents in a manner that preserves their visual appearance over time, independent of the tools and systems used for creating, storing or rendering the files.

PDF/A-1a

Level A conforming files shall adhere to all of the requirements of the ISO 19005-1:2005 specification.

A file meeting this conformance level is said to be a "conforming PDF/A -1a file."

PDF/A-1b

In recognition of the varying preservation needs of the diverse user communities making use of PDF files, the ISO 19005-1:2005 specification defines a Level B conformance level. Level B conforming files shall adhere to all of the requirements of the spec except those applicable to Level A only.

A file meeting this conformance level is said to be a "conforming PDF/A-1b file."

NOTE: The Level B conformance requirements are intended to be those minimally necessary to ensure that the rendered visual appearance of a conforming file is preservable over the long term. However, Level B conforming files might not have sufficiently rich internal information to allow for the preservation of the document's logical structure and content text stream in natural reading order, which is provided by Level A conformance. The requirements for Level A conformance place greater responsibilities on writers of conforming files and those preparing such files, but these requirements allow for a higher level of document preservation service and confidence.

PDF/X

PDF/X is a PDF based format for the exchange of object-based data where individual objects may be in either vector or raster data structures. PDF/X defines a data format and its usage to permit the predictable dissemination of a compound entity to one or more locations, as colour-managed, CMYK, gray, RGB, and/or spot colour data, in a form ready for final print reproduction, by transfer of a single file. This file contains all the content information necessary to process and render the document, as intended by the sender, coded inside a single PDF file. No other parts, neither external files nor internally embedded files, are required or permitted. This exchange requires no prior knowledge of the sending and receiving environments and is sometimes referred to as "blind" exchange. It is platform- and transport-independent.

PDF/X-3:2003

PDF/X-3:2003 conforming files shall adhere to all of the requirements of the ISO 15930-6:2003 specification defining "Prepress digital data exchange using PDF -- Part 6: Complete exchange of printing data suitable for colour-managed workflows using PDF 1.4 (PDF/X-3)".

A file meeting this conformance level is said to be a "conforming PDF/X-3 file."


Working with PDF Layers

This section provides information about working with PDF Layers, as follows:

  • Layer objects and visibility
  • Layers Diagram
  • Visibility Policy
  • Working with Containers, Dictionaries and Layers using ImageGear PDF sample

For more information, see the following API sections: IIGPDFDictionary, IIGPDFLayerArray, IGPDFLayer.

Layer objects and visibility

The following objects are related to PDF Layers and responsible for the visibility.

Layers

Each layer has a name and a visibility state for the containers connected to the layer through a Dictionary. The visibility state can have one of two values - ON or OFF.

Dictionaries

Each dictionary contains the array of layers and a Boolean function, which takes all the layers' states as input and applies the visibility policy function to the layers' state values producing the Boolean result whether or not to display all the objects from the dictionary's container. The output can have one of two values - ON or OFF.

Containers

Each container is an arbitrary set of PDF elements or other containers. Each container is associated with a dictionary. The container and all its elements (including the other containers) are displayed when its dictionary's visibility policy Boolean function results with ON.

The following diagram shows the relationship between containers and the other PDF document objects:

Layers Diagram

The following diagram shows interconnection between PDF objects and layers:

Visibility Policy

Dictionary Boolean function define the visibility policy. It can be one of the following:

  • AllOn - equivalent to "AND" function for all input parameters,
  • AnyOn - equivalent to "OR" function for all input parameters,
  • AnyOff - equivalent to "NOT-OR" function for all input parameters,
  • AllOff - equivalent to "NOT-AND" function for all input parameters,

In other words:

AllOn
All the containers from the dictionary will be displayed when all the input layers' states are 'ON'
AnyOn
All the containers from the dictionary will be displayed when at least one of the input layers state is 'ON'
AnyOff
All the containers from the dictionary will be displayed when at least one of the input layers state is 'OFF'
AllOff
All the containers from the dictionary will be displayed when all the input layers' states are 'OFF'

Working with Containers, Dictionaries and Layers using ImageGear PDF sample

Before creating a container you need to create one or more layers using the View -> Layers menu. Make sure to create some simple elements like text, paths or images as well.

In order to create container right click on the PDF page and select Create -> Container. You will be prompted to select all the layers you want to associate with the containers dictionary, which will affect the container's visibility. You also need to select the visibility policy and check all the elements you want to include into the new container. When container is created a new dictionary is automatically created as well.

To show or hide the container's elements use View -> Layers menu to change the layer's state to ON or OFF.

In order to rearrange the container's elements you can right click to delete the existing container, which will free its elements and create the new one.


Working with 3D Artwork

Starting with version 1.6, PDF introduces the capability for collections of 3D objects, such as those used by CAD formats, to be embedded in PDF files. Such collections are called 3D models, and PDF refers to them as 3D Artwork. In PDF documents, 3D Artwork is represented by 3D annotations stored in Universal 3D (U3D) format.

ImageGear PDF component allows the following 3D features:

  • 3D content can be rendered within a page.
  • Multiple instances of 3D data can appear within a page or document.
  • Specific views of 3D artwork can be available, including a default view that is displayed initially and other views that can be selected.
  • Users can rotate and move 3D data, enabling them to examine complex objects from any angle or orientation.

Working Process

ImageGear 3D Artwork processing integrates the following components:

  • ImageGear PDF - PDF content reader and writer.
  • ImageGear U3D - U3D format decoder and encoder.
  • ImageGear ARTX - Image annotation mark used to represent 3D Artwork.
  • ImageGear ARTXGUI - Interactive GUI forms and toolbar.
  • ImageGear VECT - Vector data storage and API for interaction.

3D PDF Artwork is converted into the ART Image mark referencing a vector IGPage, so it could be edited, interacted with and/or saved back to PDF.

3D Interaction is possible in the ART RUN Mode, by clicking over the mark and using the popup 3D toolbar. Users can rotate, scale and move 3D data, as well as change lights and views settings

XML Import and Export

The vector Image mark representing 3D data can be exported to XML in the U3D format. While saving to XML, vector IGPage associated with the Image mark will be converted to U3D stream and saved to XML Data tag. While loading from XML, U3D stream will be loaded as a vector IGPage and will be attached to the Image mark.


Distributing PDF and PS Fonts with Your Application

ImageGear toolkit comes with multiple PDF and PS fonts that can be used for developing an application based on ImageGear. However only four fonts are pre-licensed for distribution:

  • The two MultiMaster PDF fonts, AdobeSansMM (zx______.mmm) and AdobeSerifMM (zy______.mmm).
  • The two PostScript fonts, Courier and NotDefFont.

These fonts are the property of Adobe® Systems and are fully licensed for distribution with your application.

If you need to distribute additional fonts, you need to get a license for the redistribution of those fonts. However, you are not limited to the fonts supplied with ImageGear; it's possible to add other fonts to be used with ImageGear PDF/PS support. To do this, place your fonts to the PDF "Resource" directory as follows:

  • CID fonts (if any) to ...\Resource\PDF\CIDFont
  • CMaps fonts to ...\Resource\PDF\CMap
  • PDF fonts to ...\Resource\PDF\Font
  • PostScript fonts to ...\Resource\PS\Fonts

Please also note that the fonts that are pre-licensed for distribution (i.e., AdobeSansMM, AdobeSerifMM, "Courier" and "NotDefFont") provide the substitution capabilities for the other fonts, so they are likely to be enough for many cases. The below paragraph provides more technical details regarding font substitution.

The multiple master font format is an extension of the Type 1 font format that allows the generation of a wide variety of typeface styles from a single font program. This is accomplished through the presence of various design dimensions in the font. Examples of design dimensions are weight (light to extra-bold) and width (condensed to expanded). Coordinates along these design dimensions (such as the degree of boldness) are specified by numbers. A particular choice of numbers selects an instance of the multiple master font. Adobe® Technical Note #5015, Type 1 Font Format Supplement, describes multiple master fonts in detail.


PDF Format Filter

If you attach the PDF Component to core ImageGear, you can initialize the PDF Format Filter functionality, which can be accessed through the core ImageGear Format Filter API.

The ImageGear PDF Format Filter supports the following features of PDF file processing:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEWRITEPSUPPORT - multi-page file writing
  • IG_FLTR_PAGEDELETESUPPORT - page deleting from multi-page files
  • IG_FLTR_PAGESWAPSUPPORT - page swaping in multi-page files

The following raster image compressions are supported by ImageGear PDF component for read and write:

  • IG_COMPRESSION_NONE - for 1, 2, 4, 8, 24, 32 bits per pixel (bpp)
  • IG_COMPRESSION_CCITT_G3 - for 1 bpp
  • IG_COMPRESSION_CCITT_G4 - for 1 bpp
  • IG_COMPRESSION_CCITT_G32D - for 1 bpp
  • IG_COMPRESSION_JBIG2* - for 1 bit per pixel
  • IG_COMPRESSION_RLE - for 1, 2, 4, 8, 24, 32 bits per pixel
  • IG_COMPRESSION_DEFLATE - for 1, 2, 4, 8, 24, 32 bits per pixel
  • IG_COMPRESSION_JPEG - for 8, 24, 32 bits per pixel
  • IG_COMPRESSION_LZW* - for 1, 2, 4, 8 bits per pixel
  • IG_COMPRESSION_JPEG2K* - for 1, 2, 4, 8, 24, 32 bits per pixel

* - Supported when the appropriate ImageGear component is loaded

NOTE: Once the image is compressed, an optional text encoding scheme can be applied to convert binary data to text format. See the description of the TEXT_ENCODING control parameter for details.


PDF Format Filter Control Parameters Reference

ImageGear PDF Format Filter provides you with many control parameters that are optional, but can be used for PDF file processing refinement. Use ImageGear objects IGControlParameter and IGFormatParams to get/set value, name, count of control parameters as well as to retrieve information about it. For the detailed information about these objects properties and methods please, see the Chapter ImageGear Formats Component API Reference.

There are the following PDF filter control parameters:

  • DEPTH
  • INC_REND
  • INDEPENDENT_PAGESIZE
  • PAGE_HEIGHT
  • PAGE_WIDTH
  • PASSWORD
  • PRINT_DEPTH
  • PRINT_RESOLUTION_X
  • PRINT_RESOLUTION_Y
  • RESOLUTION_3D
  • RESOLUTION_X
  • RESOLUTION_Y
  • SAVE_FLAGS
  • SAVE_MAJOR
  • SAVE_MINOR
  • SMOOTH_FLAGS
  • TEXT_ENCODING
  • USE_CROP_BOX


DEPTH

This parameter specifies bit depth in bits per pixels during the PDF document convertion into the raster image. The more is this value, the more quality of the raster image you get and the more memory is required for rasterization. The DIB of the output raster image has this value as a bit count.

Data type:

UINT

Default Value:

24

Valid Values:

1, 8, 24

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("DEPTH")
currentParameter.value.Long = 1
currentFormat.UpdateParamFrom currentParameter


INC_REND

This parameter specifies whether incremental rendering or rendering at once should be performed.

Data type:

Boolean

Default Value:

False

Valid Values:

True, False

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("INC_REND")
currentParameter.value.Boolean = True
currentFormat.UpdateParamFrom currentParameter


INDEPENDENT_PAGESIZE

(Used with PDF write only.) If this parameter is FALSE, when saving a raster image into the PDF document, the width and height of the newly created page is set to the width and height of the previous page in the PDF document. If the previous page does not exist, the width and height are calculated from the image resolution and size as follows:

Width = <width of the raster image> * 72 / <X DPI of the raster
image>
Height = < height of the raster image> * 72 / <Y DPI of the
raster image>

If the image resolution is not defined, the width and height are set to the width and height of the A4 page, which is 612x792.

Use the following parameters to set the page size when this option is TRUE:

  • PAGE_HEIGHT
  • PAGE_WIDTH

Data type:

AT_BOOL

Valid Values:

TRUE, FALSE

Default Value:

FALSE

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("INDEPENDENT_PAGESIZE")
currentParameter.value.Boolean = True
currentFormat.UpdateParamFrom currentParameter


PAGE_HEIGHT

(Used with PDF write only.) This parameter sets the height of the page (in 1/72 inches). If this option is 0, the height is calculated from the image resolution and size as follows:

Height = < height of the raster image> * 72 / <Y DPI of the
raster image>

If the image resolution is not defined, the height is set to the height of an A4 page, which is 792.

This option is not used if RESOLUTION_X is FALSE.

Data type:

UINT

Valid Values:

Any non-negative value.

Default Value:

0

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("PAGE_HEIGHT")
currentParameter.value.Long = 792
currentFormat.UpdateParamFrom currentParameter


PAGE_WIDTH

(Used with PDF write only.) This parameter sets the width of the page (in 1/72 inches). If this option is 0, the width is calculated from the image resolution and size as follows:

Width = <width of the raster image> * 72 / <X DPI of the raster
image>

If the image resolution is not defined, the width is set to the width of the A4 page, which is 612.

This option is not used if RESOLUTION_X is FALSE.

Data type:

UINT

Valid Values:

Any non-negative value.

Default Value:

0

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("PAGE_WIDTH")
currentParameter.value.Long = 612
currentFormat.UpdateParamFrom currentParameter


PASSWORD

This parameter specifies the password string for the password of the protected PDF documents.

Data type:

LPCHAR

Default Value:

""

Valid Values:

Any

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("PASSWORD")
currentParameter.value.String = "pswd"
currentFormat.UpdateParamFrom currentParameter


PRINT_DEPTH

This parameter specifies bit depth in bits per pixels during the PDF document printing. The more is this value, the more quality of the raster image you get and the more memory is required for printing.

Data type:

UINT

Default Value:

8

Valid Values:

1, 8, 24

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("PRINT_DEPTH")
currentParameter.value.Long = 1
currentFormat.UpdateParamFrom currentParameter


PRINT_RESOLUTION_X

This parameter specifies the horizontal resolution in dots per inch during the PDF document printing. The more is this value, the more is the quality of the image to be printed.

Data type:

UINT

Default Value:

300

Valid Values:

Any

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("PRINT_RESOLUTION_X")
currentParameter.value.Long = 300
currentFormat.UpdateParamFrom currentParameter


PRINT_RESOLUTION_Y

This parameter specifies the vertical resolution in dots per inch during the PDF document printing. The more is this value, the more is the quality of the image to be printed.

Data type:

UINT

Default Value:

300

Valid Values:

Any

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("PRINT_RESOLUTION_Y")
currentParameter.value.Long = 300
currentFormat.UpdateParamFrom currentParameter


RESOLUTION_3D

This parameter specifies the resolution in dots per inch used for generating a pre-rendered bitmap of the default view of the 3D artwork. Producers should provide bitmaps of appropriate resolution for all intended uses of the document, i.e. a high-resolution bitmap for high-quality printing and a default screen-resolution bitmap for on-screen viewing.

Data type:

UINT

Valid Values:

Any, except zero

Default Value:

72


RESOLUTION_X

This parameter specifies the horizontal resolution in dots per inch during the PDF/PS document conversion into the raster image. The higher this value, the higher-quality raster image you get after rasterization. The DIB of the output raster image has this value as an X resolution.

Data type:

UINT

Valid Values:

Any

Default Value:

72

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("RESOLUTION_X")
currentParameter.value.Long = 300
currentFormat.UpdateParamFrom currentParameter


RESOLUTION_Y

This parameter specifies the vertical resolution in dots per inch during the PDF/PS document conversion into the raster image. The higher this value, the higher-quality raster image you get after rasterization. The DIB of the output raster image has this value as an Y resolution.

Data type:

UINT

Valid Values:

Any

Default Value:

72

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("RESOLUTION_Y")
currentParameter.value.Long = 300
currentFormat.UpdateParamFrom currentParameter


SAVE_FLAGS

(Used with PDF write only.) This parameter specifes an option for saving a PDF file, which allows you to remove unreferenced objects, often reducing file size as well as to write a linearized file for page-served remote (network) access.

Data type:

UINT

Default Value:

IG_PDF_OPTIMIZED = 32

Valid Values:

A bit composition of an OR of the following values:

  • IG_PDF_OPTIMIZED = 32 - perform garbage collection on unreferenced objects
  • IG_PDF_LINEARIZED = 4- writes the file linearized for page serving over the remote connections

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("SAVE_FLAGS")
currentParameter.value.Long = 4 Or 32
currentFormat.UpdateParamFrom currentParameter


SAVE_MAJOR

Specifies major PDF version number of the document for saving. If major equals 0, both major and minor are ignored and the document is saved to the library's default version.

Make sure that the document conforms to the version number you are setting.

Data type:

UINT

Default Value:

0

Valid Values:

1


SAVE_MINOR

Specifies minor PDF version number of the document for saving. Make sure that the document conforms to the version number you are setting.

Data type:

UINT

Default Value:

0

Valid Values:

6, 5, 4 etc.


SMOOTH_FLAGS

This parameter specifes smooth settings for PDF rasterization.

Data type:

UINT

Default Value:

0

Valid Values:

A bit composition of an OR of the following values:

  • 1 - Draw smooth text
  • 2 - Draw smooth line art
  • 4 - Draw smooth image

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("SMOOTH_FLAGS")
currentParameter.value.Long = 1 Or 4
currentFormat.UpdateParamFrom currentParameter


TEXT_ENCODING

(Used with PDF write only.) This parameter specifies which encoding scheme should be used to convert binary image data to the text format when saving raster image into the PDF document.

Data type:

UINT

Valid Values:

  • IG_PDF_TEXTENC_NONE = 1 - no encoding used
  • IG_PDF_TEXTENC_ASCII_85 = 2 - ASCII 85 encoding used
  • IG_PDF_TEXTENC_ASCII_HEX = 3 - ASCII HEX encoding used

Default Value:

IG_PDF_TEXTENC_ASCII_85 = 2

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("TEXT_ENCODING")
currentParameter.value.Long = IG_PDF_TEXTENC_NONE
currentFormat.UpdateParamFrom currentParameter


USE_CROP_BOX

TRUE - use PDF crop box rectangle for page layout, FALSE - use PDF media rectangle for page layout.

Data type:

AT_BOOL

Valid Values:

True, False

Default Value:

True

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("USE_CROP_BOX")
currentParameter.value.Boolean = False
currentFormat.UpdateParamFrom currentParameter


PostScript Filter Control Parameters

ImageGear PostScript Filter provides you with many control parameters that are optional but can be used for PostScript file processing refinement. Use ImageGear objects IGControlParameter and IGFormatParams to get/set value, name, count of control parameters as well as to retrieve information about it. For the detailed information about these objects properties and methods please, see the Chapter ImageGear Formats Component API Reference.

There are the following PS filter control parameters:

  • AUTO_POSITION
  • DEPTH
  • HEIGHT
  • INDEPENDENT_PAGESIZE
  • JOB_OPTIONS_FILE
  • LEVEL
  • PAGE_HEIGHT
  • PAGE_WIDTH
  • READ_PREVIEW
  • RESOLUTION_X
  • RESOLUTION_Y
  • SMOOTH_FLAGS
  • TEXT_ENCODING
  • TYPE
  • USE_CROP_BOX
  • WIDTH


AUTO_POSITION

This parameter enables/disables AutoPositionEPSFiles option for reading PS/EPS file format.

Data type:

Boolean

Default Value:

True

Valid Values:

True, False

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("AUTO_POSITION")
currentParameter.value.Boolean = False
currentFormat.UpdateParamFrom currentParameter


DEPTH

This parameter specifies bit depth in bits per pixels during the PostScript document convertion into the raster image. The more is this value, the more quality of the raster image you get and the more memory is required for the rasterization. The DIB of the output raster image has this value as a bit count.

Data type:

UINT

Default Value:

24

Valid Values:

1, 8, 24

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("DEPTH")
currentParameter.value.Long = 1
currentFormat.UpdateParamFrom currentParameter


HEIGHT

This parameter determines the height of PS page to load.

Data type:

Long

Default Value:

0

Valid Values:

Any positive value

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("HEIGHT")
currentParameter.value.Long = 1
currentFormat.UpdateParamFrom currentParameter


INDEPENDENT_PAGESIZE

(Used with PostScript write only.) When this parameter is FALSE, when saving a raster image into the PostScript document, the width and height of the newly created page is set to the width and height of the previous page in the PostScript document. If the previous page does not exist, the width and height are calculated from the image resolution and size as follows:

Width = <width of the raster image> * 72 / <X DPI of the raster image>

Height = < height of the raster image> * 72 / <Y DPI of the raster image>

If the image resolution is not defined, the width and height are set to the width and height of the A4 page, which is 612x792.

Use the following parameters to set the page size when this option is TRUE:

  • PAGE_HEIGHT
  • PAGE_WIDTH

Data type:

AT_BOOL

Valid Values:

TRUE, FALSE

Default Value:

FALSE

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("INDEPENDENT_PAGESIZE")
currentParameter.value.Boolean = True
currentFormat.UpdateParamFrom currentParameter


JOB_OPTIONS_FILE

This parameter determines JobOptions file name.

Data type:

BSTR

Default Value:

N/A

Valid Values:

Any string

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("JOB_OPTIONS_FILE")
currentParameter.value.String = JOBORT1
currentFormat.UpdateParamFrom currentParameter


LEVEL

(Used with PostScript write only.) This parameter specifies a language level of the output PostScript 3.0 document when saving to PostScript.

Data type:

UINT

Valid Values:

  • IG_PS_LEVEL_1 = 1 - language level 1
  • IG_PS_LEVEL_2 = 2 - language level 2
  • IG_PS_LEVEL_3 = 3 - language level 3

Default Value:

IG_PS_LEVEL_3 = 3

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("LEVEL")
currentParameter.value.Long = IG_PS_LEVEL_2
currentFormat.UpdateParamFrom currentParameter


PAGE_HEIGHT

(Used with PostScript write only.) This parameter sets the height of the page (in 1/72 inches). If this option is 0, the height is calculated from the image resolution and size as follows:

Height = < height of the raster image> * 72 / <Y DPI of the raster image>

If the image resolution is not defined, the height is set to the height of an A4 page, which is 792.

This option is not used if RESOLUTION_X is FALSE.

Data type:

UINT

Valid Values:

Any non-negative value.

Default Value:

0

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("PAGE_HEIGHT")
currentParameter.value.Long = 792
currentFormat.UpdateParamFrom currentParameter


PAGE_WIDTH

(Used with PostScript write only.) This parameter sets the width of the page (in 1/72 inches). If this option is 0, the width is calculated from the image resolution and size as follows:

Width = <width of the raster image> * 72 / <X DPI of the raster image>

If the image resolution is not defined, the width is set to the width of the A4 page, which is 612.

This option is not used if RESOLUTION_X is FALSE.

Data type:

UINT

Valid Values:

Any non-negative value.

Default Value:

0

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("PAGE_WIDTH")
currentParameter.value.Long = 612
currentFormat.UpdateParamFrom currentParameter


READ_PREVIEW

This parameter determines whether to read TIFF preview only or not.

Data type:

Boolean

Default Value:

False

Valid Values:

True, False

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("READ_PREVIEW")
currentParameter.value.Boolean = True
currentFormat.UpdateParamFrom currentParameter


RESOLUTION_X

This parameter specifies the horizontal resolution in dots per inch during the PostScript/PDF document conversion into the raster image. The higher this value, the higher-quality raster image you get after rasterization. The DIB of the output raster image has this value as an X resolution.

Data type:

UINT

Valid Values:

Any

Default Value:

72

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("RESOLUTION_X")
currentParameter.value.Long = 300
currentFormat.UpdateParamFrom currentParameter


RESOLUTION_Y

This parameter specifies the vertical resolution in dots per inch during the PostScript/PDF document conversion into the raster image. The higher this value, the higher-quality raster image you get after rasterization. The DIB of the output raster image has this value as an Y resolution.

Data type:

UINT

Valid Values:

Any

Default Value:

72

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("RESOLUTION_Y")
currentParameter.value.Long = 300
currentFormat.UpdateParamFrom currentParameter


SMOOTH_FLAGS

This parameter specifes smooth settings for PostScript rasterization.

Data type:

UINT

Default Value:

0

Valid Values:

A bit composition of an OR of the following values:

  • 1 - Draw smooth text
  • 2 - Draw smooth line art
  • 4 - Draw smooth image

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("SMOOTH_FLAGS")
currentParameter.value.Long = 1 Or 4
currentFormat.UpdateParamFrom currentParameter


TEXT_ENCODING

(Used with PostScript write only.) This parameter specifies which encoding scheme should be used to convert binary image data to the text format when saving raster image into the PostScript document.

Data type:

UINT

Valid Values:

  • IG_PDF_TEXTENC_NONE = 1 - no encoding used
  • IG_PDF_TEXTENC_ASCII_85 = 2 - ASCII 85 encoding used
  • IG_PDF_TEXTENC_ASCII_HEX = 3 - ASCII HEX encoding used

Default Value:

IG_PDF_TEXTENC_ASCII_85 = 2

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter =
currentFormat.GetParamCopy("TEXT_ENCODING")
currentParameter.value.Long = IG_PDF_TEXTENC_NONE
currentFormat.UpdateParamFrom currentParameter


TYPE

(Used with PostScript write only.) This parameter specifies a type of the output PostScript document when saving to PostScript.

Data type:

UINT

Valid Values:

  • IG_POSTSCRIPT = 0 - PS file
  • IG_EPS_NO_PREVIEW = 1 - EPS file with no preview
  • IG_EPS_STANDARD_PREVIEW = 2 - EPS file with standard preview
  • IG_EPS_EXTENDED_PREVIEW = 3 - EPS file with extended preview

Default Value:

IG_POSTSCRIPT = 0

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("TYPE")
currentParameter.value.Long = IG_EPS_STANDARD_PREVIEW
currentFormat.UpdateParamFrom currentParameter


WIDTH

This parameter determines the width of PS page to load.

Data type:

Long

Default Value:

0

Valid Values:

Any positive value

Example:

Dim currentFormat As IGFormatParams
Dim currentParameter As IGControlParameter
Set currentFormat =
frmMain.IGFormatsCtl1.Settings.Format(Index)
Set currentParameter = currentFormat.GetParamCopy("WIDTH")
currentParameter.value.Long = 1
currentFormat.UpdateParamFrom currentParameter


Using ImageGear Recognition Component

Using ImageGear Recognition Component1

The ImageGear Recognition component is a set of functions that provide access to ScanSoft's document recognition technology.

This core software module provides unsurpassed recognition accuracy for almost any document, including those produced on typewriters, dot-matrix printers, ink-jet printers, laser printers, and phototypesetters, as well as photocopied and faxed versions of any documents. It also allows for recognition of handwritten text, check marks and a veriety of bar codes.

Figure 1 below illustrates a simple application that takes a page image as input and produces recognized text in a variety of output formats.

Figure 1. Sample Application
1Portions of this document are excerpted from ScanSoft's OmniPage Capture SDK 12.5 reference materials. Copyright (c) 2004 ScanSoft, Inc. All rights reserved. ScanSoft is a trademark or registered trademark of ScanSoft, Inc. in the United States and other countries.


What the ImageGear Recognition component can do?

ImageGear's Recognition component enables you to build OCR applications for the Windows development environment. An application using the Recognition API can:

  • Accept as input any image file format supported by ImageGear.This image data can be binary, gray, or color.
  • Recognize a document image and export text in any format defined by ScanSoft SDK. These formats include 8-bit text, HTML, XML and Word processor formats such as MS Word or WordPerfect.
  • Select the language or languages of documents to be recognized. The list includes English, Eastern and Western European languages, Cyrillic based languages (Russian), the Baltic languages, Turkish and Greek. Documents with multiple languages can be recognized with accuracy because the API allows the application to specify the set of languages for recognition.
  • Learn, save, and (later) load character recognition data for similar documents. The software learns as a result of normal recognition, and acquires additional information by using the API's text verification system.
  • Enable end users to verify text during the recognition process.
  • Increase recognition accuracy with built-in and user-defined dictionaries.
  • Output confidence values for post-recognition processing.
  • Automatically segment the page to correctly recognize text on pages with complex or irregular layouts, including tables, reverse video, and line art as well.
  • Allow the user to manage delineate zones of a document page and then specify treatment for those zones. This includes the ability to correct the OCR engine's automatic segmentation between the segmentation phase and the recognition phase.
  • Process both text and graphics. The recognition software's ability to distinguish graphics from text can provide the basis of a compound document processing system.
  • Automatically detect fax, dot matrix, and other degraded documents and compensate accordingly.
  • Use the new scalable voting architecture that provides developers with 2 pre-made voting interfaces (OmniPage and PLUS) and direct access to 3 leading OCR engines (MOR, MTX and FireWorX).
  • Recognize handwritten text using a numbers only module or alphanumeric module.
  • Process questionnaries, educational tests and other form-like documents using the Optical Mark Recognition feature.
  • Recognize both 1D and 2D bar codes (provided that both BAR and BAR2D modules are licensed).


The ImageGear Recognition component and multi-threading

ImageGear OCR component is thread safe. Note however, that the underlying objects are process-global. It is application's responsibility to ensure that the objects are maintained correctly within all threads.

No reentrance is allowed withing the same thread. This can occur when the API is making an application defined callback. When the focus of control is in the application-defined callback, no API functions of the Recognition component can be called.

Only one instance of the IGRecCtl ActiveX control is allowed per process.


Working with the ImageGear Recognition component

The structure of the Recognition component is presented in the following scheme:

IGRecCtl
 + - IGRecDocumentCollection
 +     IGRecDocument[]
 |     + - IGRecPageCollection
 |     +     IGRecPage[]
 |     |     + - IGRecPageImage
 |     |     | + - IGRecZoneCollection
 |     |     |       IGRecZone[]
 |     |     + - IGRecFixedCollection
 |     |     |     IGRecCharacter[]
 |     |     + - IGRecPageStatistics
 |     |
 |     + - IGRecTemplateManager
 |     |
 |     + - IGRecOutputManager
 |     | + - IGRecOutputFontSettings
 |     | + - IGRecOutputMarginSettings
 |     | + - IGRecOutputSeparatorStrings
 |     |
 |     + - IGRecCharsetManager
 |     | + - IIGRecFixedCollection
 |     |       IGRecRecognitionLanguage[]
 |     |
 |     + - IGRecDictionaryManager
 |     |     + - IGRecUserDictionaryEditor
 |     |       + - IIGRecDictionarySectionCollection
 |     |             IGRecDictionarySection[]
 |     |             + - IIGRecDictionaryWordCollection
 |     |                   IGRecDictionaryWord[]
 |     |
 |     + - IGRecTrainingManager
 |     + - IGRecPreprocessingSettings
 |     + - IGRecHNRSettings
 |     + - IGRecMORSettings
 |     + - IGRecOMRSettings
 |
 + - IGRecModuleInfo[]
 + - IGRecBarcodeInfo[]
 + - IGRecCodePage[]
 + - IGRecOutputFormat[]
 + - IGRecSpellLanguage[]

IGRecCtl ActiveX control provides access to all objects of the Recognition component. It contains the collection of documents, and allows to control global settings of the recognition engine.

IGRecDocument keeps the collection of IGRecPage objects, and maintains document-wide settings, such as dictionary and output settings. IGRecPage is an object which binds the image and the recognized text.

The image is presented through the IGRecPageImage object. This object is responsible for importing images from ImageGear to the internal storage of the recognition engine. It also allows to export images back into ImageGear. IGRecPageImage object contains the collection of zones of the image. Zone denotes an area in the image that should be recognized with specific recognition module, filling method, language or other settings.

Exact output of the recognition can be investigated through the collection of IGRecCharacter objects. An IGRecCharacter object contains all the information about a recognized character, including its UNICODE value, position on the page, font type and size, and confidence.

Simple recognition application

This section describes how to create an application in Visual Basic, using the ImageGear Recognition component. For this example we use the default names for all ImageGear controls, in particular, IGRecCtl1 for the Recognition control.

  1. Use the steps created in Getting Started chapter to create a Visual Basic application that can load and display images.
  2. Add ImageGear Recognition and ImageGear Processing controls onto the form.
  3. Add the following code to the Form_Load subroutine:
    IGCoreCtl1.AssociateComponent
IGProcessingCtl1.ComponentInterface
    IGCoreCtl1.AssociateComponent IGRecCtl1.ComponentInterface
    IGRecCtl1.Initialize
  1. Add menu item Recognize to the form's menu (mnuRecognize).
  2. Add the following code to the mnuRecognize_click procedure:
Private Sub mnuRecognize_Click()
    Dim RecDocuments As IGRecDocumentCollection
    Dim RecDocument As IGRecDocument
    Dim RecPages As IGRecPageCollection
    Dim RecPage As IGRecPage
    Dim RecOutputManager As IGRecOutputManager

    If (currentPage.IsValid) Then
        Set RecDocumentCollection = IGRecCtl1.Documents
        Set RecDocument = RecDocumentCollection.AddNew
        Set RecPages = RecDocument.Pages
        Set RecPage = RecPages.AddNew
        RecPage.Image.ImportFromIGPage currentPage
        RecPage.Recognize
        Set RecOutputManager = RecDocument.OutputManager
        RecOutputManager.FormatLevel =
IG_REC_OUTPUT_FORMAT_LEVEL_DROP
        RecOutputManager.FileFormat = "Text - Standard"
        RecOutputManager.OutputToFile "rectest.txt", 0, 0, 1
    End If
End Sub
  1. Run the sample. Open a test image, using the sample's Open menu item. If the ImageGear has loaded the image successfully, use the Recognize menu item. ImageGear Recognition component will recognize the page, and save the result of recognition to a text file.

Error handling

ImageGear Recognition component reports errors in the same way as other ImageGear components do. When an error occurs in the underlying ScanSoft's modules, ImageGear reports an error with error code IGE_REC_SCANSOFT_ERROR. If you IGError event to track errors, you can use Value1 field of the IGResultRecord object to obtain the original error code from ScanSoft's library.

Working with Recognition Component API objects

The objects of the Recognition component API wrap the internal objects provided by the ScanSoft recognition toolkit. Each time when an API function or method returns an object reference, it creates a new COM object. If the same object is retrieved several times, a new wrapper object is created. However, they all reference the same internal object of the ScanSoft recognition engine.

There is no need to explicitly destroy the API objects. They get destroyed by the COM framework automatically when they get out of program scope. The actual internal objects are deleted as a result of API calls such as removing an item from the collection, loading a zone file, etc.

Working with Documents

A document is logically a collection of zero or more pages. An application can create a new document or open an existing one. For a given IGRecDocument object it can add new, remove or use existing pages whose images are to be processed in some way. The IGRecCtl .Documents collection represents the open documents in the Recognition component. Only the physical memory and free hard disk space limit the number of concurrently open documents. There can be only one active document at a time and it is the responsibility of the application to activate one of these by setting the ActiveDocument property of the Recognition control. Before quitting, the application has to close all newly created or opened documents.

Recognition component allows to save documents as ScanSoft's IPRO Document files. IPRO Document file is a compound file containing the image objects, any recognition results and other objects such as User dictionaries or zone templates, all relating to one document. The IPRO document file is always an exact copy of the IPRO document currently in memory. This means that when the calling application performs any operation on it (e.g. removing pages), it will immediately be reflected in the IPRO document file, as well.

Importing images into Recognition component

Recognition engine uses its own internal image storage. To supply recognition engine with input data, you should first load an image to ImageGear storage (IGPage). You can load images from any ImageGear supported image location, such as file, URL, or memory, or retrieve images from scanner. Then you can import the image into Recognition page.

Use the ImportFromIGPage method of the IGRecPageImage object to import images from IGPage to IGRecPageImage.

If the source IGPage contains a grayscale image, the import method can convert it to bitonal. If the source IGPage contains a color image, the import method can convert it to grayscale or bitonal. The way this function will handle the different image types (such as bitonal, grayscale or color images) is called the primary color reduction mode. The reduction mode applied during the execution of this method is specified in the PrimaryReductionMode property of the IGRecPreprocessingSettings object.

Use the ExportToIGPage method of the IGRecPageImage object to export the pixel data from IGRecPage object to IGPage object.

Note that pixel data are copied into IGRecPageImage object rather than shared between IGPage and IGRecPage. If you perform some preprocessing operation on the recognition page, and would like to access the modified image, for example, in order to display it, you'll need to export the image to an IGPage object.


Preparing the image for recognition

Before recognizing an image, SDK functions can be used to apply some image pre-processing procedures to enhance the quality of an image, typically with the Preprocess method of the Image object. The purpose of image enhancement is to get more accurate auto-zoning and recognition. These pre-processing procedures include:

  • Inversion: automatic, programmed or none.
  • Orientation: automatic, programmed or none.
  • Deskewing: automatic, programmed or none.

There are some properties of the IGRecPreprocessingSettings object, which you can use to influence the behavior of most of these image enhancement steps. These document level properties have a global scope and influence all the images loaded into the document. They are: InversionMode, RotationMode, DeskewMode, Skew, etc.

In addition to these, sometimes, image despeckling and/or resolution enhancement are also performed internally to improve the success of the above transformations.

The image pre-processing functions can also be called one by one. In your code you can use the different methods of the IGRecPageImage object: Invert, Rotate, Deskew, etc. When the application calls any of these methods, the appropriate enhancement step is immediately performed on the image and the result is available to both the recognition engine and the application. These methods do not have progress monitoring facilities.

Pre-processing operations

Here we summarize information on each image modification step:

  • INVERSION
  • DESKEWING
  • ROTATION and MIRRORING
  • DESPECKLING
  • RESOLUTION ENHANCEMENT

The topics include properties and methods not linked directly to the Preprocess method of the IGRecPageImage object.

INVERSION

Image inversion can be done on any image (bitonal, grayscale or color) loaded to the recognition engine. Recognition needs black or dark characters on a white or pale background.

The Invert method of the Image object immediately inverts the image - or its specified rectangle area. This function ignores the InversionMode property setting of the IGRecPreprocessingSettings object. The inverted image replaces the original one.

This mode-induced inversion is performed when the Preprocess method of the Image object is called and it always acts on the entire image. The inverted image replaces the original one; it keeps its original type (bitonal, grayscale or color) and format and is available to the recognition engine and the application.

If auto-inversion is set, grayscale or color images undergo an implicit secondary conversion to create a clean bitonal image. If auto inversion and despeckle mode are ON for a bitonal image with resolution over 280 dpi, a despeckled bitonal image is created. Detecting whether inversion is needed or not is done on the bitonal image - the despeckled one if available. These bitonal images are not available to the application. If the recognition engine decides that inversion is needed, the whole original image is inverted.

DESKEWING

Image deskewing can be done on any image type (bitonal, grayscale or color), either automatically or with a programmed value. A deskewed image should increase auto-zoning and recognition accuracy.

The Deskew method of the IGRecPageImage object immediately deskews a whole single image by an amount defined in the method's parameter - up to 30 degrees. The DetectSkew method of the IGRecPageImage object can be used to detect the amount of skew in an image.

The Deskew method ignores the deskewing mode setting set through the DeskewMode property of the IGRecPreprocessingSettings object and also the value given by the Skew property. The deskewed image replaces the original one, retaining its type and format.

The document's deskewing mode setting is made with DeskewMode property of the IGRecPreprocessingSettings object, taking values from enumIGRecDeskewModes.

The skew value to be applied for DSK_SET is defined with Slope property of the IGRecSkewInfo object. The value needed here can be obtained by DetectSkew method of the Image object.

This mode-induced deskewing is performed when the Preprocess method of the IGRecPageImage object is called. The deskewed image replaces the original one; it keeps its original type and format and is available to the recognition engine and the application.

When IG_REC_DESKEW_MODE_SET is set, grayscale or color images undergo an implicit secondary conversion to create a clean but hidden bitonal image. If IG_REC_DESKEW_MODE_AUTO is set and despeckle mode is ON for a bitonal image with over 280 dpi, a hidden, despeckled bitonal image is created. Skew detection is done on the bitonal image - the despeckled one if available. These hidden bitonal images are not available to the application. The detected deskew value is applied to the original image.

ROTATION and MIRRORING

Image rotation in multiples of 90º can be done on any image type (bitonal, grayscale or color).

The Orient method of the IGRecPageImage object immediately rotates and/or mirrors a whole single image loaded in the recognition engine. Seven combinations of rotation and mirroring are available. This function ignores the image rotation mode setting of the recognition engine. The transformed image replaces the original one, keeping its type and format.

An image rotation mode setting is made with the Rotation property of the IGRecPreprocessingSettings object, taking the values from enumIGRecRotationModes. Mirroring is not available at this stage.

This mode-induced rotation is performed whenever the Preprocess method of the IGRecPageImage object is called. When a fixed value is given (e.g. IG_REC_ROTATION_MODE_LEFT), the original image is rotated.

When IG_REC_ROTATION_MODE_AUTO is set, grayscale or color images undergo an implicit secondary conversion to create a clean bitonal image. If IG_REC_ROTATION_MODE_AUTO is set and despeckle mode is ON for a bitonal image with over 280 dpi, a despeckled bitonal image is created. Orientation detection is done on the bitonal image - the despeckled one if available. This bitonal image is not available for the application. The required rotation is performed on the original image.

DESPECKLING

Image despeckling relates to bitonal images. These may be imported as bitonal or may be generated, explicitly or implicitly, from grayscale or color images. Image despeckling can improve the quality of auto-zoning, recognition and the automatic pre-processing transformations: the detection of inverted characters, skew and orientation is more reliable when run on a despeckled bitonal image.

The Despeckle method of the IGRecPageImage object immediately despeckles a single bitonal image in the recognition engine's authority. This functions independently of the despeckle mode setting and the resolution of the original image. The transformed image replaces the original one, keeping its format, and is available to the application.

An image despeckling mode setting is given by DespeckleMode property of the IGRecPreprocessingSettings object. This mode setting influences black-and-white images with a resolution of 280 dpi or greater. This mode setting is applied whenever any of the following methods are called:

  • Locate of the IGRecZoneCollection object
  • Recognize of the IGRecPage object
  • Preprocess of the IGRecPageImage object with IG_REC_DESKEW_MODE_AUTO, IG_REC_ROTATION_MODE_AUTO or IG_REC_INVERSION_MODE_AUTO.

When a grayscale or color image is converted to bitonal, it usually results in a cleaned image. This can be influenced by the values in the Binarization and Threshold properties of the IGRecDocument object.

With these mode-induced transformations, the cleaned or despeckled bitonal image exists in parallel with the original one and is not available to the application.

RESOLUTION ENHANCEMENT

Resolution enhancement may be performed internally during image conversions. It involves a doubling of the resolution of a bitonal image resulting from an implicit secondary image conversion from grayscale or color. The doubling is performed on the basis of information available from the greater pixel depth in grayscale and color images. The resulting bitonal image exists in parallel with the original one, and is not available to the application.

The application has no control over when resolution doubling is done, only on whether and how it is done.

The next step after the image enhancement pass is to determine the zones or areas to be recognized.

Zones and images

A zone is a rectangular area in the image, up to the full size of the image, containing a feature of interest to the user. The image data covered by each zone is handled and processed (typically recognized) separately, according to zone-specific parameters. The IGRecZoneCollection object represents an ordered set of IGRecZone objects for an image. The number of zones in the zone collection can be obtained at any time with the Count property.

The characterizing attributes of a IGRecZone object are the followings:

  • size and position,
  • identifier of the zone (identifies the zone in the zone collection),
  • type (determines the role of the zone in the image layout, i.e. Flowed text, Table or Graphic),
  • filling method (specifies the nature of the zone content, i.e. how the zone's area was supposed to be filled originally),
  • recognition module (the recognition module to be applied for the zone),
  • a Character Set filter,
  • what kinds of checking are enabled for the zone content,
  • User dictionary section assigned to the zone (for UD-checking),
  • user-written checking callback assigned to the zone.

Zones can be added to the Zones collection in four different ways:

    1. automatically (auto-zoning),
    2. manually (by specifying the zone coordinates and other zone),
    3. from an external storage file, called a zone file, or
    4. from a template, stored in the document file.

A. AUTO_ZONING

The automatic page-layout decomposition process (auto-zoning) can be activated directly by calling the Locate method of the IGRecZoneCollection object for finding text blocks on the image. It creates an entire Zone collection for the given image.

The Locate method takes a rectangle that describe the active area. This rectangle serves to limit the area inside which zones are searched and defined. If an empty rectangle is passed, zones are located in the whole image.

The ImageGear Recognition component offers three different algorithms to be applied during auto-zoning. Use the DecompositionMethod property of the IGRecDocument object to specify which Page parser algorithm setting should be applied during auto-zoning.

When auto-zoning is used, each resulting zone is initialized with

  • a unique auto-assigned zone identifier,
  • the zone's detected coordinates,
  • the determined zone type.

All zones created by this method have

  • the default filling method IG_REC_FILLING_METHOD_DEFAULT,
  • the automatic recognition module selection IG_REC_RECOGNITION_MODULE_AUTO setting,
  • the IG_REC_CHARSET_FILTER_DEFAULT Character Set filter, to specify the use of global filtering, if any.
  • all of the checking enabling/prohibiting properties (e.g. SpellCheckingEnabled) are set to True (enabled).

Any zone can be specifically overridden by setting the properties of the Zone object, which allows you to change the attributes of a zone in the zone collection.

B. ADDING ZONES MANUALLY

In addition to, or instead of the automatic zone location, you can program your own zones. To add zones to the zone collection manually, the application should invoke the AddNew or Insert methods of the IGRecZoneCollection object.

C. ADDING ZONES FROM AN EXTERNAL FILE

The third way of creating zones is by reading zones from a file (called a zone file) that contains the attributes of a previously saved zone set. An application can save the current zone definitions to a zone file any time with the SaveTemplateToFile method of the Zones collection object, while it can load them from a zone file with the LoadTemplateFromFile method.

When a zone file is loaded, any previous zones on the image are removed. Loading a zone file influences only that particular Image object whose IGRecZoneCollection 's Load method is used.

D. ADDING ZONES FROM A TEMPLATE

A template is a named zone file saved in the IPRO document file. The main advantages of templates compared to external zone files is that they are stored in the document file so they are portable and can be applied to multiple pages in the document by a single method. Templates can be created from any IGRecZoneCollection object (SaveTemplateToDocument method) or from an external zone file by importing it into the IGRecDocument object (ImportTemplateFromFile method of IGRecTemplateManager object). The application can apply templates to any IGRecPageImage object in the given page range. When you apply a template to an IGRecPageImage object, the Zons collection of the object inherits all of the zones and their attributes from the specified template.

When a template is applied, any previous zones on the image(s) are removed. If you modify the contents of the zones collection after applying the template, the original template is not affected.

If the application calls the Recognize method of the IGRecPage object whose IGRecPageImage object has an empty zones collection, the auto-zoning function is called automatically.

E. DETECTING TABLES WITHOUT VISIBLE CELL SEPARATORS

Tables with visible gridlines (gridded tables) in an original page can usually be detected successfully by the auto-zoning function.

In contrast, tables without visible cell separators in the original are harder to identify as tables, because they could equally as well be the word lists or data arranged in columns. ImageGear Recognition Component offers an algorithm for detecting such non-gridded tables more confidently. This feature of the can only be used in conjunction with an auto-zoning step. The algorithm is based on the result of the character recognition. This algorithm may be allowed to run only if all the following conditions are met:

  • the zone list was created through auto-zoning,
  • there were no changes in the zone list (no zones were inserted or deleted)
  • none of the zones in the zone list were updated by modifying the zone coordinates
  • the feature is enabled through the NongriddedTableDetectEnabled property of the IGRecDocument object.


Recognition Modules

ImageGear Recognition component can load a number of recognition modules. The ones present depend on the component's configuration. You can program the recognition module to operate on a given zone with the IGRecZone object's properties. This allows your application to perform "multi-module" recognition on any image.

The enum enumIGRecRecognitionModule lists the possible recognition modules.

The Module property of any zone should contain one of the recognition module IDs, or the special one: IG_REC_RECOGNITION_MODULE_AUTO. The latter means that the recognition engine chooses the module most likely to be appropriate. It starts by consulting the filling method set for the zone.

The filling method describes the type of data expected in the zone, e.g. a bar code, handprinted or machine generated text. A degree of auto-detection is available for filling method, with the DetectFillingMethod method of the IGRecZoneCollection, useful when the precise filling method used on incoming documents may not be known in advance. It is the application's responsibility to specify a valid recognition module-filling method pair. Any incorrectly set zone will have no recognition result. Some filling methods can be linked successfully with one and only one recognition module (e.g. IG_REC_FILLING_METHOD_OMR and IG_REC_RECOGNITION_MODULE_OMR).

However, some recognition modules support more than one filling method, and some filling methods are accepted by more than one recognition module. For example, with mid-quality 9-pin dot-matrix text, either IG_REC_RECOGNITION_MODULE_DOT or one of the omnifont modules could be used. With mid-quality 24-pin dot-matrix text, try IG_REC_RECOGNITION_MODULE_OMNIFONT_MOR with IG_REC_FILLING_METHOD_DRAFTDOT24 and IG_REC_FILLING_METHOD_OMNIFONT.

You can find detailed information on this and the different recognition modules in the topic Specification for the recognition modules.

With IG_REC_RECOGNITION_MODULE_AUTO setting, recognition engine consults the filling method; if only one recognition module is suitable, it is used. When there is a choice, it uses various checks (character set, image size etc.) to select the best one. Thus, it protects against an invalid FillingMethod-RecognitionModule pair.

If the recognition module is not present when it is needed, the recognition function (Recognize method of the IGRecPage object or the Recognize method of the IGRecPageCollection collection) returns with an API_MODULEMISSING_ERR, and there will be no recognized data for the zone concerned.

To avoid the risk of this, we recommend checking the presence and correct installation of the necessary recognition modules with the IGRecModuleInfo collection just after the Recognition component's initialization.

Recognition

The recognition process is typically initiated by the Recognize method of the IGRecPage object. This method recognizes the given page. Alternatively, the application can also use the Recognize method of the IGRecDocument to recognize more than one page.

The Recognize method will process the image that belongs to the given IGRecPage object. The method uses the Zones collection though the Zones property of the IGRecPageImage object or if it is empty, automatically calls the page-layout decomposition process (auto-zoning). If the image is not a bitonal image, an implicit secondary image conversion step is performed automatically to convert the image to a temporary bitonal image in the background (the IGRecPageImage object remains unaffected). This implicit image conversion can be influenced with the SecondaryReductionMode property of the IGRecPreprocessingSettings object.

The function enumerates the zones in the Zones collection and activates the appropriate recognition modules for them. The recognition modules are given the calculated Character Set information zone by zone.

After the call to the Recognize method the recognition data is saved in the IPRO document file. The application then can either convert this recognition data to a final output document file or to a memory buffer using the IGRecOutputManager object. The user can also access the raw result of the recognition.

The recognition data contains the recognized character codes, the position of the character in the image and different character formatting attributes (character size, bold, italic, underline, serif, sans serif, monospaced). Note that this format is not documented. A separate call to OutputToFile or OutputToMemory method of the IGRecOutputManager object is necessary to make the recognized text available.

Structured Data Output

After recognition, the application can also access the recognition data as a structured data output (as a collection of IGRecCharacter objects).

Alternatively, the recognition data can be converted through the "2G Type 2" or "2G Type 3" converters into a final output document as described at the Exporting to the final output document topic. (For more details on these converters, see: Special Output Text Formats).

Any of these above also provides confidence information for the recognition as follows:

  • Confidence of the character recognition, and
  • Confidence of the space estimation (of the decision whether there is a space in front of the recognized character).

For more information, see also the Confidence reporting section.

OCR performance issues

There are different issues to be taken into account when you want to improve accuracy. Typically they also have consequences for the processing speed.

1. Image quality

This is one of the most important factors that influences accuracy. A resolution of 300 dpi or 400 dpi is best for recognition.

Use image preprocessing to enhance the image quality to get more accurate auto-zoning and recognition.

Load grayscale or color images into the recognition engine without any color reduction and combine this with image preprocessing to get a more accurate output.

2. Auto-zoning algorithm to be applied

If auto-zoning is needed, use IG_REC_DECOMPOSITION_METHOD_STANDARD, the most accurate page parser available in the Recognition component. This results in better throughput in overall accuracy, though in some complex cases it might require significantly more time to complete.

If processing speed is also important, consider using the algorithm IG_REC_DECOMPOSITION_METHOD_LEGACY.

Finally, use IG_REC_DECOMPOSITION_METHOD_FAST, when the processing speed has a higher priority than accuracy and the image content of the originals is simple enough (e.g. good quality letters without graphics or tables). In this case, it is recommended to disable also the Non-gridded table detection algorithm (see: NongriddedTableDetectEnabled property of the IGRecDocument object).

3. Correct RecognitionModule-FillingMethod choice

The most suitable filling method and recognition module should be specified, as described in the previous topic.

If more than one recognition module supports a given filling method, consider whether for your application it is better to specify the recognition module in your program rather than accept the setting selected by the recognition engine through the IG_REC_RECOGNITION_MODULE_AUTO option.

By choosing different combinations of the auto-zoning algorithm and specific recognition modules, 2-3 times faster recognition speed at the cost of increased error rate (1,5-2 times more errors) can be achieved.

4. Trade-off settings

These are set at the document level, and determine how thorough the recognition should be. For example, should more time be taken for higher accuracy. TradeOff modes are listed in the enumIGRecTradeoffModes enumeration.

See also the Specification for the recognition modules topic.

5. Module specific settings

The behavior, and hence accuracy, of some recognition modules can be influenced by separate module-specific settings.

BAR:

The bar code module auto-detects the bar code type, but the BarcodeTypes collection can be used to limit the acceptable choices. If it is certain that only one type will be used, it is possible to validate only that type. By default, five main types are enabled.

HNR:

Accuracy can be improved if the application can tell the module the precise location of characters (e.g. characters from a structured form with comb or cell boxes). If this can't be done, the module will auto-detect their positions. It's possible to specify European or American handprint styles. To recognize zones with handprinted numbers and no letters, choose IG_REC_RECOGNITION_MODULE_HNR rather than IG_REC_RECOGNITION_MODULE_RER.

MOR, PLUS2W and PLUS3W:

For poor-quality fax output, the fax compensation property (FaxHandlingEnabled property of the IGRecMORSettings object) can be used.

OMR:

This module has a setting to indicate whether checkbox borders will be visible or invisible in the loaded image. A value for mark sensitivity can also be given (FrameDetectionMode and Sensitivity properties of the IGRecOMRSettings object).

In the Recognition module specifications each module has its own section Accuracy Issues.

6. Character Set

This determines at zone level which set of characters should be considered as valid. By eliminating characters that are known not to appear in the zone, accuracy can be improved. If non-valid character shapes are encountered in a zone, they are either replaced by the rejection symbol or forced to a similar-shaped validated character. A major component of the Character Set is the language choice. Setting the wrong language(s) and/or language dictionary (or leaving unneeded ones enabled) is likely to slow down recognition and reduce accuracy considerably. The steps for defining the Character Set are given (with examples) in a following section.

7. Training

The machine print recognition modules accept training files through the LoadFromFile method of the IGRecTrainingManager object. It's worth using a training file if there are some repeatedly misformed characters in a series of uniformly degraded documents, or the module repeatedly misreads a certain character.

8. The Checking subsystem

This consists of any combination of the following checking tools:

  • Spell checking (language-based checking),
  • User dictionary based checking (with words, strings or character patterns) or
  • User-written checking routines.

The Checking subsystem will find characters, words or zone contents that do not match program specified rules for that zone. It can be instructed either to only mark these occurrences, or be given permission to change them when it finds a sufficiently similar acceptable solution. See the forthcoming section for precise examples.

Character Set limitation and the Checking subsystem (CSS) both influence accuracy, but in different ways. Both, either or none of them can be used; the integrator should decide which balance is best. Their effects, when used separately, can be summarized as follows:

  • Limiting the Character Set: Recognition results outside the Character Set will not be used.
  • CSS with changes: Recognition results outside the CSS rules are less likely; both non-CSS solutions and changed items will be flagged.
  • CSS used without changing: Text appears as recognized, but non-CSS solutions will be flagged.

Limiting the Character Set gives the program the greatest decision power. Using the Checking subsystem to only flag errors is safest, but requires more post-processing outside the recognition engine to check all non-conforming cases.

A typical balance would be to impose broad restrictions by limiting the Character Set (e.g. specifying the permissible languages) but using the checking subsystem for detailed control over parts of the recognized text where it's important that the original data be recognized and passed for checking precisely as it was written (e.g. for an ID Code incorporating a check-digit function). This later checking should make it possible to determine whether any error is due to optical recognition errors or was originally invalid.

Defining the Character Set

You can improve text recognition accuracy by narrowing the range of characters valid for recognition. This way the recognition engine doesn't always have to choose its solutions from all 500 characters in the Recognition component's Total Character Set. (The multi-lingual omnifont MOR recognition module supports all of these characters; other recognition modules recognize fewer of them.) The Character Set concept is documented in detail in the topic Character Set. Broadly, the Set is compiled as follows:

Language environment

This involves enabling one or more of the 114 available languages in the RecognitionLanguages collection through the RecognitionLanguages property of the IGRecCharSetManager object and perhaps characters validated individually with the LanguagePlus property. Selecting only needed language(s) has a major impact. For example, selecting German only immediately INVALIDATES the Cyrillic and Greek alphabets and over 150 other unneeded accented letters.

For a list of languages with their validated accented letters, see Languages and characters. For a list of accented letters and the languages, which use them, see Characters, languages, modules. For an overview of the topic, see Introduction to language-related topics.

Recognition module capabilities

Defining a recognition module for processing a zone may also restrict the available languages or characters within the Language environment. For example, RER cannot read Russian, and the HNR recognition module cannot process letters at all.

Filtering

The SDK provides filters (enumIGRecCharSetFilter) to further narrow down the Character Set, by enabling only certain character classes, e.g. digits, uppercase letters etc. The value IG_REC_CHARSET_FILTER_ALL means no filtering.

Re-Expanding

An application may require exceptions to the filter rule. The most flexible way to re-expand the Character Set with individual characters after filtering to specify them with the FilterPlus property of the IGRecCharSetManager object and validate them with the IG_REC_CHARSET_FILTER_PLUS flag in the required zones.

Zone-level modification

In addition to the global, page-level definition of the Character Set, the choice of Recognition module, filling method, filtering and use of the expansion string can be fine-tuned on a local, zone level. Auto-located zones will be set to take the global filter settings. Manually created or modified zones may contain zone-level settings. Local filtering and expansion (with IG_REC_CHARSET_FILTER_PLUS) can be set by the Filter property of the IGRecZone object. The possible local filter values are the same as the global ones, with an additional one: IG_REC_CHARSET_FILTER_DEFAULT. If this is the only filter set, the zone inherits the global filter setting.


Checking

The checking subsystem is used to achieve better accuracy and mark uncertainties in the recognized output text. Its services are closely integrated into the recognition process. They are activated internally either during the recognition (by some recognition modules) or immediately after the recognition process. That is why all the checking related settings have to be set BEFORE calling the IGRecPage .Recognize or IGRecDocument .Recognize methods.

The checking subsystem consists of the following three independent parts:

  • Spell checking: using language-specific dictionary elements,
  • UD-checking: checking against the User dictionary (with words, strings or patterns),
  • User-written checking: using user-written callback functions.

Any combination of these parts is possible during the recognition process as steps in determining the acceptability of words. Note that the use of these checkings can still be enabled or disabled separately at zone level.

Spell checking

There are two kinds of the spell checkers:

  • Language dictionaries ("language checking"), and
  • Vertical dictionaries ("vertical language checking").

The ImageGear Recognition component is delivered with eighteen different Language dictionaries (English, German, Dutch, Polish, Russian etc.). These are generic language dictionaries; they contain between 100,000 and 200,000 entries.

Vertical dictionaries apply to special professions and in the toolkit they can be treated as extensions to the Language dictionaries, though they can even be used when no Language dictionary is specified.

The ImageGear Recognition component is delivered with 8 different Vertical dictionaries for two professions (medical and legal) in four languages (English, German, French and Dutch).

Specifying the Spelling language (Language dictionary) and/or a Vertical dictionary is a document-level setting. Once a Language dictionary has been specified, the language checking will be applied to all zones on the image, unless their SpellCheckingEnabled property is set to False.

Similarly, once a Vertical dictionary has been specified, the vertical language checking will be applied to all zones on the image, unless their VerticalDictEnabled property is set to False.

UD checking

The checking subsystem can also make use of a User dictionary (UD-checking). A User dictionary is a collection of user-specified elements, the so-called UDitems. UDitems can be of two types: literal strings, usually words (as in the case of any wordprocessor's user dictionary) or Regular Expressions. A regular expression defines a pattern, range or class of characters, either singly or as a group. When an item is a regular expression, it means that during the UD-checking, strings passed for checking by a recognition module will be evaluated to see whether they conform to the pattern defined by the regular expression. A string being checked will be accepted if it conforms to at least one item in the specified section of the User dictionary.

Within the User dictionary the UDitems can be organized in different sections. Zones are always associated with a section of the User dictionary when they are created.

There can be different situations where it is worth doing UD-checking.

If the application uses spell checking and it consistently encounters words marked as uncertain that are spelled correctly, or it is known that the document contains many proper nouns, the application can reduce unwanted marking and improve recognition accuracy by performing UD-checking, to supplement the spell checking (assuming that the User dictionary has been prepared previously by adding the required words to it). In this case the UD-checking is complementary to the spell checking.

UD-checking without spell checking enabled is typically used in form-like applications (e.g. questionnaires), i.e. where the data to be recognized is highly structured and follows predictable patterns.

Specifying the User dictionary itself is a document-level setting. Once it is specified, it will be applied to all zones on the pages of the document. However, since the User dictionary may have several sections, each to be assigned to the different zones, different sets of dictionary items can be used for the different zones. For particular zones the UD-checking can be enabled or disabled with the UserDictEnabled property of the IGRecZone object.

User-written checking

This is performed through the CheckWord event fired by the IGRecCtl object. Depending on the UserCheckEnabled property of the IGRecZone object, the CheckWord event is either fired or not. During recognition, when it is fired, the user-written event handler gets the IGRecDocument object, the page number, the index of the zone (from which the string to be checked is derived) and the string to be checked. The event handler should evaluate the string, knowing the pattern of permissible zone content. Its opinion on the recognized string's acceptability should be expressed with one of the five values from the enumIGRecCheckOpinion enumeration and returned to the toolkit.

Applying checking

The most important property in controlling the checking subsystem is the CheckingEnabled property of the IGRecDocument object. This property is used to enable or disable the running of the checking subsystem.

If checking is enabled (which is the default setting), the correction of non-compliant words can be enabled or disabled. For this, the CorrectionEnabled property is used. If correction is disabled, non-compliant and suspicious words are flagged, but no auto-correction is done. When enabled, all these unchanged words are flagged, while some characters may be changed and marked as changed. (To access the flagged recognized information you should specify one of the Special Output Text Formats.) Correction is the default so the application should set this property only when it wants to explicitly disable the word correction feature.

The remaining checking related properties and methods are specific to the particular checking system.

Spell checking

The Spelling languages available in the current configuration can be obtained with the SpellLanguages collection object. The application can specify a language setting as the Spelling language, valid for the document with the SpellLanguage property of the IGRecDocument object.

When the Spelling language is set to IG_REC_SPELL_LANGUAGE_NO, the spell checking will not be activated for the zones of the page. The application may still use a User dictionary and/or user-written checking callback functions.

Spell checking with automatic spell language selection

In the special case when the specified Spelling language is IG_REC_SPELL_LANGUAGE_AUTO, the real language of the spell checking is determined using the language selection for recognition as follows:

  • if only ONE language has been set for the Language environment of the Character Set (RecognitionLanguages property of the IGRecDocument), this language is automatically selected for the spell checking too (assuming that the appropriate Language dictionary file is available).
  • if the language selection for recognition is empty, or it contains TWO or MORE languages, there will be no spell checking.

UD-checking

The prerequisites for checking with a User dictionary are

  • a properly prepared User dictionary,
  • a call to the LoadFromFile method of the UserDictionaryEditor object and
  • zones referring to sections in the User dictionary (if not the default section of the User dictionary is required).

The checking subsystem can handle two kinds of User dictionaries: native dictionary files (created or updated though the Save method of the UserDictionary object), and word-list file. The way of preparing a native User dictionary file is given in the next topic. A word-list file is a text file; it contains words, one in each line.

Before recognition, the LoadFromFile method of the UserDictionary object must be called with the name of the User dictionary. This method also defines the default section in the User dictionary. When creating a zone, its UserDictSection property can also be specified, referring to a section in the User dictionary. Zones having empty string in their UserDictSection property will use the default section of the User dictionary.

Note that the IGRecZoneCollection.Locate auto-zoning method always generates zones with an empty string in their UserDictSection property.

Please also note that a zone is subject to UD-checking only if the UserDictEnabled property is set to True.


Preparing / maintaining the User dictionary

Compiling and changing a User dictionary requires that the application specify a User dictionary in the LoadFromFile method of the IGRecUserDictionaryEditor object. That allows the content of the User dictionary to be listed; and items can be added or removed on request until Close is called.

Changes can be made permanent by calling the SaveToFile method.

A new User dictionary can be created by calling the CreateEmpty method.

Sections in the currently opened User dictionary can be enumerated with IGRecDictionarySectionCollection object. Each Section object contains a collection of IGRecDictionaryWord objects.

UDitems (the elements or entries) can be added to the User dictionary with the Add method of the IIGRecDictionaryWordCollection. If the referenced section does not exist it is created. Existing UDitems can be deleted from the User dictionary with the Remove method. Sections are automatically removed as soon as their last UDitem is deleted.


The output

One of the document's settings is the current Code Page, which can be set and/or obtained with the CodePage property of the IGRecCharSetManager. The IGRecCtl object provides the collection of available code pages through its CodePages member.

Recognized characters are stored internally in their UNICODE representiation. The current Code Page is taken into account either when converting a character to/from its UNICODE representation, or when converting the recognition data to the final output document.

The first can be done with the ConvertToCodePage or ConvertToUnicode method calls. These utility methods helps you when a method or property requires a UNICODE character or character string parameter, and you know only the character code in your target Code Page.

When the Convert method of the Converter object is called, it performs character code conversions from UNICODE into the current Code Page while it produces the final output document.

In most cases, the Code Page setting must be specified together with the Output Text Format for the final output document. While some output converters ignore the Code Page setting, others, typically the text converters, apply it during their running.

The current Code Page setting should be able to express all characters validated for recognition (i.e. the Character Set). You can check whether the current Code Page fulfills this requirement.

There can be some conflicts between the set of characters validated for recognition (i.e. the Character Set) and the Code Page selection. Namely, a selected Code Page may not support some characters. For example, if you select the Hungarian language and the current Code Page is Windows ANSI (Code Page 1252), the final output document will not contain some accented characters. Use the OutofCodePageCharacters property of the IGRecCharSetManager object to check whether the current Code Page setting contains all the characters of the current Language environment (language selection, the LanguagesPlus characters), and any characters listed as FilterPlus characters. The output of this property is a string of characters not supported by the current Code Page (non-supported characters).

If the language and Code Page settings are such that there are non-supported characters when output conversion is performed, the recognition engine tries to replace non-supported characters with somewhat similar shaped ones in the final output document. This substitution does not work in all cases; mainly it is good for replacing non-supported accented characters with un-accented ones. The final output document will contain a missing symbol in the place of characters, which were recognized correctly but could not be either exported or substituted.

The application can call the MissingSymbol property of the IGRecCharSetManager object to define which character from the current Code Page should be used to indicate a missing symbol.

Exporting to the final output document

After having successfully recognized the image (or images) of the document, use the OutputToFile method of the IGRecOutputManager object to convert the recognition data into the final output document. The Code Page, format of the final output document and the level of format retention should be specified by prior calls to the functions Document.CodePage, Converter.FileFormat, and Converter.TextLevel properties, respectively. The full list of supported output formats can be found in the Output Text Formats List topic.

To check whether a requested output format is available in the current configuration, enumerate the list of output formats with the OutputFormats member of the IGRecCtl object. You can get more information about any of the installed output text format converters with the properties of the OutputFormat object.

It is also possible to transfer the recognized text into a memory location instead of storing it into a file. To do this, the application has to invoke the OutputToMemory method of the Converter object. This method returns the recognized output as an array of bytes.

In some cases the application may need to access the recognized information on a per-character basis. For this structured data output, you can either use the Characters member of the IGRecPage object, or you can use either the "2G Type 2" or the "2G Type 3" output format. These latter file formats are created by a Convert or ConvertToMemory method call. They are documented in the Special Output Text Formats topic.

Format retention in final output documents

If you select an advanced word processor as the output text format for the final output document (i.e. Word for Windows, etc.), you may want the Recognition component to pass as much formatting information as it can collect from a document to make the layout result similar to the original one. The application can control the amount of formatting detail passed to the word processor by adjusting the different properties of the IGRecOutputManager object. Since there are a lot of different properties, which allow fine-tuning of the output, a shortcut is available with the FormatLevel property.

However, if the application wants to impose customized formatting, e.g. the output document paper size, the margins, or the fonts in the final output document, the individual properties of the IGRecOutputManager object should be used.

The recommended way of specifying formatting properties is as follows:

  • set the FormatLevel closest to your formatting requirements. Changing this property may change a series of other properties of the IGRecOutputManager object.
  • change the remaining properties, as required.

In the final output document not all possible formatting features can be used, since either they are not applicable or they were not implemented for that particular converter. For example, specifying the page margins in conjunction with a text output converter won't have any effect. The converters implement the various output formatting features as described in the Output converter formatting properties topic.

It is also possible to place marking characters in the final output document. These can mark suspect characters or words or transmit character position information from the original document. These marking characters can be placed regardless of the format level setting. They can be controlled through the different output coloring and output marking properties of the IGRecOutputManager object.

Suspect characters and/or words can be denoted by color, if the final output document supports that. They can also be marked by a user-defined character placed just before each suspect character or word. Character position information is given by inserted user-defined characters. This marking can signal line, table-row, paragraph, zone, and page boundaries in the output.

Embedded images in final output documents

The recognition engine is able to export images to the final output document for the graphics zones. This is called the Retain Graphics feature.

Recognized document output with embedded image requires the following steps:

  • Load the image.
  • Perform image pre-processing steps on the image, if necessary.
  • Call the Recognize method to perform recognition and create the recognition data file.
  • Set the IG_REC_OUTPUT_FORMAT_LEVEL_FULL or IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL setting, or specify the Retain Graphics feature directly through the GraphicsHandlingMode property of the IGRecOutputManager object.
  • Use the IGRecOutputManager.FileFormat and IGRecCharSetSettings.CodePage properties to specify an appropriate output text format for the final output document.
  • Call the OutputToFile or OutputToMemory method.

If the image being processed is a color or a grayscale one, the embedded image type depends on the value of the GraphicsHandlingMode property of the IGRecOutputManager object.

Confidence reporting

For some applications, it may be important to know the reliability of the recognized text generated by the Recognition component. These applications may require having additional confidence information for the recognized characters and/or words.

The Recognition component can provide confidence information for the correctness of the recognized text in two different ways:

  • The output-marking feature (e.g. IGRecOutputManager.SeparatorSettings.BeforeSuspectedCharacter property) enables the output manager method to place a user-defined character sequence into the final output document before suspiciously recognized characters and/or words. Alternatively, the suspicious characters and/or words can be set to a particular color in the output document to indicate recognition results with low confidence.
  • In another approach, the recognition engine can generate output, which consists of structured data for each recognized character. In this output there is one structure or record for each character. The character code of the recognized entity is the primary field. Other fields include the coordinates of the character on the image, the zone to which the character belongs to, the font information for the character, and the confidence information.

The output-marking feature is supported by most of the output converters. Marking low confidence recognition with color requires the selection of an output format that supports colored text (e.g. "Word 97, 2000, XP").

For more information on these converters, see the Output converter formatting properties topic.

A possible output for the marking feature might be as follows:

"We would like to ask you some questions, ta*king around 15 minutes"

The text extract above was generated using the output-marking feature, in which the asterisk ('*') character was set to mark the suspiciously recognized characters in the output.

Structured recognized output can be produced in output through one of the two special output converters (e.g. "2G Type 3"). Even more information can be retrieved through the Characters property of the Page object. This provides the most detailed information about the recognized data through the different properties of the Character object. As an example, the 2G Type output formats provide 2nd guesses for each character, while the CharacterArray also provides third guess (Character.Code3).

There are two properties providing character recognition confidence information. These are the Character.Confidence and the Character.SpaceConfidence properties.

Applications that examine the character confidence information can use a threshold value, above which the character value is treated as a suspicious result. A value of 64 is recommended for this purpose. A value less than 64 will indicate that the character was recognized with high confidence. A value of 64 or greater marks that code is suspicious.

NOTE: This value (64) is also used internally in the same manner when the output- marking feature for suspicious characters in the output text is enabled.
NOTE: The confidence reporting system works best when all three recognition modules are used in the voting scheme (RM_OMNIFONT_PLUS3W). If other machine print recognition modules are used (RM_OMNIFONT_PLUS2W, RM_OMNIFONT_MTX, etc) then confidence information is still available, but the ability of the system to properly report confidence will be reduced. This will result in a higher level of false negative and false positive reporting of suspicious recognition results.

Progress indication

Typically the most time-consuming processes are the recognition processes (IG_REC_TASK_RECOGNITION1, IG_REC_TASK_RECOGNITION2, and IG_REC_TASK_RECOGNITION3) and the final output document generation (IG_REC_TASK_WRITEFOUTDOC). In some particular cases, other processes like image importing (IG_REC_TASK_IMGINPUT) or image preprocessing (IG_REC_TASK_IMGPREPROCESS) might also take considerable time.

Sometimes it is advisable to provide the application user with feedback about these processes. The integrating application can register a callback interface for progress monitoring. The application can provide progress indication with this procedure. Additionally, this callback could also be used to abort the current processing before it finishes.

Processing statistics

The Page object has a Statistics property, through which after recognition the application can retrieve all the page-related statistical information (IGRecPageStatistics object).

The integrating application can retrieve timing and other statistical information about the pages processed.

The properties of the Statistics object are set by the recognition engine with the relevant information AFTER the page has been recognized. If the page has still not been recognized, these properties are set to zero (0). All timing data is measured in milliseconds.


Using ImageGear TWAIN Component

ImageGear supports the acquisition of images from TWAIN-compliant devices and from scanners for which there is a driver conformant with the ANSI/AIIM MS61-1996. standard. Note that the AIIM MS61 standard is sometimes known as the "ISIS/MS61" standard, but should not be confused with the "ISIS" scanner driver technology developed by Pixel Translations. This chapter applies only to TWAIN-compliant devices.

The ImageGear TWAIN component exposes the following objects:

IGTwainCtl
ImageGear TWAIN component.
IGTWAINCap
A base object for all capability containers.
IGTWAINCapArray
A rectangular array of values that describe a logical item.
IGTWAINCapEnumeration
This object defines a list of values from which the Current Value can be chosen.
IGTWAINCapOneValue
A single value whose current and default values are coincident.
IGTWAINCapRange
Allows users to select their current value from a range of regularly spaced values.
IGTWAINDataSources
Lists the available TWAIN Data Sources and identifies the one that is the default Data Source.
IGTWAINFileInfo
This object holds information about TWAIN file system.
IGTWAINInfo
This object holds information about the Data Source Manager.


TWAIN Scanning Function Overview

With TWAIN scanning, you can:

  • Open the TWAIN source
  • Set the TWAIN Image Acqisiton Mode
  • Check the TWAIN Version.
  • Control the scanning capabilities programatically, or let the user do it.
  • Scan and Acquire Pages.

Opening the TWAIN Source

Before the application performs any scanning operation, the user is offered a list of available scanning devices from which to choose, in the event that there is more than one. OpenSource() displays the TWAIN Select Source dialog box with a list of available scanning devices.

NOTE: You have to call this function before calling any other functions.

You can create your own dialog box for Data Source Selection by using the GetDSInfo method to obtain the list of TWAIN Data Sources available on the computer. When the user chooses a Data Source, your application opens the selected Data Source using OpenSource.

Setting the TWAIN Image Acquisition Mode

For those who are unfamiliar with the three types of TWAIN acquisition, the following is a synopsis of each:

  • Native: ImageGear loads the entire image into an IGPage object as one continuous data stream.
  • Disk File Transfer: The data source saves the acquired image directly into a file. Images acquired by this method cannot be automatically displayed during scanning because they are not loaded into memory. ImageGear allows you the added control of setting the filename and file format to be used, as will be explained in the section entited Setting the Filename and Format Type for Disk File Transfer.
  • Buffered Memory Transfer: The data will be loaded into an IGPage object (as for Native Transfer) except that it will be buffered and stored in either strips or tiles. ImageGear also allows you to set the buffer size.
NOTE: Not all of the TWAIN-supported transfer syntax modes are supported by all Data Sources. If you try to use an acquisition mode that your device does not support, you will receive an error message.

To set the transfer syntax to Disk File Transfer:

Dim capOneValue As IGTWAINCapOneValue

Set capOneValue =
frmMain.IGTwainCtl1.CreateCapability(IG_TW_ON_ONEVALUE)
capOneValue.ID = IG_TW_ICAP_XFERMECH
capOneValue.ItemType = AM_TID_META_UINT16
capOneValue.Value.ChangeType IG_DATA_LONG
capOneValue.Value.Long = IG_TW_SX_FILE
frmMain.IGTwainCtl1.SetCapability capOneValue, IG_TW_MSG_SET

To set the transfer syntax to Buffered Memory:

Dim capOneValue As IGTWAINCapOneValue

Set capOneValue =
frmMain.IGTwainCtl1.CreateCapability(IG_TW_ON_ONEVALUE)
capOneValue.ID = IG_TW_ICAP_XFERMECH
capOneValue.ItemType = AM_TID_META_UINT16
capOneValue.Value.ChangeType IG_DATA_LONG
capOneValue.Value.Long = IG_TW_SX_MEMORY
frmMain.IGTwainCtl1.SetCapability capOneValue, IG_TW_MSG_SET

To set the transfer syntax to Native:

Dim capOneValue As IGTWAINCapOneValue

Set capOneValue =
frmMain.IGTwainCtl1.CreateCapability(IG_TW_ON_ONEVALUE)
capOneValue.ID = IG_TW_ICAP_XFERMECH
capOneValue.ItemType = AM_TID_META_UINT16
capOneValue.Value.ChangeType IG_DATA_LONG
capOneValue.Value.Long = IG_TW_SX_NATIVE
frmMain.IGTwainCtl1.SetCapability capOneValue,
IG_TW_MSG_SET

By default, if no call is made to set transfer mode, ImageGear will use the mode set in Data Source.

Disk File Transfer considerations

When the Disk File Transfer mode is used, the Data Source saves an image directly to a file. You must use the SetCapability method and the IGTwainCtl .ImageFileName property to set all parameters involved in using Disk File Transfer. For example, if you would like to set the filename or format type prior to acquiring an image using Disk File Transfer, do something like this example:

Dim capOneValue As IGTWAINCapOneValue

Set capOneValue =
frmMain.IGTwainCtl1.CreateCapability(IG_TW_ON_ONEVALUE)
capOneValue.ID = IG_TW_ICAP_IMAGEFILEFORMAT
capOneValue.ItemType = AM_TID_META_UINT16
capOneValue.Value.ChangeType IG_DATA_LONG
capOneValue.Value.Long = IG_FORMAT_TIF
frmMain.IGTwainCtl1.SetCapability capOneValue, IG_TW_MSG_SET

frmMain.IGTwainCtl1.ImageFileName = "ScanFile.tif"
NOTE: Your choice of which file format to use for an image that is acquired and stored directly to a file is limited by two factors:
1) The file formats supported by your scanner's Device Driver
2) The file formats supported by TWAIN

The following formats are supported by TWAIN for image acquisition devices: TIFF, PICT, BMP, XBM, JPEG, FPX, PNG. Therefore, if you are using the Disk File Transfer, you are restricted to using a format that is both supported by TWAIN and supported by your Data Source.

If you do not specify a filename, the path to the temporary Windows directory will be used.

Verifying the TWAIN Version

The TWAIN version may be verified by using the GetTWAINInfo method to get an IGTWAINInfo object. It contains the major and minor release version numbers of the TWAIN Data Source Manager.

Let the User Control the Scanning

You must decide when using AcquireToDoc, AcquireToFile or AcquireToPage whether to set the scanning capabilities in your application or to let the user set them. To let the user set them, simply leave the UseUI property set to True - this will cause the TWAIN Data Source to display its settings dialog, which will give the user full control over the image acquisition.

If you set UseUI to False, you can still set the device capabilities by the SetCapability method. In that case, the values that you set with SetCapability will become the default values in the Data Source's settings dialog.

If you are scanning with AcquireToDoc or AcquireToFile, and have set UseUI to True, be aware that the UI will only appear once, before the first page is scanned. Therefore, the settings that the user makes with the UI will be applied to all of the pages scanned during this scanning session. For this reason, if the images in the multi-page file will require different settings, you will need to use the AcquireToPage method for each page (changing the capabilities as needed before each call to AcquireToPage), and then build an IGDocument from the individual IGPage object.

Controlling the Scanning in the Application

On the other hand, if you want your application to completely control the scanning capabilities, then set the UseUI property to False. Your application will then use the GetCapability/SetCapability methods, and the IGTWAINCapArray, IGTWAINCapEnumeration, IGTWAINCapOneValue and IGTWAINCapRange objects to obtain and set all the scanning capabilities for the chosen Data Source.

You have already seen these used in prior sections to set the filename and format for an image acquired using Disk File Transfer mode. However, there are many other capabilities that can be set using these methods, including bit depth and layout. There are restrictions on which capabilities can be used based on the hardware that you are using, the transfer mode setting, and the ImageGear property or method you call. For example, the ability to append an acquired image to a multi-page file is not relevant to the Disk File Transfer mode, which always stores pages to separate files.

See Also:

Appendix D: TWAIN Scanning Capabilities

Scanning and Acquiring Pages

ImageGear provides 3 methods of the IGTwainCtl component to actually scan and acquire images:

AcquireToDoc - Acquires multiple pages from an automatic document feeder, creating an IGDocument. You must specify either Native or Buffered Transfer Syntax when using AcquireToDoc.

AcquireToFile - Acquires multiple pages from an automatic document feeder, creating a multi-page file on disk. You must specify either Native or Buffered Transfer Syntax when using AcquireToFile.

AcquireToPage - Acquires a single page from the flatbed. If you specify either Native or Buffered Transfer Syntax, then the image will be acquired to an IGPage. If you specify Disk File Transfer Syntax, then the image will be written directly to disk by the Data Source.

NOTE: AcquireToFile can save to any of the file formats supported by ImageGear. TIFF is the most commonly used file format for storing multi-page documents when using the ADF. However, any of the supported formats that store one image per file, such as Windows Bitmap (BMP), can also be used for scanning multiple pages. A separate file is created for each image. For example, if you name a 3- page file PICTURE.BMP, three files are created (one for each image), and their names are PICTURE.BMP, PICTUR1.BMP, and PICTUR2.BMP.

If you are using the AcquireToPage and the Disk File Transfer mode, you are constrained in your choice of file format both by what formats your device supports and what formats TWAIN supports. As of this writing, TWAIN supports BMP, PICT, TIFF, XMB, and JPEG.


File Format Reference

File Format Reference

This chapter provides information about the image formats that ImageGear supports. Before you begin, please refer to the Encoding vs. Compressing section below to familiarize yourself with the terms used in this Chapter.

Then you can read the Format Suitability at a Glance section, which briefly delineates which formats best support various types of images. This section provides you with a starting point for deciding which file formats to use in your application.

The section ImageGear Support for Graphics File Formats describes the types of imaging file formats supported by ImageGear and provides useful information about support for some specific formats:

  • Support for Adobe PDF/PS Formats
  • Support for CAD/Vector Formats
  • Support for DICOM File Format
  • Support for JBIG2 File Format
  • Support for JPEG2000 File Formats
  • Support for Metafile Formats
  • Support for Multimedia File Formats
  • Support for Multi-page File Formats

ImageGear Supported Bit Depths section describes the bit depths, and the read/write capabilities of the supported formats. Using this table you can easily find out whether an image can be converted to a particular format.

Detailed information about every ImageGear supported imaging file format or compression can be found in the following sections:

  • ImageGear Supported Compressions Reference - here you will find information for every ImageGear supported imaging compression.
  • ImageGear Supported File Formats Reference - provides you with the detailed information about every ImageGear supported format, its ID, versions, encoding type, multi-page and alpha channel support, supported compressions, color spaces and bit depths for read and write, as well as information about ImageGear supported features and filter control parameters.

The section ImageGear Supported Digital Camera RAW Formats provides you with information about the level of ImageGear support for DC RAW formats.

If you are going to use the ImageGear alpha channels or transparency support, please review the section ImageGear Alpha Channel Support or ImageGear Transparency Support.

Encoding vs. Compressing

These two words are often used interchangeably in discussions of graphics file formats. Encoding is actually a broad term under which compression falls. For the sake of clarity, use these terms separately with the following intended meanings:

  • Encoding - The manner that data is stored when uncompressed (binary, ASCII, etc.), how it is packed (e.g., 4-bit pixels may be packed at a rate of two pixels per byte), and the unique set of symbols used to represent the range of data items.
  • Compressing - A "physical" rewriting of the graphics data so that it is represented by a smaller set of data.


Format Suitability at a Glance

The following table contains the formats that AccuSoft considers most practical for the listed type of data, and can be used as a starting point. You can use a format with the appropriate character depth and one that provides either the most efficient use of space, or the fastest loading and saving capabilities.

Bear in mind that the following table represents recommendations only. To make an informed choice, read about each format in more detail in the section ImageGear Supported File Formats Reference.

Image type
Recommended
Colors
JPEG, JPEG2000, TIFF, PNG, FlashPix
Grayscale/many shades
TGA, TIFF, JPEG, DICOM
Monochrome / high resolution
TIFF (CCITT Group 3 compression), TIFF (CCITT Group 4 compression)
Banking data
IBM IOCA, IBM MO:DCA (ABIC compression)
Noisy
Color: PNG, TIFF, JPEG;
Bi-tonal: Group 3, Group 4
Lossless
GIF, TIFF, PNG, Group 3, Group 4, JPEG (Lossless JPEG compression)
Lossy
TIFF (JPEG compression), JPEG
Extra data to store
TIFF, EXIF-JPEG, EXIF-TIFF
Iconic images
ICO
Facsimiles
Group 3, Group 4
Multimedia
PNG, GIF, JPEG, AVI, MULTIMEDIA, QuickTime
Photographic images
Adobe PSB , Adobe PSD, PCD, JPEG, FlashPix
Internet images
GIF, JPEG, PNG, JPEG2000, WBMP
Macintosh paint programs
MAC, MAC PICT
PC paint programs and/or graphics arts
PCX, GEM, WMF, TIFF, EPS, MAC PICT, BMP
X Windows
XBM, XPM, XWD
Medical data
DICOM
CAD/Vector
EPS, WMF, DWF, DWG, DXF , CGM , DGN , HPGL , SVG , U3D
Document processing
TIFF, Adobe PDF, Adobe PS, EPS, PTOCA, TXT (ASCII Text)


ImageGear Support for Graphics File Formats

Every application that deals with images has specific kinds of data to store and interchange, from icons to photographs. The various hardware devices used to record and store the graphics data, and the hardware intended to display or print the data also affect the design of the format. This leads to a diversity of file formats. To add to this diversity, different groups of people have different ideas about how to structure and access an image, and what kind of additional information should be stored with an image. Even formats designed to store the same kind of data can differ. Other factors that affect the outcome of the design include memory considerations, storage size, accuracy, and portability.

National and international standardization organizations, such as the American National Standards Institute (ANSI) and the International Standards Organization (ISO), seek to create standards of storage for graphics data. One example is the Joint Photographic Experts Group's (JPEG) creation of the JPEG file format. Some of its intended goals were good image quality, user-chosen compression ratio, and cross-platform flexibility. When an image is called a JPEG, it is assumed to precisely follow the standardized JPEG format.

Formats known as "de facto standards" are those that begin as proprietary formats, but by the forces of the market and sometimes by good quality, become widely supported. Some examples of de facto standards are BMP, GIF, and PCD.

A third group of file formats falls somewhere between officially recognized standards and the strictly proprietary formats. These formats are created by groups of individuals with a common interest who come together to form a more unofficial standards organization. These formats are usually intended to provide an end-all industry standard so that data with the same or similar origins can be shared across different applications or platforms. One example is the TIFF format. TIFF was designed by eight computer technology companies (headed by Aldus Corporation) with the common goal of providing a standard format for storing scanned images.

ImageGear supports graphics file formats from all of these genres, providing you with a complete range of imaging capabilities, including the capture and processing of scanned images.

In addition, ImageGear functionality enable you to exchange data easily from one format to another, and to make improvements in images using powerful image-processing API.

ImageGear list of supported formats includes all of the popular formats, including recognized standards that best utilize the latest imaging technologies.

See Also:

ImageGear Supported Compressions Reference

ImageGear Supported File Formats Reference


Support for Adobe PDF/PS Formats

ImageGear provides comprehensive support for Adobe PDF and Adobe PS formats using its ImageGear PDF Component.

To use support for PDF and PostScript formats as well as manipulate and transform PDF/PS images ImageGear PDF Component should be attached to Core ImageGear.

See Also:

Using ImageGear PDF Component

ImageGear PDF Component API Reference


Support for CAD/Vector Formats

ImageGear provides support for the following CAD/Vector formats:

  • CGM
  • DGN
  • DWF
  • DWG
  • DXF
  • HPGL (HPGL/2)
  • SVG
  • U3D

To work with these formats the following ImageGear components should be attached to Core ImageGear respectively:

  • ImageGear CAD/Vector (CGM) Component
  • ImageGear CAD/Vector (DGN) Component
  • ImageGear CAD/Vector (DWF) Component
  • ImageGear CAD/Vector (DWG, DXF) Component
  • ImageGear CAD/Vector (HPGL, HPGL/2) Component
  • ImageGear CAD/Vector (SVG) Component
  • ImageGear U3D Vector Component

To manipulate and process CAD/Vector images ImageGear Vector Component should be attached to Core ImageGear.

NOTE: ImageGear supports CAD/Vector formats for Win32 and Win64 platforms only.
See Also:

Using ImageGear CAD/Vector Components

ImageGear Vector Component API Reference


Support for DICOM File Format

ImageGear provides comprehensive support for DICOM formats using its ImageGear MD Component.

To use the support for DICOM format as well as manipulate, transform and process DICOM images ImageGear MD Component should be attached to Core ImageGear.

See Also:

Using ImageGear MD Component

ImageGear MD Component API Reference


Support for JBIG2 File Format

ImageGear provides comprehensive support for JBIG2 format using its ImageGear JBIG2 Component.

To use the support for JBIG2 format ImageGear JBIG2 Component should be attached to Core ImageGear.

See Also:

Using ImageGear JBIG2 Component


Support for JPEG2000 File Formats

ImageGear provides support for the following JPEG2000 formats:

  • JPEG2000
  • JPX
  • Motion JPEG2000

To use the support for JPEG2000 formats as well as efficiently and dynamically stream portions of a JPEG2000-compressed image over a network ImageGear JPEG2000 Component should be attached to Core ImageGear.

See Also:

Using ImageGear JPEG2000 Component

ImageGear JPEG2000 Component API Reference


Support for Metafile Formats

Metafiles contain vector (or geometric) specifications and bitmap pixel data. Vectors, in the realm of computer graphics, define shapes and location of shapes in terms of their relative location within the page.

ImageGear supports the following formats that contain vector data:

  • WMF
  • WPG
  • EPS
  • MAC PICT

For all formats, except WMF, the vector data is ignored; only the bitmap data is read and/or written.

NOTE: When ImageGear loads a Windows Metafile (WMF), it automatically converts each vector specification to bitmap data. The shapes and lines declared by the vector specifications appear in the image, but the original vector instructions are not saved.


Support for Multimedia File Formats

ImageGear provides support for the following multimedia formats:

  • AVI
  • MULTIMEDIA
  • QuickTime

To use the support for multimedia formats as well as ImageGear Multimedia Component should be attached to Core ImageGear.

ImageGear Multimedia Component uses DirectShow internally to read and decode files and the types of AVI and MPEG files you can read with it depend on what files DirectShow can read, i.e. it depends on what video codecs are installed on the computer. For example, if you want to read a DivX-compressed AVI file, you can do it with the ImageGear Multimedia Component, but only if you have installed the DivX codec on your PC.

On the other way if you can view the file in Windows Media Player, you should be able to read it with the ImageGear Multimedia Component.


Support for Multi-page File Formats

ImageGear provides multi-page support for the following file formats:

  • Adobe PDF
  • Adobe PS
  • Adobe PSB
  • Adobe PSD
  • AVI
  • BMP (OS/2 BMP only)
  • CGM
  • CUR
  • DCX
  • DICOM
  • DWF
  • GIF
  • HPGL
  • IBM AFP
  • IBM IOCA
  • IBM MO:DCA
  • ICO
  • IFF
  • JBIG2
  • MULTIMEDIA
  • PCD
  • PTOCA
  • TIFF
  • TXT (ASCII Text)
  • XPS

Please see the section Loading/Saving a Document (Multi-page File) and Updating a Document (Multi-page File) to learn how to use ImageGear multi-page functionality.

To create multi-page files, simply save to an existing Adobe PDF , Adobe PS , DCX , DICOM , GIF , IBM AFP , JBIG2 or TIFF file. If the file exists, the new page is appended to the file.

NOTE: It is important to note that ImageGear treats the first page of a multi-page file as page number 1 (not 0).


ImageGear Supported Bit Depths

You may want to convert a file from one format to another. You can do this by saving the original file to its desired format by setting the nFormatType parameter to the appropriate value in the saving function. For more information on converting issues, see the section Loading, Saving and Acquiring Images.

When saving a file to another format, remember to ensure that the desired file format is supported for that image. For example, you cannot convert an 8-bit DCX file to an 8-bit CAL file, because the CAL format does not support 8-bit files.

In the tables on the following pages, the columns underneath the numbers indicated size in bits that can actually be saved (written). The columns underneath the letters "R" and "W" indicate that the ImageGear reads and writes, respectively, the corresponding file format.

Format
R
W
1
4
8
9-16G
24
32
36
48
64
Adobe DNG
+
+
+
Adobe PDF
+
+
+
+
+
+
+
Adobe PS
+
+
+
+
+
+
+
Adobe PSB 1
+
+
+
+
+
+
+
+
+
+
Adobe PSD 2
+
+
+
+
+
+
+
+
+
+
AFX
+
+
AVI
+
+
+
+
+
BMP
+
+
+
+
+
+
+
+3
BTR
+
+
+
CAL
+
+
+
CGM
+
+
CLP
+
+
+
+
+
+
CUR 4
+
+
+
+
+
+
CUT
+
+
+
DCRAW
+
+
+
DCX
+
+
+
+
+
+
DGN
+
DIB
+
+
+
+
+
+5
+
+6
DICOM
+
+
+
+
+
+
+
+
DWF
+
+
DWG
+
+
DXF
+
+
EPS 7
+
+
+
+
+
+
EXIF-JPEG
+
+
+
+
+
+
+
EXIF-TIFF
+
+
+
+
+
+
+
+
+
+
+
FlashPix
+
+
+
+
+
GEM
+
+
+
+
GIF
+
+
+
+
+
Group 3
+
+
+
Group 3 2D
+
+
+
Group 4
+
+
+
HPGL
+
IBM AFP
+
+
+
+
+
IBM IOCA
+
+8
+
+
+
+
IBM MO:DCA
+
+9
+
+
+
+
ICO
+
+
+
+
+
+
IFF
+
+
+
+
+
+
IMG
+
+
+
IMR
+
+
IMT
+
+
+
JBIG2
+
+
+
JPEG
+
+
+10
+
+
+
+
+
JPEG2000
+
+
+
+
+
+
+
+
+
JPX
+
+
+
+
+
+
+
+
+
KFX
+
+
LV
+
+
MAC
+
+
MAC PICT
+
+
+
+
+
+
Motion JPEG2000
+
+
+
+
+
+
+
MSP
+
+
MULTIMEDIA
+
+
NCR
+
+
+
+11
PBM
+
+
+
+
+
+
+
PCD
+
+
PCX
+
+
+
+
+
+
PGM 12
+
+
+
+
PNG 13
+
+
+
+
+
+
+
+
+
+
PNM 14
+
+
+
+
+
+
+
PPM
+
+
+
+
PTOCA
+
+
QuickTime
+
+
RAS
+
+
+
+15
+
+
RAW
+
+
+
+
+
+
+
Scitex CT 16
+
+
+
SGI
+
+
+
+
+
+
SVG
+
+
TGA
+
+
+
+
+
+
+
TIFF 17
+
+
+
+
+
+
+
+
+
+
+
TXT (ASCII Text) 18
+
U3D
+
+
WBMP
+
+
+
WMF
+
+
+
+
+
+
WPG
+
+
+
+
XBM
+
+
+
XPM
+
+
+
+
+
+19
XPS
+
+
+
+
+
+
+
+
+
XWD
+
+
+
+
+
+

148- and 64-bit images support is Read only.

248- and 64-bit images support is Read only.

3Read only support.

4Supports Extra ((1, 3, 4, 8)*2)-bit images also.

5Read only support.

6Read only support.

7Screen Preview image only, when reading.

8Write support for 1-bit images only.

9Write support for 1-bit images only.

108-bit grayscale.

11Read only.

12Supports 16-bit grayscale images also.

13Supports 48(RGB)- and 64(RGB+alpha)-bit images.

14Supports 16-bit grayscale and 48-bit color images also.

15Read only support.

16The native format is CMYK. With full CMYK support enabled, you can use 32-bit images.

17Read only supports also 3- and 6 bpp for RGB and LAB color spaces for Deflate, LZW (Lempel-Ziv-Welch), Packbits compressions and uncompressed.

18Converts to raster image when loaded.

1924-bit has Read only support


ImageGear Supported Compressions Reference

All imaging files compressions can be divided on three basic types:

  • One-dimensional compression - the raster data is treated as one continuous data stream. Each byte read is compared to the previous byte. This compression method is not concerned with delineating lines of data.
  • 2D compression can be thought of as "Differencing Compression", where the data stored is a representation of the differences in data values from previous data values. In 2-D compression, the encoding of one line is determined by the contents of the previous line. This method of compression is best used for black-and-white images where the black pixels tend to fall into groups.
  • 3D compression is a new branch of data compression aimed at the 3D models and other geometric datasets used in computer graphics, virtual reality, video games, CAD/CAM, and many scientific, engineering, and medical applications.

Existing 3D compression algorithms use both techniques adapted from the 1D and 2D cases (like wavelets, entropy coding, and predictive coding), and completely different approaches that take advantage of the properties of 3D surfaces (like Edgebreaker, Subdivision Surfaces, and triangle strips).

ImageGear supports the following compressions:

  • ABIC
  • ABIC_BW
  • ABIC_Gray
  • ASCII
  • CCITT Group 3
  • CCITT Group 3 2D
  • CCITT Group 4
  • Deflate
  • FPX NOCHANGE
  • FPX SINCOLOR
  • Huffman
  • IBM MMR
  • JBIG2
  • JPEG
  • JPEG2000
  • Lossless JPEG
  • LZW (Lempel-Ziv-Welch)
  • Packbits
  • Progressive JPEG
  • RAW
  • RLE


ABIC

Full Name
IBM ABIC compression
Compression ID
IG_COMPRESSION_ABIC =16
IG Component
ABIC
Bit Depth
1
File Formats
IBM AFP , IBM IOCA, IBM MO:DCA , RAW , TIFF
IG Platforms Support
WIN32

Comments:

This is a proprietary compression scheme (owned by IBM) used on IOCA/MO:DCA. It requires the ImageGear ABIC Component to be attached.


ABIC_BW

Full Name
IBM ABIC compression
Compression ID
IG_COMPRESSION_ABIC_BW = 9
IG Component
ABIC
Bit Depth
1
File Formats
IBM AFP , IBM IOCA, IBM MO:DCA , RAW , TIFF
IG Platforms Support
WIN32

Comments:

This is a proprietary compression scheme (owned by IBM) used on IOCA/MO:DCA. Used for ABIC black and white (B/W) images. It requires ImageGear ABIC Component to be attached.


ABIC_Gray

Full Name
IBM ABIC compression
Compression ID
IG_COMPRESSION_ABIC_GRAY = 10
IG Component
ABIC
Bit Depth
1
File Formats
IBM AFP , IBM IOCA, IBM MO:DCA
IG Platforms Support
WIN32

Comments:

This is a proprietary compression scheme (owned by IBM) used on IOCA/MO:DCA. Used for ABIC grayscale images. It requires ImageGear ABIC Component to be attached.


ASCII

Full Name
American Standard Code for Information Interchange (ASCII)
Compression ID
IG_COMPRESSION_ASCII = 23
IG Component
Core
Bit Depth
Gray level: 1, 8, 16 bpp; RGB 24, 48 bpp
File Formats
PBM, PGM, PNM, PPM
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

Acronym for the American Standard Code for Information Interchange. ASCII is a code for representing English characters as numbers, with each letter assigned a number from 0 to 127. For example, the ASCII code for uppercase M is 77. Most computers use ASCII codes to represent text, which makes it possible to transfer data from one computer to another.

Text files stored in ASCII format are sometimes called ASCII files. Text editors and word processors are usually capable of storing data in ASCII format, although ASCII format is not always the default storage format. Most data files, particularly if they contain numeric data, are not stored in ASCII format. Executable programs are never stored in ASCII format.


CCITT Group 3

Full Name
CCITT Group 3
Compression ID
IG_COMPRESSION_CCITT_G3 = 3
IG Component
Core
Bit Depth
1
File Formats
BTR, EPS, Group 3, IBM IOCA, IBM MO:DCA, IMT,
LV, NCR, Adobe PDF, Adobe PS, TIFF , RAW
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

This is a 1-D version of the CCITT Group 3 compression scheme. It uses a static table of values to assign codes to run lengths. Frequently occurring run lengths are given smaller codes. (The most frequent are usually black runs of 2 or 4 pixels).


CCITT Group 3 2D

Full Name
CCITT Group 3 2D
Compression ID
IG_COMPRESSION_CCITT_G32D = 5
IG Component
Core
Bit Depth
1
File Formats
BTR, EPS, Group 3 2D, IBM IOCA, IBM MO:DCA,
Adobe PDF, Adobe PS, TIFF , RAW
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

This is a 2-D version of the CCITT Group 3 compression scheme. It includes an error recovery algorithm for error transmissions; an error in one line does not translate to garbage output for the rest of the file. All modern fax machines support this format.


CCITT Group 4

Full Name
CCITT Group 4
Compression ID
IG_COMPRESSION_CCITT_G4 = 4
IG Component
Core
Bit Depth
1
File Formats
CAL, EPS, Group 4, IBM IOCA, IBM MO:DCA, IMR,
IMT, KFX, LV, NCR, Adobe PDF, Adobe PS, TIFF , RAW
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

The G4 compression is two-dimensional by default. It is very similar to the G3 2D compression, but it can produce compressed images that are half the size of a G3-compressed file.

It is slower, however, and does not have the same error recovery built in that the G3 format has. The decrease in speed occurs because G4 was designed specifically for encoding disk data. For this reason, it may be advisable to use the G3-Fax compression scheme if final compression size is not crucial, but speed is.


Deflate

Full Name
Deflate compression
Compression ID
IG_COMPRESSION_DEFLATE = 14
IG Component
Core
Bit Depth
1, 2, 4, 8, 16 bpc
File Formats
Adobe PDF, PNG, Adobe PS, TIFF
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

"Zip-in-TIFF" compression. Deflate compression, sometime known as "zip" compression, uses another variant of the LZW compression method and so gives similar results, but is not restricted by any licenses.


FPX NOCHANGE

Full Name
Unchanged compression
Compression ID
IG_COMPRESSION_FPX_NOCHANGE = 13
IG Component
FlashPix
Bit Depth
Gray level: 8 bpp; RGB: 24 bpp
File Formats
FlashPix
IG Platforms Support
WIN32

Comments:

This is not a compression scheme but rather a saving mode, allowing to save FlashPix images with the same compression as they were loaded. Use this mode to change FlashPix image metadata without changing its pixels.

This compression requires the ImageGear FlashPix Component to be attached.


FPX SINCOLOR

Full Name
Single color compression
Compression ID
IG_COMPRESSION_FPX_SINCOLOR = 12
IG Component
FlashPix
Bit Depth
Gray level: 8 bpp, RGB: 24 bpp
File Formats
FlashPix
IG Platforms Support
WIN32

Comments:

This is compression is used with FlashPix images. FlashPix images are divided into tiles; when all pixels of a tile have the same color, only this single color value is saved. If a tile has pixels of different colors, the tile is saved uncompressed.

This compression requires the ImageGear FlashPix Component to be attached.


Huffman

Full Name
Huffman encoding
Compression ID
IG_COMPRESSION_HUFFMAN = 2
IG Component
Core
Bit Depth
1, 24
File Formats
NCR, PCD, TIFF
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

Developed in 1952 by David Huffman, this is one of the older compression methods. The encoding and decoding processes are complex relative to today's standards, but the compression ratio can be high if the image contains many repeat data values. It is best used for images with little or no pixel noise, e.g. cartoons or drawings with large areas of the same color and intensity (like a monotone sky). This compression scheme is often used by other compression algorithms for extra compression.

The Huffman method uses a conversion table to assign codes for each value, based on frequency of occurrence. The file is scanned for all of its values, with the values and their frequency of occurrence tallied. Using a binary tree, values are paired off by frequency of occurrence, beginning with the least frequent values. As the tree progresses upward, the least occurring values at the bottom of the tree continue to be incremented a bit at a time, with one bit added for each new branch added to the tree. In the end, the values that occur the most (at the top of the tree) have the shortest codes.

A potential problem with this compression method is decoding; the file's variable-length codes can cause the dropping or adding of a bit to the end of a line, thereby throwing off subsequent lines of data.


IBM MMR

Full Name
IBM Modified Modified Read
Compression ID
IG_COMPRESSION_IBM_MMR = 15
IG Component
Core
Bit Depth
1
File Formats
IBM IOCA, IBM MO:DCA
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

Compression for black and white documents, similar to CCITT Group 4.


JBIG2

Full Name
JBIG2 compression
Compression ID
IG_COMPRESSION_JBIG2 = 19
IG Component
JBIG2
Bit Depth
1
File Formats
JBIG2, Adobe PDF
IG Platforms Support
WIN32

Comments:

The JBIG2 is the most effective compression method for bitonal (B\W) images. It requires ImageGear JBIG2 Component to be attached.


JPEG

Full Name
JPEG compression
Compression ID
IG_COMPRESSION_JPEG = 6
IG Component
Core
Bit Depth
Gray level: 8, 16 bpp; RGB: 24, 36 bpp; CMYK: 32 bpp; RGB+Alpha: 32 bpp
File Formats
AFX, AVI, JPEG, DICOM, Adobe DNG, EPS, EXIF-JPEG,
FlashPix, MAC PICT, Adobe PDF, Adobe PS, TIFF
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

This file compression method obtains a high compression ratio when used with detailed photographic images (its intended use). It is not a good compression choice for images with a small number of colors and high contrast edges, or for color-mapped data. Part of JPEGs success in high compression is due to the fact that it is a "lossy" compression method, meaning that the compression results in the loss of some data that is determined to be unimportant or unnecessary. This does not necessarily result in a visible reduction of image quality.

JPEG is highly flexible - it allows you to make a "quality" setting that determines the amount of loss that occurs and affects the size of the resulting compressed file.

The JPEG algorithm takes into account that the human eye is more sensitive to changes in brightness than to number of colors. Rather than saving the color data from each pixel in an image, it saves information on the rate of change of color, or "frequency information." More loss is allowed in the color data than in the brightness data. Some of the compression of the color is achieved by converting the RGB values to YCbCr color scheme. ImageGear supports two other JPEG compression modes--Lossless JPEG and Progressive JPEG.

See Also:

Lossless JPEG, Progressive JPEG


JPEG2000

Full Name
JPEG 2000 wavelet compression
Compression ID
IG_COMPRESSION_JPEG2K = 25
IG Component
JPEG2K
Bit Depth
1..16 bpc, various colorspaces (depends on file format)
File Formats
JPEG2000, JPX, Motion JPEG2000, DICOM,
Adobe PDF, Adobe PS
IG Platforms Support
WIN32, WIN64, .NET, .NET64

Comments:

This compression requires the ImageGear JPEG2000 component to be attached. See Using ImageGear JPEG2000 Component.

The JPEG2000 compression technique is based on two main processes: Tiling and Discrete Wavelet Transform (DWT).

Tiling

The term `tiling' refers to the partition of the original (source) image into rectangular non-overlapping blocks (tiles), which are compressed independently as though they were entirely distinct images. All operations, including component mixing, wavelet transform, quantization and entropy coding are performed independently on the image tiles. Tiling reduces memory requirements, and since they are also reconstructed independently, they can be used for decoding specific parts of the image rather than the entire image.

All tiles have exactly the same dimensions, except for those at the right and lower boundary of the image. Arbitrary tile sizes are allowed, up to and including the entire image (i.e., the whole image is regarded as one tile). Components with different sub-sampling factors are tiled with respect to a high-resolution grid, which ensures spatial consistency on the resulting tile components. Smaller tiles create more tiling artifacts compared to larger tiles.

Discrete Wavelet Transform (DWT)

The Discrete Wavelet Transform (DWT) is very similar to the Discrete Fourier Transform (DFT), but does not use the sine and cosine functions for analyzing the image data. The basic functions are called scaling functions and wavelets. These functions combine the fundamental feature of orthogonality (allowing the transformation and the identical reconstruction) and compact representation. This allows the analysis of image data without the windowing effects, which result from the need to handle the infinite sine function on finite image data using the DFT.

Images can be seen as two dimensional signals. They can be transformed using a two dimensional transformation. Two dimensional transformations can be achieved by separately applying one dimensional transformations to the lines and columns of an image. The DWT method splits the image into four new images in the wavelet domain; one image contains the low-pass information and the others contain high-pass information of horizontal, vertical and diagonal orientation. The transformation then applies itself recursively to the low-pass image. This can be continued until the last low-pass image contains only a single pixel.

The tile components of JPEG2000 images are decomposed into different decomposition levels using Discrete Wavelet Transform. These decomposition levels contain a number of subbands, which consist of coefficients that describe the horizontal and vertical spatial frequency characteristics of the original tile component. Power of two decompositions are allowed in the form of dyadic decomposition (in Part I).

To perform the forward DWT, the standard uses a one dimensional subband decomposition of a one dimensional set of samples into low-pass samples and high-pass samples. Low-pass samples represent a downsampled low-resolution version of the original set. High-pass samples represent a downsampled residual version of the original set, needed for the perfect reconstruction of the original set from the low-pass set.

The DWT can be irreversible or reversible. The default irreversible transform is implemented by means of the Daubechies 9-tap/7-tap filter. The default reversible transformation is implemented by means of the 5-tap/3-tap filter.

The standard supports two filtering modes: a convolution-based mode and a lifting-based mode. For both modes to be implemented, the signal should first be extended periodically. This periodic symmetric extension is used to ensure that for the filtering operations that take place at both boundaries of the signal, one signal sample exists and spatially corresponds to each coefficient of the filter mask. The number of additional samples required at the boundaries of the signal is, therefore, filter-length dependent.

Convolution-based filtering performs a series of dot products between the two filter masks and the extended one dimensional signal. Lifting-based filtering consists of a sequence of very simple filtering operations for which alternately odd sample values of the signal are updated with a weighted sum of even sample values. Even sample values are updated with a weighted sum of odd sample values. For the reverse (lossless) case, the results are rounded to integer values.

The 5/3 filter allows repetitive encoding and decoding of an image without any additional loss. This is true when the decompressed image values are not clipped when they fall outside the full dynamic range (i.e. 0-255 for an 8-bpp image).


Lossless JPEG

Full Name
Lossless JPEG compression
Compression ID
IG_COMPRESSION_JPEG = 6
IG Component
Core
Bit Depth
Gray level: 8, 16 bpp; RGB: 24, 48 bpp
File Formats
DICOM, JPEG, TIFF
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

Lossless JPEG is an extension to the normal JPEG standard. One of the main algorithmic differences between the two is that the lossless JPEG does not apply a Discrete Cosine Transform. Rather, it uses a Predictive scheme. For each pixel, the values of one or several neighboring pixels are added to the value of the original pixel and then subtracted from the value of the original pixel. This method yields smaller values that require fewer bits per pixel to store.

ImageGear allows you to set the number of neighboring pixels to use in calculating the "predictor value".


LZW (Lempel-Ziv-Welch)

Full Name
Lempel-Zif-Welch (LZW) compression
Compression ID
IG_COMPRESSION_LZW = 8
IG Component
GIF/TIFF-LZW
Bit Depth
1, 4, 8, 16 bpc
File Formats
GIF, Adobe PDF, Adobe PS, TIFF
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

LZW compression works by finding patterns of data and assigning codes. It works best on highly-patterned images. Images with irregular patterning, or "noise," are not good candidates for this type of compression.

This compression scheme is "dictionary-based". This refers to the array of codes that identify each data pattern found in the image. The "dictionary" begins with a table that contains a code for each possible value in the image. If LZW compression is used on 8-bit images, a LZW "dictionary" is initialized with codes for 256 (28) values. As the file data is read, new values are added to the table for each unique pattern of data found. In the interest of saving space, the dictionary is not saved with the compressed file. The same dictionary is actually rebuilt when the data is decoded.


Packbits

Full Name
Packed bits compression
Compression ID
IG_COMPRESSION_PACKED_BITS = 1
IG Component
Core
Bit Depth
1, 4, 8, 16 bpc
File Formats
Adobe PSD, TIFF
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

Packbits compression seeks repeated data values. Packbits is considered an RLE (run-length encoding) compression scheme because it looks for "runs" or repeated values, and tallies their number, or "length". While its name implies that runs of bits are "packed" together, it is actually runs of bytes. It is very similar to the Macintosh Packbits compression used by Macpaint, except that the Packbits compression used for a TIFF allows the dimensions of the image to vary.

Packbits works by reducing repeated strings of the same characters into two components: the "run count" and the "run value". The count and value are stored in one byte each. Each two-byte grouping is referred to as an RLE packet. It is not a good compression scheme for images with large color ranges, as these do not tend to have many runs of the same color.

The terms "RLE" and "Packbits" are often used synonymously.


Progressive JPEG

Full Name
Progressive JPEG compression
Compression ID
IG_COMPRESSION_PROGRESSIVE = 17
IG Component
Core
Bit Depth
Gray level: 8, 16 bpp; RGB: 24, 36 bpp; CMYK: 32 bpp; RGB+Alpha: 32 bpp
File Formats
JPEG
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

Progressive JPEG is considered an extension to the JPEG standard. It produces the same kind of lossy compression as normal JPEG compression (see above), except that it saves multiple copies of the same image using different levels of quality. There is no hard limit on the number of "scans" that may be stored.

When a Progressive JPEG-compressed image is decompressed, the filter decompresses the lowest quality image first. This can be helpful for quickly displaying a version of the image that you are loading. The benefit of this compression is the fast display of an image that is recognizable. The downside is that a JPEG decompression is performed more than once.


RAW

Full Name
RAW compression (Uncompressed binary compression)
Compression ID
IG_COMPRESSION_RAW = 24
IG Component
Core
Bit Depth
Gray level: 1, 8, 16 bpp; RGB 24, 48 bpp
File Formats
PBM, PGM, PNM, PPM
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

Uncompressed binary compression. PBM/PGM/PNM/PPM formats use the term "RAW" for uncompressed binary compression, as opposed to ASCII compression.


RLE

Full Name
Run length encoding compression
Compression ID
IG_COMPRESSION_RLE = 7
IG Component
Core
Bit Depth
1, 4, 8, 16 bpc
File Formats
BMP, CLP, CUT, DCX, DICOM, GEM, IFF, MAC, MSP,
PCX, Adobe PDF, Adobe PS, RAS, SGI, TGA, WMF, WPG
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

Comments:

RLE (Run Length Encoding) is normally a 1-dimensional compression scheme. Working sequentially from left to right and top to bottom, it compares the value of each byte with the value of the previous byte. Each data value is recorded into a "packet" of two bytes where the first byte contains the number of times the value is repeated, and the second packet contains the actual value. The bytes in the pocket are called the "run count" and the "run value". When an image contains many repeat values, the compression ratio is very high (for example, if every byte in a 100 byte image were the same, its size could be reduced to 2 bytes giving a 50:1 ratio). A very noisy image, or a plain ASCII text file typically does not compress well, and in fact could become larger for example, if all bytes in image are different from the ones next to them, the image doubles, because 2 bytes are used to store each byte in the image.

The terms "RLE" and "Packbits" are often used synonymously.


ImageGear Supported File Formats Reference

This section represents the reference for every imaging file format supported by ImageGear.

The following are the characteristic features for file format description:

  • Full Name - Full name of the File Format
  • Format ID - ImageGear constant that determines the File Format ID used for loading this file in ImageGear-based application. See the section Working with Format Filters .
  • File Extensoin(s) - The used extensions of the File Format
  • Data Type - The type of the File Format (raster, vector, metafile)
  • Data Encoding - The type of data encoding. Please see the section Encoding vs. Compressing.
  • IG Multipage Support - Shows if ImageGear supports the File Format as multipage or singlepage. Please see also the section Support for Multi-page File Formats.
  • IG Alpha Channel Support - Shows if ImageGear supports the alpha channel for the File Format or not. Please see also the section ImageGear Alpha Channel Support.
  • IG Platforms Support - Shows ImageGear platform versions that support the File Format.
  • ImageGear Supported versions - Shows the versions of the File Format supported by ImageGear.
  • ImageGear Supported Features - Shows the ImageGear Format Filter features supported by ImageGear for this format. Please see the section Working with Format Filters.
  • ImageGear Read Support - Provides all compressions, color spaces, channels and bit depths supported by ImageGear for the file format reading.
  • ImageGear Write Support - Provides all compressions, color spaces, channels and bit depths supported by ImageGear for the file format writing.
  • ImageGear Filter Control Parameters - Provides all filter control parameters supported by ImageGear for this format filter. Please see also Working with Format Filters.
  • Comments - Some general information about format encoding and compression structure.
  • References Used - References to the information sources for the File Format.

Currently ImageGear supports the following File Formats:

  • Adobe DNG
  • Adobe PDF
  • Adobe PS
  • Adobe PSB
  • Adobe PSD
  • AFX
  • AVI
  • BMP
  • BTR
  • CAL
  • CGM
  • CLP
  • CUR
  • CUT
  • DCRAW
  • DCX
  • DGN
  • DIB
  • DICOM
  • DWF
  • DWG
  • DXF
  • EPS
  • EXIF-JPEG
  • EXIF-TIFF
  • FlashPix
  • GEM
  • GIF
  • Group 3
  • Group 3 2D
  • Group 4
  • Headerless Digital Camera RAW
  • HPGL
  • IBM AFP
  • IBM IOCA
  • IBM MO:DCA
  • ICO
  • IFF
  • IMG
  • IMR
  • IMT
  • JBIG2
  • JPEG
  • JPEG2000
  • JPX
  • KFX
  • LV
  • MAC
  • MAC PICT
  • Motion JPEG2000
  • MSP
  • MULTIMEDIA
  • NCR
  • PBM
  • PCD
  • PCX
  • PGM
  • PNG
  • PNM
  • PPM
  • PTOCA
  • QuickTime
  • RAS
  • RAW
  • Scitex CT
  • SGI
  • SVG
  • TGA
  • TIFF
  • TXT (ASCII Text)
  • U3D
  • WBMP
  • WMF
  • WPG
  • XBM
  • XPM
  • XPS
  • XWD


Adobe DNG

Full Name
Digital Negative file format
Format ID
IG_FORMAT_DNG = 108
File Extension(s)
*.dng
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC

ImageGear Supported versions:

  • Version 1.0.0.0
  • Version 1.1.0.0 - fixed incompatibility in JPEG Lossless compression, added new tags

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 9..16 bpp
    • RGB: 24, 48 bpp*
  • IG_COMPRESSION_JPEG:
    • Grayscale: 16 bpp
    • RGB: 24, 48 bpp*

* 8bpc DNG loading has been enabled via promoting the image to 16bpc before loading.

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
APPLY_COLORSPACE_CONVERSION
AT_BOOL
TRUE
TRUE,
FALSE
Set to TRUE to convert raw image to linear sRGB colorspace during loading. Has effect only if RECONSTRUCT_COLORS is TRUE.
APPLY_TONE_CORRECTION
AT_BOOL
TRUE
TRUE,
FALSE
Set to TRUE to automatically adjust image tone and apply sRGB gamma correction during loading. Has effect only if bothRECONSTRUCT_COLORS and APPLY_COLORSPACE_CONVERSION are TRUE.
RECONSTRUCT_COLORS
AT_BOOL
TRUE
TRUE,
FALSE
ImageGear attempts to reconstruct full color image from the camera raw image. Otherwise, ImageGear loads raw pixel data without any processing.

Comments

This file format was developed by Adobe as a non-proprietory format for unified storage of "raw" images from digital cameras. DNG image stores unprocessed pixel data obtained from camera's sensor, and keeps information about color, contrast and brightness adjustments, sharpening, as well as many other parameters, in its tags. This provides greater possibilities for image correction and enhancement, compared to commonly used formats such as JPEG, EXIF or TIFF.

The fact that the format is non-proprietary allows software vendors to provide support for DNG in their applications, with complete control over the image reconstruction process.

DNG extends TIFF/EP format. It adds a set of new tags for parameters that control reconstruction of full color image from the raw data.

References used

ADOBE SYSTEMS INCORPORATED. Digital Negative (DNG) specification.


Adobe PDF

Full Name
Adobe PDF (Adobe Portable Document Format)
Format ID
IG_FORMAT_PDF = 56
File Extension(s)
*.pdf
Data Type
Vector Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET

NOTE: To support PDF format ImageGear PDF Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • Adobe® PDF version 1.7
  • Adobe® PDF version 1.6
  • Adobe® PDF version 1.5

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing
  • IG_FLTR_PAGEDELETESUPPORT - page deleting from multi-page file
  • IG_FLTR_PAGESWAPSUPPORT - page swaping in multi-page files

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_JPEG:
    • Indexed RGB: 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_JBIG2:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_LZW:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_JPEG:
    • Indexed RGB: 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_JBIG2:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_LZW:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp

ImageGear Filter Control Parameters:

Please see the section PDF Format Filter Control Parameters Reference.

Comments:

Please see the section Using ImageGear PDF Component.


Adobe PS

Full Name
Adobe PS (Adobe PostScript)
Format ID
IG_FORMAT_PS = 102
File Extension(s)
*.ps, *.eps
Data Type
Vector Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET

NOTE: To support PS format ImageGear PDF Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • Adobe® PS v3

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing
  • IG_FLTR_PAGEDELETESUPPORT - page deleting from multi-page file
  • IG_FLTR_PAGESWAPSUPPORT - page swaping in multi-page files

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_JPEG:
    • Indexed RGB: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_JBIG2:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_LZW:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_JPEG:
    • Indexed RGB: 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp;
    • RGB: 24 bpp;
    • CMYK: 32bpp
  • IG_COMPRESSION_JBIG2:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_LZW:
    • Indexed RGB: 1,4,8 bpp;
    • Grayscale - 8 bpp

ImageGear Filter Control Parameters:

Please see the section PostScript Filter Control Parameters.

Comments:

Please see the section Using ImageGear PDF Component.


Adobe PSB

Full Name
PSB (Adobe Photoshop Big)
Format ID
IG_FORMAT_PSB = 112
File Extension(s)
*.psb
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
Supports single Alpha channel for Read only. Supports aditional Alpha channels as ImageGear Extra channels for Read only.
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 2.0
  • Version 2.5
  • Version 3.0
  • Version 8.0

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • Grayscale + Alpha: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp;
    • RGB + Alpha + Extra 8, 16 bpc;
    • CMYK: 32, 64 bpp;
    • CMYK + Alpha: 40, 80 bpp;
    • CMYK + Alpha + Extra: 8, 16 bpc;
    • LAB + Alpha: 32, 64 bpp;
    • Lab + Alpha + Extra: 8, 16 bpc;
    • HSL + Alpha: 32, 64 bpp;
    • HSL + Alpha + Extra: 8, 16 bpc;
  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • Grayscale + Alpha: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp;
    • RGB + Alpha + Extra 8, 16 bpc;
    • CMYK: 32, 64 bpp;
    • CMYK + Alpha: 40, 80 bpp;
    • CMYK + Alpha + Extra: 8, 16 bpc;
    • LAB + Alpha: 32, 64 bpp;
    • Lab + Alpha + Extra: 8, 16 bpc;
    • HSL + Alpha: 32, 64 bpp;
    • HSL + Alpha + Extra: 8, 16 bpc;
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • Grayscale + Alpha: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp;
    • RGB + Alpha + Extra 8, 16 bpc;
    • CMYK: 32, 64 bpp;
    • CMYK + Alpha: 40, 80 bpp;
    • CMYK + Alpha + Extra: 8, 16 bpc;
    • LAB + Alpha: 32, 64 bpp;
    • Lab + Alpha + Extra: 8, 16 bpc;
    • HSL + Alpha: 32, 64 bpp;
    • HSL + Alpha + Extra: 8, 16 bpc;

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • CMYK: 32, 64 bpp;
    • Lab: 24, 48 bpp
  • IG_COMPRESSION_PACKED_BITS:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • CMYK: 32, 64 bpp;
    • Lab: 24, 48 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
LOAD_FIRST_EXTRA_CHANNEL_AS_ALPHA
BOOL
FALSE
TRUE,
FALSE
This parameter specifies how ImageGear should load the first extra channel of a PSB image. If FALSE, ImageGear loads all extra channels according to their descriptors in the file header. If the channel contains transparency information, ImageGear loads it as Alpha channel. Otherwise IG loads it as Extra channel.
If TRUE, IG loads first extra channel as Alpha channel. This mode provides backward compatibility with previous versions of ImageGear.
READ_LAYER_INDEX
INT
-1
Any integer, but no more than number of layers
When > -1 specifies a zero based index of layer mask image to load, otherwise reads the composition image.
READ_LAYER_MASK
BOOL
FALSE
FALSE,
TRUE
When TRUE PSB layer mask images are loaded as usual pages of multipage file, otherwise layer masks are ignored.
SAVE_THUMBNAIL
BOOL
FALSE
FALSE,
TRUE
Gets/Sets thumbnail flag. If TRUE then thumbnail will be added to image.
THUMBNAIL_ENABLE
BOOL
FALSE
FALSE,
TRUE
When TRUE thumbnail reading function loads thumbnail image provided by PSB format.
THUMBNAIL_HEIGHT
UINT
64
Any positive value
Gets/Sets thumbnail height.
THUMBNAIL_WIDTH
UINT
64
Any positive value
Gets/Sets thumbnail width.

Comments:

PSB is a newer version of PSD designed for files over 2 gigabytes, supporting up to 300,000 pixels in any dimension. The PSB format is identical to the Photoshop native format (PSD) in many ways.

The PSD file is considered by many in the computer graphics arts community as an industry standard.

The PSD/PSB is organized into 5 major segments of data: the header, 3 informational blocks, and the bitmap data. The short header always contains a "signature" of 8PPS, as well as these fields: width, height, and bit depth of the bitmap.

The first block of informational data is called the "Color Mode Data Block". It begins with a value for the length of the block. If the image has a palette, it is located here.

The next block is called the "Image Resources Block". Like the previous block, it first gives the length of the block. An ID field is filled with one of many possible values that indicate the structure where the data is stored. It may contain such parameters as resolution.

The last informational block is called the "Layer and Mask Instruction Block". After a value for the length of the block, it tells how many "layer records" follow. There is a record for each layer in the image. Each record begins with a channel ID and the length of the data in the record. After the records, a "Layer Mask" section may be stored, if applicable.

The bitmap data represents the last segment of a PSD/PSB file.

NOTE: For historic reasons, ImageGear uses the IG_COMPRESSION_PACKED_BITS constant for saving Packed Bits compressed PSD/PSB images, and uses the IG_COMPRESSION_RLE constant to report Packed Bits compression when reading PSD/PSB images. For the PSD/PSB format, the terms "Packed Bits" and "RLE" are used synonymously.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats, 2d ed. Sebastopol, CA: O'Reilly & Associates, Inc., 1996.


Adobe PSD

Full Name
PSD (Adobe Photoshop)
Format ID
IG_FORMAT_PSD = 36
File Extension(s)
*.psd
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
Supports single Alpha channel for Read only. Supports aditional Alpha channels as ImageGear Extra channels for Read only.
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 2.0
  • Version 2.5
  • Version 3.0
  • Version 8.0

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • Grayscale + Alpha: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp;
    • RGB + Alpha + Extra 8, 16 bpc;
    • CMYK: 32, 64 bpp;
    • CMYK + Alpha: 40, 80 bpp;
    • CMYK + Alpha + Extra: 8, 16 bpc;
    • LAB + Alpha: 32, 64 bpp;
    • Lab + Alpha + Extra: 8, 16 bpc;
    • HSL + Alpha: 32, 64 bpp;
    • HSL + Alpha + Extra: 8, 16 bpc;
  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • Grayscale + Alpha: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp;
    • RGB + Alpha + Extra 8, 16 bpc;
    • CMYK: 32, 64 bpp;
    • CMYK + Alpha: 40, 80 bpp;
    • CMYK + Alpha + Extra: 8, 16 bpc;
    • LAB + Alpha: 32, 64 bpp;
    • Lab + Alpha + Extra: 8, 16 bpc;
    • HSL + Alpha: 32, 64 bpp;
    • HSL + Alpha + Extra: 8, 16 bpc;
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • Grayscale + Alpha: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp;
    • RGB + Alpha + Extra 8, 16 bpc;
    • CMYK: 32, 64 bpp;
    • CMYK + Alpha: 40, 80 bpp;
    • CMYK + Alpha + Extra: 8, 16 bpc;
    • LAB + Alpha: 32, 64 bpp;
    • Lab + Alpha + Extra: 8, 16 bpc;
    • HSL + Alpha: 32, 64 bpp;
    • HSL + Alpha + Extra: 8, 16 bpc;

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • CMYK: 32, 64 bpp;
    • Lab: 24, 48 bpp
  • IG_COMPRESSION_PACKED_BITS:
    • Indexed RGB: 1, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • CMYK: 32, 64 bpp;
    • Lab: 24, 48 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
LOAD_FIRST_EXTRA_CHANNEL_AS_ALPHA
BOOL
FALSE
TRUE,
FALSE
This parameter specifies how ImageGear should load the first extra channel of a PSD image. If FALSE, ImageGear loads all extra channels according to their descriptors in the file header. If the channel contains transparency information, ImageGear loads it as Alpha channel. Otherwise IG loads it as Extra channel.
If TRUE, IG loads first extra channel as Alpha channel. This mode provides backward compatibility with previous versions of ImageGear.
READ_LAYER_INDEX
INT
-1
Any integer, but no more than number of layers
When > -1 specifies a zero based index of layer mask image to load, otherwise reads the composition image.
READ_LAYER_MASK
BOOL
FALSE
FALSE,
TRUE
When TRUE PSD layer mask images are loaded as usual pages of multipage file, otherwise layer masks are ignored.
SAVE_THUMBNAIL
BOOL
FALSE
FALSE,
TRUE
Gets/Sets thumbnail flag. If TRUE then thumbnail will be added to image.
THUMBNAIL_ENABLE
BOOL
FALSE
FALSE,
TRUE
When TRUE thumbnail reading function loads thumbnail image provided by PSD format.
THUMBNAIL_HEIGHT
UINT
64
Any positive value
Gets/Sets thumbnail height.
THUMBNAIL_WIDTH
UINT
64
Any positive value
Gets/Sets thumbnail width.

Comments:

The PSD file is considered by many in the computer graphics arts community as an industry standard.

The PSD is organized into 5 major segments of data: the header, 3 informational blocks, and the bitmap data. The short header always contains a "signature" of 8PPS, as well as these fields: width, height, and bit depth of the bitmap.

The first block of informational data is called the "Color Mode Data Block". It begins with a value for the length of the block. If the image has a palette, it is located here.

The next block is called the "Image Resources Block". Like the previous block, it first gives the length of the block. An ID field is filled with one of many possible values that indicate the structure where the data is stored. It may contain such parameters as resolution.

The last informational block is called the "Layer and Mask Instruction Block". After a value for the length of the block, it tells how many "layer records" follow. There is a record for each layer in the image. Each record begins with a channel ID and the length of the data in the record. After the records, a "Layer Mask" section may be stored, if applicable.

The bitmap data represents the last segment of a PSD file.

NOTE: For historic reasons, ImageGear uses the IG_COMPRESSION_PACKED_BITS constant for saving Packed Bits compressed PSD images, and uses the IG_COMPRESSION_RLE constant to report Packed Bits compression when reading PSD images. For the PSD format, the terms "Packed Bits" and "RLE" are used synonymously.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats, 2d ed. Sebastopol, CA: O'Reilly & Associates, Inc., 1996.


AFX

Full Name
Auto FX Photographic Edges
Format ID
IG_FORMAT_AFX = 49
File Extension(s)
*.afx
Data Type
Raster Image
Data Encoding
JPEG Lossy
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

IG_COMPRESSION_JPEG - RGB: 24 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

No

Comments:

The Auto-FX file contains a small header followed by a JPEG datastream.


AVI

Full Name
MS Video for Windows video clip
Format ID
IG_FORMAT_AVI = 52
File Extension(s)
*.avi
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC

NOTE: To support AVI format ImageGear Multimedia Component should be attached to Core ImageGear.

ImageGear Supported versions:

N/A

ImageGear Supported Features:

    • IG_FLTR_DETECTSUPPORT - autodetection
    • IG_FLTR_PAGEREADSUPPORT - single page file reading
    • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
FILE_NAME
String
""
any string
Obsolete. Not currently used.
IMAGE_IS_KEY_FRAME
Boolean
True
True, False
The filter will set this to True or False when reading an image depending on whether or not the image is marked as a key frame in the AVI file.

Comments:

AVI files are a special case of RIFF files. RIFF is the Resource Interchange File Format. This is a general purpose format for exchanging multimedia data types that was defined by Microsoft and IBM. An AVI file ("audio/video interleave") typically contains video and optionally audio which is synchronized to the video.

ImageGear can read video frame images from uncompressed and RLE compressed AVI files using this AVI format filter. To read AVI files which use other forms of compression, it's necessary to use the MULTIMEDIA format filter instead.


BMP

Full Name
Microsoft Windows Bitmap
Format ID
IG_FORMAT_BMP = 2
File Extension(s)
*.bmp, *dib
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Only for OS/2 BMP
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET, .NET64, Java

ImageGear Supported versions:

  • Windows Bitmap version 5 (created for Windows 98, Windows 2000)
  • Windows Bitmap version 4 (created for Windows 95, Windows NT 4.0)
  • Windows Bitmap version 3 (created for Windows 3.x)
  • Windows Bitmap version 2 (created for Windows 2.x)
  • OS/2 Bitmap version 2
  • OS/2 Bitmap version 1

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 15, 16, 24 bpp;
    • RGB + Alpha: 32 bpp.
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 15, 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
UPSIDE_DOWN
BOOL
FALSE
FALSE,
TRUE
If TRUE then the images will be saved upside-down
TYPE
UINT
BMP_TYPE_BMI
BMP_TYPE_BMC,
BMP_TYPE_BMI,
BMP_TYPE_BMI2
Type of BMP, see BMP_TYPE_... constants
COMPRESSION
DWORD
BMP_COMP_RGB
BMP_COMP_RLE4,
BMP_COMP_RLE8,
BMP_COMP_RGB
BMP compression, see BMP_COMP_... constants
B16_GRAY_SCANNER
BOOL
FALSE
FALSE,
TRUE
Vidar 12-bit scanner options
B16_GRAY_SCANTYPE
UINT
0
Vidar 12-bit scanner options

Comments:

The BMP format for versions 2.x - 4.x contains two headers. All Windows bitmap files begin with the same first header. They proceed with a data structure containing image information (the Bitmap Information Header), and end with the actual image data. If there is a palette (1, 4, 8-bit images), it is located between the bitmap information and the bitmap image data.

The first header identifies the format as BMP, and stores the file size and the address of the image. Two additional fields, Reserved1 and Reserved2, are not used and are set to 0.

The second header, known as the "bitmap information header", varies across the versions of Windows bitmaps. The second header for all bitmaps from version 2.x to 5.x have in common the following basic set of information: size of the secondary header in bytes, height and width of the image in pixels, the number of bit planes, the number of bits per pixel, compression scheme (0 = uncompressed, 1 = 4-bit RLE compression, 2 = 8-bit RLE compression, 3 = bitfields encoding was used), size of image in bytes, horizontal and vertical resolution in pixels per meter, the number of colors in the image, and the minimum number of important colors.

If the image is 16 or 32-bits per pixel in resolution, the compression field equals 3, and following the header are values for RedMask, GreenMask and BlueMask, rather than a palette. If the file is 4.x, there are values for an alpha component, color space type, x and y coordinates of red, green or blue endpoints, and gamma values for red, green, and blue coordinate scale values. The "ColorsImportant" field accommodates hardware that supports fewer colors than are contained by the image palette. The most significant colors are determined by counting their frequency of appearance. A value of zero means that all the colors in the image are significant.

The palette, or color table, varies in size depending on the number of colors in the image. This value is stored in the "ColorsUsed" field of the Bitmap Information Header. In the BMP format v. 3, the palette's structure is in "RGBQUAD" format. See the section entitled "Palettes" in for more information. 24-bit images do not use a palette, but rather store the color information directly in the image data.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1996.


BTR

Full Name
Brooktrout
Format ID
IG_FORMAT_BRK = 3
File Extension(s)
*.brk, *.301,
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET, .NET64

ImageGear Supported versions:

Version 1

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetect
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_CCITT_G3 - Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G32D - Indexed RGB: 1 bpp

ImageGear Write Support:

  • IG_COMPRESSION_CCITT_G3 - Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G32D - Indexed RGB: 1 bpp
NOTE: When saving an image, the image must have horizontal resolution of 200 DPI and vertical resolution of 100 or 200 DPI.

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
COMPRESSION
WORD
BTR_COMP_G3
BTR_COMP_G3
BTR_COMP_G3_2D
Compression for saving.

Comments:

A Brooktrout file consists of a CCITT Group 3 (G3) compressed file with a 128-byte header designed by Brooktrout Technology. The header fields include a constant that identifies the file as Brooktrout, a version number, the horizontal and vertical resolutions of the image in dots/mm, the number of bits per pixel, and the number of pixels per line.


CAL

Full Name
CALS Raster
Format ID
IG_FORMAT_CAL = 4
File Extension(s)
*.cal, *.ras, *.cals
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET, .NET64, Java

ImageGear Supported versions:

  • Type II (Tiles made possible)
  • Type I

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

IG_COMPRESSION_CCITT_G4 - Indexed RGB : 1 bpp

ImageGear Write Support:

IG_COMPRESSION_CCITT_G4 - Indexed RGB : 1 bpp

ImageGear Filter Control Parameters:

No

Comments:

The CALS file format was created as a graphics format specification by The Department of Defense to standardize the data exchange of logistics support operations across the military branches and military contractors. It is mandatory for most military document-handling applications. It is no longer used solely by the military and its contractors; other government agencies and commercial businesses have also adopted this format, including the aerospace, commercial computer, and medical industries.

There are two types of CALS files: Type I, and a newer, significantly more complicated Type II. Type II supports the use of tiles. Sometimes it acts a repository for a group of Type I files. Whether or not a Type II contains Type I images determines what kind of compression scheme is used. Type I is supported by ImageGear.

Type I and Type II files begin with a header that has the same format and size. It includes information about the source and destination documents, as well as image characteristics data. The data storage units under the header are each 128 bytes in length, and are referred to as records. These are written with 7-bit ASCII characters, making it more "human-readable" than most file format headers.

The image data follows the header. In a Type II file, if the data is a series of Type I images, the images are encoded with CCITT Group 4 compression. If they are Type II files, the data may either be uncompressed or encoded with CCITT Group 4. In addition, Type II data may be stored in tiles, wherein some, all, or none of the tiles may be compressed.

The Type II file contains several more substructures than Type I. Between the header and the image data are three groups of document formatting data. Other data preceding each image (or images), are "layout information" and a "Tile Index", that contains the address of each tile stored for the image.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


CGM

Full Name
Computer Graphics Metafile
Format ID
IG_FORMAT_CGM = 75
File Extension(s)
*.cgm
Data Type
Metafile Vector Image
Data Encoding
Character-based, Binary, Clear-text encoded
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, .NET, .NET64

NOTE: To support CGM format ImageGear CAD/Vector (CGM) Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • Version 1 (1987 standard)
  • Version 2
  • Version 3 (1992 standard)

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEREADSUPPORT - multi-page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Write Support:

  • IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.

Comments:

This is standardized platform-independent format used for the interchange of bitmap and vector data.

CGM is a very feature-rich format which attempts to support the graphic needs of many general fields (graphic arts, technical illustration, cartography, visualization, electronic publishing, and so on). While the CGM format is rich in features (many graphical primitives and attributes), it is less complex than PostScript, produces much smaller (more compact) files, and allows the interchange of very sophisticated and artistic images.

Computer Graphics Metafile was developed by experts working on committees under the auspices of the International Standards Organization (ISO) and the American Standards National Institute (ANSI). It was specifically designed as a common format for the platform-independent interchange of bitmap and vector data, and for use in conjunction with a variety of input and output devices. Although CGM incorporates extensions designed to support bitmap (called raster in the CGM specification) data storage, files in CGM format are used primarily to store vector information. CGM files typically contain either bitmap or vector data, but rarely both.


CLP

Full Name
Windows Clipboard
Format ID
IG_FORMAT_CLP = 5
File Extension(s)
*.clp
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET, .NET64

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Filter Control Parameters:

No

Comments:

The CLP file format represents a subset of a file format called Pictor PC Paint. The use for PC Paint format is to display images created by the PC Paint application to IBM display hardware (CGA, EGA, VGA, etc.).

The header of a CLP file is fairly short and simple, containing the file size (in bytes), and the height, width, and address of the image. The image data may be compressed or uncompressed. If it is compressed, the header contains two additional fields to give the number of bits per pixel of the packed data, and the address of the beginning of the packed run.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


CUR

Full Name
Windows cursor
Format ID
IG_FORMAT_CUR = 96
File Extension(s)
*.cur
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
Single alpha channel for read/write (see Comments).
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

Windows 3.x

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed + Extra: 1+1, 4+1, 8+1 bpp;
    • RGB + Alpha: 32 bpp
  • IG_COMPRESSION_RLE:
    • Indexed + Extra: 4+1, 8+1 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed + Extra: 1+1, 4+1, 8+1 bpp;
    • RGB + Alpha: 32 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
READ_AS_RGBA
Boolean
False
True,
False
If True, ImageGear reads CUR format as RGBA (RGB with alpha channel). See Comments for more detail.

Comments:

Cursor files consist of a file header (that is repeated several times), info headers, and cursor data. Cursor data contains an XOR mask bitmap and a monochrome AND mask bitmap. Whenever Windows draws a cursor, the AND bitmap is applied to whatever is on the screen. After that, the XOR bitmap is applied.

READ_AS_RGBA control parameter determines how ImageGear reads the 1-bit AND masks. If READ_AS_RGBA is False, ImageGear reads AND mask into "Extra" channel. This mode preserves unchanged pixel values from the file. However, in this mode ImageGear displays only the XOR mask and ignores AND mask (Extra channel) during display, i.e. display is not transparent. If READ_AS_RGBA is TRUE, ImageGear reads CUR files as 32 bpp RGB + Alpha. This allows transparent display.

Files must be 255x255 pixels or less.

References used:

© Jörn Daub EDV-Beratung - Glashütter Weg 105 - D-22889 Tangstedt

fileformats@daubnet.com


CUT

Full Name
Dr. Halo
Format ID
IG_FORMAT_CUT = 7
File Extension(s)
*.cut, *.pal (for the separately stored palette)
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, .NET, .NET64, Unix, Unix64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

IG_COMPRESSION_RLE - Indexed RGB: 8 bpp

ImageGear Write Support:

IG_COMPRESSION_RLE - Indexed RGB: 8 bpp

ImageGear Filter Control Parameters:

No

Comments:

The Dr. Halo file format is associated with the HALO Image File Format Library, the Dr. Halo III paint program, and other applications created by Media Cybernetics.

This format consists of two separate files, one with an extension of .CUT and the other with an extension of .PAL. The .CUT file contains the image data and the .PAL file contains the color palette.

The .CUT file begins with a simple header of just three data fields: width and height of the image data (pixels by scan lines), and a reserved field intended for use with any future expansions of the header. The image data is always RLE-encoded and follows the header.

The palette file (.PAL) contains a header, with information about the type of palette used, and the size and maximum values of the Red, Green, and Blue components. The palette can be hardware-specific, in which case it contains additional data.

When a CUT image is loaded into ImageGear, the palette is initialized to a grayscale ramp. In order to achieve the original colors of the palette (PAL file), it must be loaded separately into the HIGEAR image.

When saving an image into the Dr. Halo format, ImageGear creates a .CUT file. In order to save the palette (PAL file), it must be saved separately.

See the section RLE for more information.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


DCRAW

Full Name
Digital camera RAW file
Format ID
IG_FORMAT_DCRAW = 104
File Extension(s)
*.*
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC

ImageGear Supported versions:

Please see the section ImageGear Supported Digital Camera RAW Formats.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Gray level: 10..16 bpp;
    • RGB: 48 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
APPLY_COLORSPACE_CONVERSION
AT_BOOL
TRUE
TRUE,
FALSE
Set to TRUE to convert raw image to linear sRGB colorspace during loading. Has effect only if RECONSTRUCT_COLORS is TRUE.
APPLY_TONE_CORRECTION
AT_BOOL
TRUE
TRUE,
FALSE
Set to TRUE to automatically adjust image tone and apply sRGB gamma correction during loading. Has effect only if both RECONSTRUCT_COLORS and APPLY_COLORSPACE_CONVERSION are TRUE.
RECONSTRUCT_COLORS
AT_BOOL
TRUE
TRUE,
FALSE
If TRUE, ImageGear attempts to reconstruct full color image from the camera raw image. Otherwise, ImageGear loads raw pixel data without any processing.

Comments:

Please see the section Working with Digital Camera RAW formats in Using ImageGear chapter.


DCX

Full Name
Paintbrush (Intel multi-page FAX format)
Format ID
IG_FORMAT_DCX = 8
File Extension(s)
*.dcx
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
SAVE_COMPRESSED
BOOL
TRUE
FALSE,
TRUE
This parameters specify either compress output image or not. TRUE value cause to RLE compress image. FALSE cause to write image uncompressed.
ADD_IMAGE
BOOL
TRUE
FALSE,
TRUE
If this parameter is TRUE then image is added as additional page of multipage image. If FALSE then the new image with single page is written

Comments:

This file format was designed to allow multiple PCX files to be stored in one file. This is especially desirable for multi-page faxes (for which the PCX format is often used). Up to 1024 PCX images can be stored in one DCX file.

The DCX construct begins with a simple header, then the PCX files are simply stored end-to-end, complete with their individual headers and palettes. An array in the header called "Pagetable" contains offsets to each PCX. The one piece of vital information not stored with the PCX files under a DCX is their original filenames. See the PCX section of this manual for more about PCX files.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


DGN

Full Name
MicroStation Drawing (Drawing format used by MicroStation construction design software)
Format ID
IG_FORMAT_DGN = 73
File Extension(s)
*.dgn
Data Type
Vector image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, .NET, .NET64

NOTE: To support DGN format ImageGear CAD/Vector (DGN) Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • DGN_VERSION_UNKNOWN
  • DGN_VERSION_DGN2
  • DGN_VERSION_DGN1_2D
  • DGN_VERSION_DGN1_3D
  • DGN_VERSION_CEL1_2D
  • DGN_VERSION_CEL1_3D

ImageGear Supported Features:

IG_FLTR_DETECTSUPPORT - autodetection

IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
BACKCOLOR
Long
0
Any positive value
This parameter is used to set background color. If nBackGroundColor=0, then a black background color is set, otherwise a white background color is set.
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.
FILENAME
String
""
N/A
Obsolete. Not currently used.

Comments:

DGN is a CAD file format used by Intergraph IGDS CAD software. It is not as commonly used as some other CAD file formats, but it has an open specification.


DIB

Full Name
DIB (Microsoft Windows Device Independent Bitmap)
Format ID
IG_FORMAT_DIB = 9
File Extension(s)
*.dib
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, .NET, .NET64

ImageGear Supported versions:

See BMP format description.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 15, 16, 24 bpp;
    • RGB + Alpha: 32 bpp.
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 15, 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
UPSIDE_DOWN
BOOL
FALSE
FALSE,
TRUE
If TRUE then the images will be saved upside-down
TYPE
UINT
BMP_TYPE_BMI
BMP_TYPE_BMC,
BMP_TYPE_BMI,
BMP_TYPE_BMI2
Type of BMP, see BMP_TYPE_... constants
COMPRESSION
DWORD
BMP_COMP_RGB
BMP_COMP_RLE4,
BMP_COMP_RLE8,
BMP_COMP_RGB
BMP compression, see BMP_COMP_... constants
B16_GRAY_SCANNER
BOOL
FALSE
FALSE,
TRUE
Vidar 12-bit scanner options
B16_GRAY_SCANTYPE
UINT
0
Vidar 12-bit scanner options

Comments:

DIB is a synonym for the BMP format.


DICOM

Full Name
DICOM (Digital Imaging & Communication in Medicine)
Format ID
IG_FORMAT_DCM = 48
File Extension(s)
*.dicm, *.dcm
Data Type
Raster or vector image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix (Linux), .NET, .NET64

NOTE: To support DICOM format ImageGear MD Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • DICOM 3.0, 1991 - 2006

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_PAGEDELETESUPPORT - page deleting from multi-page file (only deletion of last page is supported)
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 1, 8, 9-16, 32 bpp;
    • Indexed RGB: 8 bpp, 16 bpp (converted to 24-bit RGB during loading);
    • RGB: 24 bpp
    • Vector/waveform data
  • IG_COMPRESSION_JPEG (lossy):
    • Grayscale: 8, 9-12 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_JPEG (lossless):
    • Grayscale: 8, 9-16 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_JPEG2K:
    • Grayscale: 8, 9-16 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Grayscale: 8, 9-16 bpp;
    • Indexed RGB: 8 bpp, 16 bpp (converted to 24-bit RGB during loading);
    • RGB: 24 bpp

ImageGear also supports reading of Adobe PDF documents, encapsulated in DICOM files. See Adobe PDF format description for information on supported Adobe PDF features.

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 8, 9-16, 32 bpp;
    • Indexed RGB: 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_JPEG (lossy - baseline / process 1):
    • Grayscale: 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_JPEG (lossy - extended / process 2&4):
    • Grayscale: 8, 9-12 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_JPEG (lossless):
    • Grayscale: 8, 9-16 bpp;
    • Indexed RGB: 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_JPEG2K:
    • Grayscale: 8, 9-16 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Grayscale: 8, 9-16 bpp;
    • Indexed RGB: 8 bpp;
    • RGB: 24 bpp
NOTES: To use JPEG2000 compression scheme you should attach ImageGear JPEG2000 Component.

To be able to load encapsulated Adobe PDF documents you should attach ImageGear PDF Component.

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
DETECT_CONTINUOUS_RLE
BOOL
TRUE
TRUE,
FALSE
Set to TRUE for ImageGear to detect and load images where RLE runs across row boundaries.*)
LOAD_SAVE_PIXDATA_TAG
BOOL
FALSE
TRUE,
FALSE
Set to TRUE to allow loading/saving pixel data to/from DataSet rather than to/from ImageGear DIB. **)
LOAD_SYNTAX
INT
MED_DCM_TS_AUTODETECT
MED_DCM_TS_ constants.
See file DataDict.h
Transfer Syntax to load DCM image with.
LOAD_MASKALPHACHANNEL
BOOL
TRUE
TRUE,
FALSE
Rasters are masked off
LOAD_PAGENUMBER
UINT
1
Page number to load
LOAD_CONVERTTO8G
BOOL
FALSE
TRUE,
FALSE
Convert 9-16 bit gray to 8 on load
LOAD_DETECTSKIPDIMSE
BOOL
FALSE
TRUE,
FALSE
Set to TRUE if files may contain DIMSE commands - that could throw off the format detection
LOAD_USE_8x8_LUT
BOOL
TRUE
TRUE, FALSE
Set to TRUE to use 8x8 display LUT. Otherwise, use image's palette (the mechanism that was used in IG v15.0 and earlier). ***)
LOAD_CONCAT_REPEATED_DE
BOOL
FALSE
TRUE, FALSE
TRUE to concatenate repeated data elements into one data element during loading. ****)
LOAD_USE_AUTO_WL_FOR_8G
BOOL
TRUE
TRUE, FALSE
Set to TRUE to use auto window/level for 8g images, if VOI LUT is not present. *****)
SAVE_SYNTAX
INT
MED_DCM_TS_DEFAULT
MED_DCM_TS_ constants.
See file DataDict.h
Transfer Syntax to save DCM image with.
SAVE_GROUPLENGTHS
BOOL
TRUE
TRUE,
FALSE
TRUE=include FALSE=exclude
SAVE_ASPART10
BOOL
TRUE
TRUE,
FALSE
TRUE will cause the Header to be saved
SAVE_PLANARCONFIG
INT
MED_DCM_PLANAR_PIXEL_BY_PIXEL
MED_DCM_PLANAR_... constants
Planar configuration for saving image: MED_DCM_PLANAR_...
SAVE_SMALLEST
BOOL
FALSE
TRUE,
FALSE
Include/exclude Smallest Pixel Value when saving image.
SAVE_LARGEST
BOOL
FALSE
TRUE,
FALSE
Include/exclude Largest Pixel Value when saving image.
SAVE_JPGQUALITY
UINT
70
1 - 100
JPEG Quality setting 1-100

*) This parameter specifies what to do with RLE compressed images where RLE runs across row boundaries. If it is set to TRUE, ImageGear tries to detect and load images where RLE runs across row boundaries. Otherwise, ImageGear truncates any row overruns and decodes each row separately. This parameter does not affect the loading of properly encoded images, where each row is encoded separately.

**) When LOAD_SAVE_PIXDATA_TAG is TRUE, ImageGear does not read pixel data into a DIB, but rather creates an empty DIB, so the image cannot be displayed. When reading compressed image, IG Medical treats PixelData tag as a Sequence, and places actual binary data into Item tags. This corresponds to the structure of compressed PixelData in DICOM files. When using this parameter for writing, make sure that Transfer Syntax matches actual Transfer Syntax of the PixelData element.

***) Parameter LOAD_USE_8x8_LUT specifies the mechanism for display contrast adjustments of 8-bit grayscale images. Set to TRUE (default) to use 8x8 display LUT. Otherwise, use image's palette (the mechanism that was used in IG v15.0 and earlier).

****) Parameter LOAD_CONCAT_REPEATED_DE allows to load incompliant DICOM images where some data elements are cut into several repeated data elements. Instead of one data element containing an array of values, the data set contains several data elements, with the same group/element numbers pair, containing portions of the array. Specifically, there are images with look up tables and palettes stored in this way. Set LOAD_CONCAT_REPEATED_DE parameter to TRUE to concatenate repeated data elements into one data element during loading. Otherwise (default), ImageGear loads all of the repeated elements in the same way as they are located in the file. Note that ImageGear does not allow saving of repeated data elements. If a data set contains repeated data elements, ImageGear will only write first repeated element to the file.

*****) Parameter LOAD_USE_AUTO_WL_FOR_8G affects loading of 8-bit grayscale images that do not have a VOI LUT (either a LUT sequence or window center/width values). Set to TRUE to use auto window/level for these images. Set to FALSE to apply no window/levelling (set contrast range to 0...255).

Comments:

DICOM is a public standard created to provide a flexible and expandable means for storing, sharing, and transporting digital medical images. Today DICOM is the standard for medical imaging throughout the world.

DICOM image (alternately called Data Set) contains an ordered collection of attributes referred to as "Data Elements" that are related to one or more images. Each Data Element (DE) describes a single attribute of the image, patient, or study. The images themselves are also stored in DEs.

Each DICOM Data Set is transported through the Network, and consequently, stored in a file, using one of the defined Transfer Syntaxes. The Transfer Syntax of the DICOM file indicates whether the file uses Big Endian or Little Endian byte order, whether the image data is compressed or uncompressed, and if the DICOM Data Set uses Explicit or Implicit Value Representation (VR).

The Data Element (DE) is made up of the following parts:

  • Tag
  • Value Representation (optional)
  • Value Lenth
  • Value

Tag field identifies the type of information that is contained in the Value field (where the actual data is stored). The DICOM Data Dictionary (Part 6 of the specification) defines all possible public Data Element Tags that may be used. DICOM also allows applications to define and use private Tags and thus define their own Data Elements. Value Representation (VR) specifies the format of the Data Element Value, such as UL (unsigned long), ST (Short Text) or PN (Person Name). If Implicit Transfer Syntax is used, the VR field is omitted. It can be obtained from the standard or private Data Dictionary. Value Lenth is the lenth (in bytes) of the Data field.

DICOM also allows embedding (nesting) Data Sets within Data Sets. Nested Data Sets are implemented using a "Sequence of Items" (SQ), which is a special type of Data Element.

A special group of tags at the beginning of the file allows application to recognize the file as a DICOM image file, and includes information needed to decode the file (Transfer Syntax), and serial numbers to help locate and keep track of each field. This header is referred to as "File Meta Information Header", or "Part 10 Header" (since it is defined in Part 10 of the DICOM standard). While the standard clearly states that all DICOM image files must include a Part 10 Header, in reality one finds that many do not. Instead, the average DICOM image file is a simple data stream capture of the data into a file. This is called a "Raw Data" DICOM image file. In order to read a Raw DICOM the Transfer Syntax must be guessed at using a Transfer Syntax detection algorithm.

The actual pixel data for a DICOM image is stored in a Data Element, just like any other DICOM information. Image parameters, such as dimensions, bit depth, photometric interpretation etc., are also stored in Data Elements. The Tag for Pixel Data is called "Pixel Data" and has the Tag Number 7FE0, 0010. The Data Field in this Data Element contains all pixels for the image. Depending on the image's Transfer Syntax, the Pixel Data can be compressed or uncompressed.

References Used

Digital Imaging and Communication in Medicine (DICOM). Published by: National Electrical Manufacturers Association: http://medical.nema.org/dicom.html.


DWF

Full Name
DWF (Design Web Format)
Format ID
IG_FORMAT_DWF = 78
File Extension(s)
*.dwf, *.w2d, *.w3d
Data Type
Vector/CAD image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, .NET, .NET64

NOTE: To support DWF format ImageGear CAD/Vector (DWF) Component should be attached to Core ImageGear.

ImageGear Supported Versions:

  • Read:
    • DWF packages version 6.0...6.21
    • DWF streams up to version 0.55
    • W2D streams up to version 6.0.1
    • W3D streams up to version 13.0.5
  • Write:
    • DWF package version 6.21, with W2D stream version 6.01.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Write Support:

  • IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.
IMAGE_FORMAT
Long
IG_FORMAT_PNG
IG_FORMAT_BMP
IG_FORMAT_CAL
IG_FORMAT_GIF
IG_FORMAT_G4
IG_FORMAT_JPG
IG_FORMAT_PCX
IG_FORMAT_PCT
IG_FORMAT_PNG
IG_FORMAT_TGA
IG_FORMAT_TIF
Defines the internal format that will be used for saving raster data inside the DWF file. This only affects saving of raster images to DWF.

Comments

DWF is an open file format developed by AutoDesk for storing DWG files on the Internet. DWF contains a vector based description of drawings and illustrations. The format supports 2D and 3D drawings. Unlike DWG and DXF, DWF is focused on viewing only. It is intended to be used for publishing 2D and 3D CAD drawings so they can be easily viewed without requiring the use of CAD software.

The format also may contain an encapsulated raster image, in one of the following formats: BMP, CAL, GIF, CCITT Group4, JPEG, PCX, PCT, PNG, TGA, TIFF.


DWG

Full Name
DWG (AutoDesk AutoCAD)
Format ID
IG_FORMAT_DWG = 69
File Extension(s)
*.dwg
Data Type
Vector/CAD image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, .NET, .NET64

NOTE: To support DWG format ImageGear CAD/Vector (DWG, DXF) Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • Read: Versions 2.5 through 2007
  • Write: Versions 12 through 2007

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Write Support:

IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
BACKCOLOR
Long
0
Any positive value
This parameter is used to set background color. If nBackGroundColor=0, then a black background color is set, otherwise a white background color is set.
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.
FONTPATH
String
""
Any string up to 262 characters
Defines a path to the vector font files. Format - <Path1>;< Path2>;... .
PASSWORD
String
""
Any string up to 262 characters
Used to set password for encrypted files before reading.
VERSION
String
ACAD2004
ACAD12 ACAD13 ACAD14 ACAD2000 ACAD2004 ACAD2007
Used to specify version to save the file as.
SHOWHIDDEN
Boolean
False
True, False
If true, hidden layers are shown by default.
TRUETYPE
Boolean
False
True, False
If true, TrueType font (Arial) are used for text drawing, otherwise vector fonts are used.
TTFWIDTH
Double
0
Any positive value
Relative default TrueType font width.
LINEWIDTHDEF
Double
0
Any positive value
Default line width.
FILENAME
String
""
N/A
Obsolete. Not currently used.

Comments

DWG, short for "DraWinG", is a CAD file format which serves as the native file format for drawings created in AutoCAD.


DXF

Full Name
DXF (AutoDesk AutoCAD)
Format ID
IG_FORMAT_DXF = 70
File Extension(s)
*.dxf
Data Type
Vector/CAD image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, .NET, .NET64

NOTE: To support DXF format ImageGear CAD/Vector (DWG, DXF) Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • Read: Versions 2.5 through 2007
  • Write: Versions 12 through 2007

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Write Support:

  • IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
BACKCOLOR
Long
0
Any positive value
This parameter is used to set background color. If nBackGroundColor=0, then a black background color is set, otherwise a white background color is set.
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.
FONTPATH
String
""
Any string up to 262 characters
Defines a path to the vector font files. Format - <Path1>;< Path2>;... .
PASSWORD
String
""
Any string up to 262 characters
Used to set password for encrypted files before reading.
VERSION
String
ACAD2004
ACAD12 ACAD13 ACAD14 ACAD2000 ACAD2004 ACAD2007
Used to specify version to save the file as.
SHOWHIDDEN
Boolean
False
True, False
If true, hidden layers are shown by default.
TRUETYPE
Boolean
False
True, False
If true, TrueType font (Arial) are used for text drawing, otherwise vector fonts are used.
TTFWIDTH
Double
0
Any positive value
Relative default TrueType font width.
LINEWIDTHDEF
Double
0
Any positive value
Default line width.
FILENAME
String
""
N/A
Obsolete. Not currently used.

Comments

DXF is an AutoDesk graphics format (Drawing eXchange Format). Most CAD programs (PC-based) support this format. Compared to DWG, it is simpler and more broadly supported among different software.


EPS

Full Name
Encapsulated PostScript File
Format ID
IG_FORMAT_EPS = 10
File Extension(s)
*.eps (may or may not contain preview image), *.epi (contains preview image), *epsf
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix (full support with ImageGear PDF component only), Unix64, MAC, .NET

ImageGear Supported versions:

  • Version 3.0
  • Version 2.0
  • Version 1.0

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
SAVE_PREVIEW
BOOL
FALSE
TRUE,
FALSE
If TRUE then EPS preview will be saved
START
DWORD
0
Position of start.
FITTING_METHOD
UINT
IG_EPS_FIT_ACTUAL
IG_EPS_FIT_PAGE,
IG_EPS_FIT_ACTUAL,
IG_EPS_FIT_SET
Fitting method, see IG_EPS_FIT_... constants
PIXEL_TO_PIXEL
BOOL
FALSE
TRUE,
FALSE
PAGE_WIDTH
AT_DIMENSION
8500
Page width (100ths of an inch)
PAGE_HEIGHT
AT_DIMENSION
11000
Page height (100ths of an inch)
MARGINS
AT_RECT
{250, 250, 250, 250}
Margins (100ths of an inch)
X_DPI
UINT
300
X resolution
Y_DPI
UINT
300
Y resolution
TEXT_ENCODING
UINT
IG_PDF_TEXTENC_ASCII_HEX
IG_PDF_TEXTENC_NONE,
IG_PDF_TEXTENC_ASCII_85,
IG_PDF_TEXTENC_ASCII_HEX
Text encoding methos, see IG_PDF_TEXTENC_ constants

Comments

"PostScript" refers to a widely-supported general-purpose computer language that encodes text and graphics files for sharing with the many different hardware devices that support it. The full name for this language is "PostScript Page Description Language" (PDL).

An Encapsulated PostScript file stores (encapsulates) graphical or photographic images from a larger PostScript file. ImageGear currently supports the reading of EPS image of any bit depth as long as the preview image is TIF, uncompressed. ImageGear currently supports the writing of monochrome (1-bit) and grayscale (8-bit gray level) EPS images only.

The EPS file format begins with a PostScript language header. The data herein identifies the format as EPS, and gives the image title, creator, creation date, size and position of the image. Each line begins with a percent sign (%), which is normally interpreted in the PostScript language as the beginning of a comment line. Within the context of the EPS header, it takes on a different meaning.

Following the header is a block of PostScript code, which accomplishes the actual creation of the image.

The format proceeds with the bitmap data, or "graphics screen representation".

The EPI version of the EPS format, the version supported by ImageGear, contains an abridged interpretation of the image that is appended to the end of the file. It is usually smaller, and contains a lower resolution. One of the benefits of a preview image is that an application does not need to be able to interpret PostScript in order to display the image. Preview images are created with one of four file format types: TIFF, WMF, MAC PICT, and EPS in this chapter.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


EXIF-JPEG

Full Name
Exchangeable image file format (EXIF-JPEG)
Format ID
IG_FORMAT_EXIF_JPEG = 71
File Extension(s)
*.jpg, *.xif
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Read/write
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET, .NET64

ImageGear Supported versions:

  • Version 1.0 (1996)
  • Version 1.1 (1997)
  • Version 2.0 (1998)
  • Version 2.1 (1998)
  • Version 2.2 (2002)

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_JPEG (lossy, progressive):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp;
    • RGB + Alpha: 32 bpp;
    • CMYK: 32 bpp
  • IG_COMPRESSION_JPEG (lossless):
    • Grayscale: 8, 16 bpp;
    • RGB: 24 bpp;
    • RGB + Alpha: 32 bpp;
    • CMYK: 32 bpp

ImageGear Write Support:

  • IG_COMPRESSION_JPEG (lossy):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp;
    • RGB + Alpha: 32 bpp1
    • CMYK: 32 bpp2
  • IG_COMPRESSION_JPEG (lossless):
    • Grayscale: 8, 16 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_JPEG (progressive):
    • Grayscale: 8, 12 bpp;
    • RGB: 24 bpp;

1) RGBA saving is disabled by default. Set JPEG-JFIF control parameter SAVE_ALLOW_RGBA to TRUE to enable it.

2) CMYK saving is enabled by default. You can disable it by setting JPEG-JFIF control parameter SAVE_ALLOW_CMYK to FALSE.

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
FLASHPIX_READY
BOOL
FALSE
TRUE,
FALSE
If TRUE the image will be saved with 64 interoperability, alowing lossless conversion to FlashPix format.
SAVE_JFIF_SEGMENT
BOOL
FALSE
TRUE,
FALSE
If TRUE the JFIF segment will be saved with image
SAVE_
THUMBNAIL
BOOL
TRUE
TRUE,
FALSE
If TRUE the thumbnail will be saved with image
THUMBNAIL_
WIDTH
UINT
160
Any positive value
The width of thumbnail
THUMBNAIL_
HEIGHT
UINT
120
Any positive value
The height of thumbnail
THUMBNAIL_
COMPRESSED
BOOL
TRUE
TRUE,
FALSE
For JPEG compressed EXIF. If TRUE the thumbnail will be JPEG compressed
LOAD_SCALE_DENOM
UINT
1
1, 2, 4, 8
If this parameter is set to any other than default value, ImageGear loads reduced version of the image, width and height of which are scaled by 1/load_scale_denom. This mode can be used for image preview, especially for those images that do not have embedded thumbnails, or where embedded thumbnails are smaller than desired. This mode allows you to make loading process 2-4 times faster.*

* LOAD_SCALE_DENOM parameter affects the following formats: JFIF-JPEG, EXIF-JPEG. It does not affect TIFF-JPEG and other formats containing JPEG stream. Only Lossy and Progressive compressed images are supported. It affects all image loading functions and all image info functions.

The following control parameters of JFIF-JPEG format filter also affect EXIF-JPEG:

    • SAVE_ALLOW_CMYK
    • SAVE_ALLOW_RGBA

Comments

The EXIF file format is based on existing formats. There are two kinds of EXIF format: compressed and uncompressed. Compressed EXIF is recorded in JPEG format with EXIF header saved in APP1 and APP2 marker segments. The APP2 segment is used when recording FlashPix extensions.

Uncompressed EXIF is recorded in TIFF Rev. 6.0 formats with two pages - the first is the main image, the second is a thumbnail (if it present). The EXIF header data is stored in TIFF 6.0 format for both compressed and uncompressed EXIF and include EXIF information (that is necessary) and GPS information (that is optional). Information specific to the camera system and not defined in TIFF is stored in private tags registered for EXIF. ImageGear EXIF support allows you to retrieve this information and send it to an application level and vice versa.

The EXIF image file specification also specifies the method for recording thumbnails. The reason for using the TIFF Rev. 6.0 tag format in the compressed file APP1 segment is to facilitate exchange of attribute data between EXIF compressed and uncompressed files.

Although the standard only allows uncompressed and JPEG-compressed EXIF images, and RGB colorspace, there are EXIF images that use other compressions and colorspaces. In a sence, these images can be considered as JPEGs or TIFFs with additional EXIF metadata. ImageGear supports reading of such non-standard images, as well as writing of Exif images with some non-standard compressions and colorspaces.

References used

Digital Still Camera Image File Format Standard (Exif) Version 2.0, Nov 1997, Japan Electronic Industry Development Association.

Digital Still Camera Image File Format Standard (Exif) Version 2.1, June 1998, Japan Electronic Industry Development Association.


EXIF-TIFF

Full Name
Exchangeable image file format (EXIF-TIFF)
Format ID
IG_FORMAT_EXIF_TIFF = 74
File Extension(s)
*.tif, *.xif
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Read only
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET, .NET64

ImageGear Supported versions:

  • Version 1.0 (1996)
  • Version 1.1 (1997)
  • Version 2.0 (1998)
  • Version 2.1 (1998)
  • Version 2.2 (2002)

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 1, 4, 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp;
    • RGB + Alpha: 8, 12, 16 bpc;
    • RGB + Alpha + Extra: 8, 12, 16 bpc;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc.
  • IG_COMPRESSION_PACKED_BITS:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 1, 4, 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp;
    • RGB + Alpha: 8, 12, 16 bpc;
    • RGB + Alpha + Extra: 8, 12, 16 bpc;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc.
  • IG_COMPRESSION_LZW:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 1, 4, 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp;
    • RGB + Alpha: 8, 12, 16 bpc;
    • RGB + Alpha + Extra: 8, 12, 16 bpc;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc.
  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 1, 4, 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp;
    • RGB + Alpha: 8, 12, 16 bpc;
    • RGB + Alpha + Extra: 8, 12, 16 bpc;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc.
  • IG_COMPRESSION_HUFFMAN:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_JPEG (Lossy):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp;
  • IG_COMPRESSION_JPEG (Lossless):
    • Grayscale: 8, 16 bpp;
    • RGB: 24 bpp;

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 8, 12, 16 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp.
  • IG_COMPRESSION_PACKED_BITS:
    • Grayscale: 8, 12, 16 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp.
  • IG_COMPRESSION_LZW:
    • Grayscale: 8, 12, 16 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp.
  • IG_COMPRESSION_DEFLATE:
    • Grayscale: 8, 12, 16 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 32, 48, 64 bpp.
  • IG_COMPRESSION_JPEG (Lossy):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp;
  • IG_COMPRESSION_JPEG (Lossless):
    • Grayscale: 8, 16 bpp;
    • RGB: 24 bpp;

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
SAVE_
THUMBNAIL
BOOL
TRUE
TRUE,
FALSE
If TRUE the thumbnail will be saved with image
THUMBNAIL_
WIDTH
UINT
160
Any positive value
The width of thumbnail
THUMBNAIL_
HEIGHT
UINT
120
Any positive value
The height of thumbnail

Comments

The EXIF file format is based on existing formats. There are two kind of EXIF format: compressed and uncompressed. Compressed EXIF is recorded in JPEG format with EXIF header saved in APP1 and APP2 marker segments. The APP2 segment is used when recording FlashPix extensions.

Uncompressed EXIF is recorded in TIFF Rev. 6.0 formats with two pages - the first is the main image, the second is a thumbnail (if it present). The EXIF header data is stored in TIFF 6.0 format for both compressed and uncompressed EXIF and include EXIF information (that is necessary) and GPS information (that is optional). Information specific to the camera system and not defined in TIFF is stored in private tags registered for EXIF. ImageGear EXIF support allows you to retrieve this information and send it to an application level and vice versa.

The EXIF image file specification also specifies the method for recording thumbnails. The reason for using the TIFF Rev. 6.0 tag format in the compressed file APP1 segment is to facilitate exchange of attribute data between EXIF compressed and uncompressed files.

Although the standard only allows uncompressed and JPEG-compressed EXIF images, and RGB colorspace, there are EXIF images that use other compressions and colorspaces. In a sence, these images can be considered as JPEGs or TIFFs with additional EXIF metadata. ImageGear supports reading of such non-standard images, as well as writing of Exif images with some non-standard compressions and colorspaces.

References used

Digital Still Camera Image File Format Standard (Exif) Version 2.0, Nov 1997, Japan Electronic Industry Development Association.

Digital Still Camera Image File Format Standard (Exif) Version 2.1, June 1998, Japan Electronic Industry Development Association.


FlashPix

Full Name
FlashPix
Format ID
IG_FORMAT_FPX = 50
File Extension(s)
*.fpx
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Read only, converted to RGB during loading.
IG Platforms Support
WIN32

NOTE: To support FlashPix format ImageGear FlashPix Component should be attached to Core ImageGear.

ImageGear Supported versions:

Version 1.0.0

Version 1.0.1

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • Grayscale + Alpha: 16 bpp (converted to RGB during loading);
    • RGB + Alpha: 16 bpp (converted to RGB during loading);
  • IG_COMPRESSION_FPX_SINCOLOR:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • Grayscale + Alpha: 16 bpp (converted to RGB during loading);
    • RGB + Alpha: 16 bpp (converted to RGB during loading);
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
  • IG_COMPRESSION_FPX_NOCHANGE:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
  • IG_COMPRESSION_FPX_SINCOLOR:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
DISABLETRANSFORMS
BOOL
FALSE
TRUE,
FALSE
Set to TRUE to load the image without applying geometric and color transforms that are specified in the metadata
LOADOPTION
MODE
IG_FPX_LOAD_DEFAULT
IG_FPX_LOAD_DEFAULT = 0, IG_FPX_LOAD_NOLESS = 1, IG_FPX_LOAD_NOGREATER = 2
Allows to select a resolution according to specified page width and height. *)
PAGEBACKGROUND
RGBQUAD
{0, 0, 0, 0};
RGBQUAD
Background to use for images that have Alpha channel.
PAGEHEIGHT
AT_DIMENSION
0
AT_DIMENSION
See LOADOPTION
PAGEWIDTH
AT_DIMENSION
0
AT_DIMENSION
See LOADOPTION
QUALITY
UINT
70
1...100
Quality to use for saving JPEG compressed FPX images
SAVEFROMDIB
BOOL
TRUE
TRUE,
FALSE
TRUE to save pixel data from HIGEAR. FALSE to save pixel data that were loaded from FlashPix image and stored internally. This allows changing FlashPix metadata, including geometric and color transforms, and saving the image without changing its original pixel data.
SETSCANNEDIMGSIZE
BOOL
FALSE
TRUE,
FALSE
Use HIGEAR resolution to set ScannedImageSize tag when saving the image

*) Set to IG_FPX_LOAD_DEFAULT to load the highest (or the only) resolution in the resolution hierarchy. Set to IG_FPX_LOAD_NOLESS to load the lowest resolution which dimensions are not less than PAGEWIDTH and PAGEHEIGHT parameters. Set to IG_FPX_LOAD_NOGREATER to load the highest resolution which dimensions are not greater than PAGEWIDTH and PAGEHEIGHT parameters.

Comments

The FlashPix File Format was created to make the desktop handling of digital color photographic images easy, enjoyable, affordable, and commonplace. It was developed and published by Eastman Kodak Company in collaboration with Hewlett-Packard, Live Picture Inc. and Microsoft.

Kodak is marketing the Kodak Image Magic system, which includes such components as a FlashPix CD, digital cameras, scanners, and print services - that can be accessed through the internet, or through your local film developer. You do not, however, have to use digital equipment to put your photographs onto CD. You can still take your "old-fashioned" camera film to a film developer and request that it be sent to Kodak for transfer to a CD. You can also bring in existing negatives and have them transferred to CD. Ultimately, Kodak envisions a world where amateur PC users can put their latest photographs into digital storage, improve them and enhance them, drop them into card or calendar templates, and E-mail them off to Grandma and Grandpa's home computer.

When you think FlashPix file format, three major structural features should come to mind: Source Plus Transform storage scheme, hierarchy of resolutions, and tiled storage. These three key features best illustrate the purpose of the format and also set it apart from most others.

  • The Source Plus Transform storage scheme refers to Kodak's use of "transformation parameters". This set of non-image data tags (fields) stores the last set of FlashPix-specific transformations that were made to the image. In this unique storage scheme the bitmap data and the transformations for it are stored separately. This keeps the bitmap data in its original state. The bitmap data, or "source image" of a FlashPix image is never directly altered by a FlashPix transformation. One of the reasons for this structure is that it allows the end-user of a FlashPix application always to be able to return to the source image if their transformations have gotten out-of-hand. Transformation parameters can be applied (enabled) to the source image when the image is being displayed, or they can be "turned off" (disabled) so that the unaltered source image is displayed. The API functions IG_FPX_enable() and IG_FPX_disable() are used for this purpose, respectively. Additionally, you can "burn in" the transformations directly to the DIB, if so desired.
  • The "hierarchy of resolutions" refers to the multiple pages with which FlashPix stores several versions of the same image - each with a different resolution. The highest resolution image represents the first image or "page" of a FlashPix file. Each subsequent image is at a lower resolution. The resolution hierarchy was developed in the interest of optimizing speed during image loading. The lower resolution images can be used for display, depending on the capability of the monitor, and the highest resolution image will always be used for printing. Kodak likes to refer to this storage as being like a pyramid.

The FlashPix is available as an ImageGear component, which brings you the core of the FlashPix features:

  • a full hierarchy of resolutions for each image,
  • a "Source Plus Transform" storage scheme for easy "undos" and no loss of image quality, no matter how many transformations are applied,
  • a choice of JPEG or Single Color compression,
  • a details-oriented stash of non-image data (title, subject, people in the picture, creation date, etc.),
  • thumbnail support,
  • tiled storage,
  • and the use of all ImageGear functions to load, save, and transform FlashPix images.
  • a special FlashPix-specific API, including functions that make reading and writing of non-image information easy,
  • the ability to perform all FlashPix transformations on any ImageGear image,
  • the ability to perform ImageGear transformations without losing FlashPix transformations.


GEM

Full Name
GEM Raster
Format ID
IG_FORMAT_GEM = 13
File Extension(s)
*.gem
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

IG_COMPRESSION_RLE - 1, 4, 8 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

No

Comments

A deal with the creators of Ventura Publisher made this a significant format in the desktop publishing arena. It was also distributed by PC systems manufacturers and was the native bitmap format of the Atari ST system.

The structure of a GEM Raster image file begins with a fixed-length header and is followed by the bitmap data.

The data fields of the header include the version number (always 1), image width (in pixels), and image height (in scan lines). A field named "Headerlength" contains a value of either 8 or 9, where 9 indicates that an optional field appears at the end, called "BitImageFlag". This field is directly tied with a "NumberOfPlanes" field. If "NumberOfPlanes" is greater than 1, the BitImageFlag indicates whether the image is color or grayscale. (BitImageFlag = 0 = color, BitImageFlag = 1 = grayscale).

Two fields in the header that are a little unusual among bitmap formats are the width and height of the pixels (in microns), and a field called "PatternLength". PatternLength is the length of any pattern that will be decoded. It is used by the RLE compression scheme, which assigns one of four different kind of codes to store each of the four different types of repeat data in the image. The "pattern code" indicates that a pattern is available. The pattern and repeat count are decoded while reading the file.

For more on RLE compression, see the ImageGear Supported Compressions Reference section in this chapter.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


GIF

Full Name
CompuServe Graphics Interchange Format (GIF)
Format ID
IG_FORMAT_GIF = 14
File Extension(s)
*.gif
Data Type
Raster image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

NOTE: To support GIF format ImageGear GIF/TIFF-LZW Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • Version 89a, 1989: added ability to store both text and graphics in same file.
  • Version 87a, 1987: first version; still read by major applications supporting GIF.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing

ImageGear Read Support:

IG_COMPRESSION_LZW - Indexed RGB: 1, 4, 8 bpp

ImageGear Write Support:

IG_COMPRESSION_LZW - Indexed RGB: 1, 4, 8 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
VERSION
INT
89
87; 89
Sets version of GIF file to be saved.
INTERLACE
BOOL
FALSE
TRUE,
FALSE
Sets GIF interlace mode to be used on saving.

Comments

This is a very popular format for storing graphics images on Web pages. It is also supported by most applications that handle graphical image data.

Unisys, the owner of the LZW compression used on all GIF files, declared at the end of 1995 that it will charge a royalty fee to all developers wishing to use this compression scheme. (This drove many developers to search for a replacement file format. A new file format called PNG ("Ping") was created. The PNG format is supported by ImageGear; see the PNG section of this chapter for more information.) However, worldwide GIF-related patents expired in 2004 and the format is once again free to use without the need to pay royalties to Unisys.

While the GIF format is designed to store multiple images, few GIF format viewers support this. For this reason, it is not advisable to store more than one image in a GIF file.

The GIF layout is fairly complex; it can include several categories of "blocks" under which subcategories of blocks may occur.

For both the 89a and 87a versions, the first three blocks are the header, the Logical Source Descriptor, and the Global Color Table. The header simply identifies the file as a GIF and gives the version number. The Logical Source Descriptor is very similar to a header, and is sometimes stored within the header. It contains information about the display screen and color table.

GIFs contain two kinds of color tables: a "Global Color Table" and "Local Color Table." The Global Color Table is used as a table for the pixel values of all images contained within the GIF file. Optionally, the Local Color Table block that is provided for each image can contain data specific to an individual image.

In addition to a local color table, each image is associated with another block of data, the Local Image Descriptor, provides the size and location of the image, and data about its color table.

GIF89a is equipped with four new types of blocks called "Control Extensions". The most significant group of these are the "Graphics Control Extension Blocks" that enable the simultaneous storing and displaying of textual and graphical data, including multiple images, resulting in a "multimedia presentation". The functions provided by these blocks include setting the transparency or opacity of the images, restoring or deleting images, and overlaying captions (that are not part of the actual bitmap) on images.

GIF image data is always stored in LZW-compressed form. The data may also be interlaced. Interlacing helps the appearance of an image as it displays while being decompressed, so that it "fades in". In a non-interlaced file, the presentation of the image data begins with row 1 and works downward to the last row of data. This method of display does not allow a quick preview of the whole image. When the data is interlaced, the lines are saved and displayed out of sequence. Every fourth row is displayed first and then filled in with every remaining fourth row, until all of the lines are displayed. This allows the eye to perceive the basic subject of the whole image before it is completely displayed.

See also:

GIF Non-image Data Structure

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


Group 3

Full Name
Group 3 (G3)
Format ID
IG_FORMAT_G3 = 11
File Extension(s)
*.raw
Data Type
Raw image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, Unix, Java, Unix64

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

IG_COMPRESSION_CCITT_G3 - Indexed RGB: 1 bpp

ImageGear Write Support:

IG_COMPRESSION_CCITT_G3 - Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
WIDTH
DIMENSION
0
Any positive
value
Image width
HEIGHT
DIMENSION
0
Any positive
value
Image height
FILL_ORDER
UINT
1
FillOrder = 2, for inverse bit order in byte
PACKED
BOOL
FALSE
TRUE,
FALSE
Currently not in use. Reserved for the future.
K_FACTOR
UINT
2
K - factor for 2D coding

Comments

ImageGear does not try to automatically detect raw Group3 data. Use one of the raw file loading functions, or specify format explicitly. Please see the section Loading, Saving and Acquiring Images.


Group 3 2D

Full Name
Group 3 2D
Format ID
IG_FORMAT_G32D = 53
File Extension(s)
*.raw
Data Type
Raw image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, Unix, Java, Unix64

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

IG_COMPRESSION_CCITT_G32D - Indexed RGB: 1 bpp

ImageGear Write Support:

IG_COMPRESSION_CCITT_G32D - Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
WIDTH
DIMENSION
0
Any positive
value
Image width
HEIGHT
DIMENSION
0
Any positive
value
Image height
FILL_ORDER
UINT
1
FillOrder = 2, for inverse bit order in byte
PACKED
BOOL
FALSE
TRUE,
FALSE
Currently not in use. Reserved for the future.
K_FACTOR
UINT
2
K - factor for 2D coding

Comments

ImageGear does not try to automatically detect raw Group3 data. Use one of the raw file loading functions, or specify format explicitly. Please see the section Loading, Saving and Acquiring Images.


Group 4

Full Name
Group 4
Format ID
IG_FORMAT_G4 = 12
File Extension(s)
*.raw
Data Type
Raw image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, Unix, Java, Unix64

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

IG_COMPRESSION_CCITT_G4 - Indexed RGB: 1 bpp

ImageGear Write Support:

IG_COMPRESSION_CCITT_G4 - Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
WIDTH
DIMENSION
0
Any positive
value
Image width
HEIGHT
DIMENSION
0
Any positive
value
Image height
FILL_ORDER
UINT
1
FillOrder = 2, for inverse bit order in byte
PACKED
BOOL
FALSE
TRUE,
FALSE
Currently not in use. Reserved for the future.
K_FACTOR
UINT
2
K - factor for 2D coding

Comments

ImageGear does not try to automatically detect raw Group3 data. Use one of the raw file loading functions, or specify format explicitly. Please see the section Loading, Saving and Acquiring Images.


Headerless Digital Camera RAW

Full Name
Headerless Digital Camera file
Format ID
IG_FORMAT_HLDCRAW = 114
File Extension(s)
*.*
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, Net, Net64

ImageGear Supported versions:

Please see the section ImageGear Supported Digital Camera RAW Formats.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Gray level: 10..16 bpp;
    • RGB: 48 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
RECONSTRUCT_COLORS
AT_BOOL
TRUE
TRUE,
FALSE
If TRUE, ImageGear attempts to reconstruct full color image from the camera raw image. Otherwise, ImageGear loads raw pixel data without any processing. See also APPLY_COLORSPACE_CONVERSION and APPLY_TONE_CORRECTION parameters.
APPLY_COLORSPACE_CONVERSION
AT_BOOL
TRUE
TRUE,
FALSE
Set to TRUE to convert raw image to linear sRGB colorspace during loading. Has effect only if RECONSTRUCT_COLORS is TRUE.
APPLY_TONE_CORRECTION
AT_BOOL
TRUE
TRUE,
FALSE
Set to TRUE to automatically adjust image tone and apply sRGB gamma correction during loading. Has effect only if bothRECONSTRUCT_COLORS and APPLY_COLORSPACE_CONVERSION are TRUE.

Comments:

Headerless Digital Camera file filter provides support for Digital Camera Raw images that only contain pixel data and no header.

Because of absence of a header, such files can't be detected reliably. ImageGear uses low detection priority for these images, and by default, detection of this filter is disabled. Also, since these files do not contain any metadata describing color reconstruction, ImageGear support level for them is limited to "S2" - pixel decoding only.

Please also see the section Working with Digital Camera RAW formats in Using ImageGear chapter.


HPGL

Full Name
HPGL
Format ID
IG_FORMAT_HPGL = 72
File Extension(s)
*.hpgl, *.plt
Data Type
Vector image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
Win32, Win64, .NET, .NET64

NOTE: To support HPGL format ImageGear CAD/Vector (HPGL, HPGL/2) Component should be attached to Core ImageGear.

ImageGear Supported versions:

HPGL, HPGL/2

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading

ImageGear Read Support:

IG_COMPRESSION_NONE - Vector/CAD data

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
BACKCOLOR
Long
0
Any positive value
This parameter is used to set background color. If nBackGroundColor=0, then a black background color is set, otherwise a white background color is set.
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.
FILENAME
String
""
N/A
Obsolete. Not currently used.

Comments

HPGL ("Hewlett Packard Graphics Language") is a vector graphics language used to output vector/CAD drawings to plotters. Due to widespread support among CAD software, it is sometimes used as a vector/CAD interchange format.


IBM AFP

Full Name
IBM AFP
Format ID
IG_FORMAT_AFP = 106
File Extension(s)
*.afp
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_IBM_MMR:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_ABIC_BW:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_ABIC_GRAY:
    • Indexed RGB: 4 bpp
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
STITCH_TILES
BOOL
FALSE
TRUE,
FALSE
Set to TRUE to enable automatic tile stitching during image loading.

Comments:

The AFP Document File is the file, coded in IBM's MO:DCA format (Mixed Object Document Content Architecture). All MO:DCA objects contained in the AFP Document File include the following:

  • Document Structure Objects
  • Resource Objects
    • Font Objects
    • Overlay Objects
    • Page Segment Objects
  • Graphics Objects
    • IM Image Objects
    • Image Objects (IOCA)
    • Graphics Objects (GOCA)
  • Text Objects
  • Bar Code Objects
  • Object Containers


IBM IOCA

Full Name
IBM IOCA (Image Object Content Architecture)
Format ID
IG_FORMAT_ICA =16
File Extension(s)
*.ica, *.mod
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_IBM_MMR:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_ABIC_BW:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_ABIC_GRAY:
    • Indexed RGB: 4bpp
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_IBM_MMR:
    • Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
STITCH_TILES
BOOL
FALSE
TRUE,
FALSE
Set to TRUE to enable automatic tile stitching during image loading.

Comments:

IOCA files are most often used for document storage. They are not so unusual from most file formats, except for their naming conventions, which tend to be IBM-specific.

The general structure of an IOCA image file includes a "beginning segment", an "end segment", a header component called "Image Data Parameters", a palette, and the actual image data. Most IOCA images (less than 24-bit) contain a palette. The elements of the bitmap image are referred to as Image Data Elements (IDEs), that are called pixels by most other formats. The "Object Content" refers to the combination of the header and the image data.

IBM uses fields in the header called "self-defining fields". They each contain a type code, the length of the parameter, and then the actual parameter data. They include information as resolution, size, encoding scheme, and bit depth.

There are many optional parameters. Subsets of IOCA parameters are referred to as "function sets" and define different flavors of the IOCA, one being the MO:DCA, also supported by ImageGear. Examples of optional parameters include a tiling parameter, if the image is tiled, and a Band Image parameter, which signifies that the image is saved in "bands" ("bit planes" in other formats).

References used

Image Object Content Architecture Reference, 2d ed., copyright International Business Machines Corporation, August 1991.


IBM MO:DCA

Full Name
IBM MO:DCA (Mixed Object Document Content Architecture)
Format ID
IG_FORMAT_MOD = 26
File Extension(s)
*.mod, *.ica
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC, .NET, .NET64

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_IBM_MMR:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_ABIC_BW:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_ABIC_GRAY:
    • Indexed RGB: 4bpp
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_IBM_MMR:
    • Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
STITCH_TILES
BOOL
FALSE
TRUE,
FALSE
Set to TRUE to enable automatic tile stitching during image loading.

Comments:

The MO:DCA header allows the storage of multiple IOCA images in one file. The MO:DCA format is an IOCA "wrapper". It is considered by IBM to be a "data stream controlling environment" for a group of IOCA images.

There are many optional parameters. Subsets of IOCA parameters are referred to as "function sets" and define different flavors of the IOCA, for example, the MO:DCA. The MO:DCA incorporates function sets "10" and "11".

Please see the description of IBM IOCA in this chapter for further description.

References used

Image Object Content Architecture Reference, 2d ed., copyright International Business Machines Corporation, August 1991.


ICO

Full Name
ICO (Windows icon)
Format ID
IG_FORMAT_ICO = 17
File Extension(s)
*.ico
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
Single alpha channel for read/write (see Comments).
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Windows 3.1
  • Windows NT/95

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed + Extra: 1+1, 4+1, 8+1 bpp;
    • RGB + Alpha: 32 bpp
  • IG_COMPRESSION_RLE:
    • Indexed + Extra: 4+1, 8+1 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed + Extra: 1+1, 4+1, 8+1 bpp;
    • RGB + Alpha: 32 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
READ_AS_RGBA
Boolean
False
True,
False
If True, ImageGear reads CUR format as RGBA (RGB with alpha channel).

Comments:

More than one representation of the icon bitmap is stored in order to offer a choice of icons; the version most compatible to the output device is used. Support for read-write transparency masks has been added to the ICO filter. Transparency masks are placed into an alpha channel when the image is created. These masks can subsequently be set and applied to the main image.

The structure of an ICO file consists of four data sections: the header, the Resource Descriptor, and two representations of the image data per each icon (the color bitmap and the 1-bit masking bitmap).

The header identifies the file as an ICO and stores the number of icon images that are stored in the file.

The Resource Descriptor stores the image width and height, the number of colors used, and the offset from the beginning of the file to the image data.

The 1-bit masking bitmap defines the transparent portion of the bitmap.

READ_AS_RGBA control parameter determines how ImageGear reads the 1-bit AND masks. If READ_AS_RGBA is False, ImageGear reads AND mask into "Extra" channel. This mode preserves unchanged pixel values from the file. However, in this mode ImageGear displays only the XOR mask and ignores AND mask (Extra channel) during display, i.e. display is not transparent. If READ_AS_RGBA is TRUE, ImageGear reads CUR files as 32 bpp RGB + Alpha. This allows transparent display.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.


IFF

Full Name
Interchange File Format
Format ID
IG_FORMAT_IFF = 18
File Extension(s)
*.iff
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 1, 1985

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Filter Control Parameters:

None

Comments

This type of file format is referred to as a "wrapper" because it can include any type of data that is encoded in any manner.

The basic organization of the IFF file format utilizes storage structures known as "chunks". A chunk is a block of data that contains its own header (that identifies the chunk size and type). This makes it easy for an IFF viewer to identify chunks and to skip over the ones that are not necessary.

The Header Chunk contains 17 fields, including the size of the header chunk, the identification of the chunk as a header, the size and origin of the image, data encoding (yes or no), and aspect ratio.

A "CMG Chunk" may follow, containing data specific to Amiga display hardware.

A "CMAP Chunk" contains the RGB palette for the image.

The "Body Chunk" (also called the ILBM or "interleaved bitmap"), is the image data itself. It is stored in an "interleaved" format, by bit plane. Interleaving allows for data with different resolutions to be neatly stored together. The data may be uncompressed or compressed using an RLE scheme. See RLE section at the beginning of this chapter for more information.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


IMG

Full Name
Xerox 9700 graphic image (IMG)
Format ID
IG_FORMAT_XRX = 46
File Extension(s)
*.img
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

Version 1.0

Version 2.0

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Indexed RGB: 1, 8 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None

Comments

The IMG header contains the width, height and resolution of the image. Following the header is compressed data. The sample values of a binary image are compressed and then encoded into a sequence of bits. Compression is achieved by predicting a pixel value based on pixel values that have already been computed. For example, the predicted value of a pixel may be that of the corresponding pixel on the previous scan line. Up to fifteen different compression techniques are used, each designed to remove redundancy from a certain kind of image - text characters, line art, and halftones of various screen frequencies. The algorithm adapts to the properties of the image by selecting the technique that will perform the best.

References Used

Xerox System Integration Standard. Raster Encoding Standard. Xerox, XNSS 178506, June 1990.


IMR

Full Name
IMRS-Raster image
Format ID
IG_FORMAT_IMR = 59
File Extension(s)
*.ima
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

IG_COMPRESSION_CCITT_G4 - Indexed RGB: 1 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None

Comments

The IMG header contains the width, height and resolution of the image. Following the header is compressed data. The sample values of a binary image are compressed and then encoded into a sequence of bits. Compression is achieved by predicting a pixel value based on pixel values that have already been computed. For example, the predicted value of a pixel may be that of the corresponding pixel on the previous scan line. Up to fifteen different compression techniques are used, each designed to remove redundancy from a certain kind of image - text characters, line art, and halftones of various screen frequencies. The algorithm adapts to the properties of the image by selecting the technique that will perform the best.

References Used

Xerox System Integration Standard. Raster Encoding Standard. Xerox, XNSS 178506, June 1990.


IMT

Full Name
IMNET (Medical Image Format)
Format ID
IG_FORMAT_IMT = 20
File Extension(s)
*.imt
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_CCITT_G3 - Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4 - Indexed RGB: 1 bpp

ImageGear Write Support:

  • IG_COMPRESSION_CCITT_G4 - Indexed RGB: 1 bpp
NOTE: The width of an image being saved must be a multiple of 8.

ImageGear Filter Control Parameters:

None


JBIG2

Full Name
JBIG2 (bilevel image compression)
Format ID
IG_FORMAT_JB2 = 62
File Extension(s)
*.jb2
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32

NOTE: To support JBIG 2 format ImageGear JBIG2 Component should be attached to Core ImageGear.

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing

ImageGear Read Support:

IG_COMPRESSION_JBIG2 - Indexed RGB: 1 bpp

ImageGear Write Support:

IG_COMPRESSION_JBIG2 - Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

Please see the section JBIG2 Filter Control Parameters.

Comments

JBIG2 is a highly-compressed black and white image format that uses symbol recognition and substitution for very good compression results. Any black and white image can be compressed using JBIG2 including images stored as Group 4, Group 3, MO:DCA, TIFF, PDF and others.

The JBIG2 compression algorithm searches for groups of pixels arranged in similar shapes and use them to define a symbol. Rather than retaining information on the placement of each pixel, a table is created for common symbols. This allows users to see incredible reductions in file sizes. Compression rate matches 100:1 compared to uncompressed black and white TIFFs.


JPEG

Full Name
JPEG File Interchange Format
Format ID
IG_FORMAT_JPG = 21
File Extension(s)
*.ipg, *jpeg
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Read/write
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC, Java

ImageGear Supported versions:

  • Version 1.01 - 1991
  • Version 1.02 - Added ability for thumbnails to be color-mapped and JPEG compressed.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_JPEG (Lossy):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp;
    • CMYK: 32 bpp;
    • RGB + Alpha: 32 bpp
  • IG_COMPRESSION_JPEG (Lossless):
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • CMYK: 32 bpp;
    • RGB + Alpha: 32 bpp
  • IG_COMPRESSION_JPEG (Progressive JPEG):
    • Grayscale: 8, 12 bpp;
    • RGB: 24 bpp;
    • CMYK: 32 bpp;
    • RGB + Alpha: 32 bpp

ImageGear Write Support:

  • IG_COMPRESSION_JPEG (Lossy):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp;
    • RGB + Alpha: 32 bpp1
    • CMYK: 32 bpp2
  • IG_COMPRESSION_JPEG (Lossless):
    • Grayscale: 8, 16 bpp;
    • RGB: 24 bpp;
  • IG_COMPRESSION_JPEG (Progressive JPEG):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp

1) RGBA saving is disabled by default. Set SAVE_ALLOW_RGBA control parameter to TRUE to enable it.

2) CMYK saving is enabled by default. You can disable it by setting SAVE_ALLOW_CMYK control parameter to FALSE.

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
CALLER_ID
Long
21
For internal use.
DECIMATION_TYPE
WORD
IG_JPG_DCM_2x2_1x1_1x1
See JPEG Decimation Section.
Get/Set decimation value. For all available values see JPEG Decimation Section.
ENTROPY_OPTIMIZE
BOOL
FALSE
FALSE
TRUE
Get/Set entropy optimization flag. See JPEG Entropy Optimization Section.
KEEP_ALPHA
BOOL
FALSE
FALSE
TRUE
This parameter gets/sets alpha channel flag. If TRUE then alpha channel will be saved with original image (if it is present).
LOAD_SAVE_DCT
BOOL
FALSE
FALSE
TRUE
For internal use. Load/save DCT matrix instead of decompressing/compressing the image
LOAD_SCALE_DENOM
UINT
1
1, 2, 4, 8
If this parameter is set to any other than default value, ImageGear loads reduced version of the image, width and height of which are scaled by 1/load_scale_denom. This mode can be used for image preview, especially for those images that do not have embedded thumbnails, or where embedded thumbnails are smaller than desired. This mode allows you to make loading process 2-4 times faster.*
LOAD_SCANS
UINT
0
Gets/Sets number of scans to load from Progressive JPEG image. See Progressive JPEG Scans Section for details.
OLD_LOSSLESS_READ
BOOL
FALSE
FALSE
TRUE
PREDICTOR
AT_MODE
1
Gets/Sets predictor for lossless JPEG. See Lossless JPEG Predictor Settings Section for details.
QUALITY
INT
70
Possible value in range [1,100]
Gets/Sets quality value for Lossy and Progressive JPEG compression. See JPEG Quality Section for details.
SAVE_ALLOW_CMYK
BOOL
TRUE
TRUE, FALSE
Set to TRUE (default) to allow saving JPEG CMYK images. Set to FALSE to save CMYK images to JPEG as RGB.
SAVE_ALLOW_LOSSY12BPCSAVING
BOOL
TRUE
FALSE
TRUE
Controls the saving to Lossy JPEG format. If TRUE, saving of 12 bits per channel Lossy JPEG is allowed. This is the maximum channel depth supported by Lossy JPEG format. If source image's depth is more than 8 bits per channel, it will be saved to a 12 bpc JPEG. For example, 48-bit RGB image will be saved to 36-bit JPEG. Note that many viewers do not support 12 bpc JPEG. If FALSE, all images are saved to 8 bpc JPEG, regardless of their channel depth.
SAVE_ALLOW_RGBA
BOOL
FALSE
TRUE, FALSE
Set this parameter to TRUE to enable RGBA JPEG saving. Note, that there is no official standard for RGBA JPEG. This format is recognized as CMYK rather than RGBA by most third-party software.
SAVE_THUMBNAIL
BOOL
FALSE
FALSE
TRUE
Gets/Sets thumbnail flag. If TRUE then thumbnail will be added to image. See JPEG Decimation Section for details.
SAVE_TYPE
AT_MODE
IG_JPG_LOSSY
IG_JPG_LOSSY
,
IG_JPG_LOSSLESS,
IG_JPG_PROGRESSIVE
Get/Set type for output JPEG format. See Loading and Saving JPEG-Compressed Images Section for details.
SCAN_INFO
VOID|LP
{
{ 0, 0, 7, 1, 0 },
{ 1, 5, 7, 1, 1 },
{ 1, 5, 7, 1, 2 },
{ 1, 5, 7, 1, 3 },
{ 0, 0, 0, 0, 0 },
{ 6, 63,7, 1, 1 },
{ 6, 63,7, 1, 2 },
{ 6, 63,7, 1, 3 },
{ 1, 63,0, 0, 1 },
{ 1, 63,0, 0, 2 },
{ 1, 63,0, 0, 3 },
};
Gets/Sets scan configuration for Progressive JPEG format. See Progressive JPEG Scans Section for details.
SCAN_INFO_COUNT
UINT
sizeof(scan_info)/sizeof(scan_info[0]);
Gets/Sets length of array for previous parameter. See Progressive JPEG Scans Section for details.
THUMBNAIL_COMPRESSED
BOOL
FALSE
FALSE, TRUE
If TRUE then thumbnail will be compressed.
THUMBNAIL_HEIGHT
UINT
16
Gets/Sets thumbnail height.
THUMBNAIL_WIDTH
UINT
16
Gets/Sets thumbnail width.

Comments:

JPEG is normally associated with the JPEG compression scheme, but it is also implemented into the JFIF file format. This format was developed to store JPEG-encoded data, and to exchange it between applications or operating systems that are normally incompatible.

NOTE: The JPEG compression scheme was developed by the Joint Photographic Experts Group (created by the joining of a subgroup of the International Standards Organizations, called PEG (Photographic Experts Group) and a subgroup of the CCITT). Their common goal was to produce a standard for the transmission of graphics image data over networks and through color facsimile systems.

The header of the JFIF contains the version number, the image dots per inch (DPI), or dots per centimeter, and an optional thumbnail (miniature) RGB representation of the main image. Version 1.02 handles thumbnails differently by storing them separately, rather than in the identification marker of the header.

The raw JPEG data is surrounded by two markers, an "SOI" (start of image) marker, and an "EOI" (end of image) marker. See the section entitled Compression Schemes in this chapter for more about JPEG compression.

JFIF is considered a non-proprietary file format. Many proprietary file formats contain JPEG data, incorporating their own application-specific data structures. Other non-proprietary formats that use JPEG-encoded data are Macintosh MAC PICT and the TIFF file format, version 6.0.

Loading and Saving JPEG-Compressed Images

ImageGear supports the reading and writing of three types of JPEG compression: baseline JPEG (Lossy), Progressive JPEG, and Lossless JPEG. When you load a JPEG-compressed file, ImageGear detects the type of JPEG compression and decompress the image automatically. But if you want to save an image with a JPEG compression scheme other than baseline JPEG, you must use the "SAVE_TYPE" parameter to specify the type of JPEG compression.

Use constants from enumIGJPGType enumeration for "SAVE_TYPE" control parameter:

  • IG_JPG_LOSSY - Lossy JPEG compression.
  • IG_JPG_LOSSLESS - Lossless JPEG compression
  • IG_JPG_PROGRESSIVE - Progressive JPEG compression.

JPEG Decimation

This table lists all possible decimation values:

IG_JPG_DCM_1x1_1x1_1x1
IG_JPG_DCM_2x1_1x1_1x1
IG_JPG_DCM_1x2_1x1_1x1
IG_JPG_DCM_2x2_1x1_1x1
IG_JPG_DCM_2x2_2x1_2x1
IG_JPG_DCM_4x2_1x1_1x1
IG_JPG_DCM_2x4_1x1_1x1
IG_JPG_DCM_4x1_1x1_1x1
IG_JPG_DCM_1x4_1x1_1x1
IG_JPG_DCM_4x1_2x1_2x1
IG_JPG_DCM_1x4_1x2_1x2
IG_JPG_DCM_4x4_2x2_2x2

The format of these ImageGear decimation constants is:

IG_JPG_DCM_<H1>x<V1>_<H2>x<V2>_<H3>x<V3>,

where Hi, Vi = horizontal and vertical decimation values for the i-channel.

The following is a simple example of decimation. For a more detailed definition, please see the JPEG Specification.

A decimation setting of IG_JPG_DCM_4x2_1x1_1x1 would yield the following results:

As shown, 8 Y components in the source image have yielded one Cb and one Cr component. In general, this setting will reduce the quality of the compression, unless the image has many continuous tone areas.

  • Maximum quality can be reached using a value of IG_JPG_DCM_1x1_1x1_1x1.
  • Maximum compression ratio can be reached with a value of IG_JPG_DCM_4x4_2x2_2x2.
  • The ImageGear default decimation value is: IG_JPG_DCM_2x2_1x1_1x1.

JPEG Thumbnails

The JPEG format can store thumbnails, which are small representations of the original image. These images are stored in uncompressed form and can significantly decrease your overall compression ratio. (Uncompressed thumbnails sometimes occupy more space than the original JPEG image when compressed). Use this option carefully.

NOTE: The JPEG format does not allow the storage of "large" thumbnails. This is due to the marker segment length, which cannot be greater than 65,536 bytes. The maximum size of a color thumbnail is about 100x200 or 200x100 pixels, and the maximum size of a grayscale thumbnail is about 300x200 or 200x300 pixels.

Lossless JPEG Predictor Settings

The Lossless JPEG scheme is "predictive" in nature-it uses the values of surrounding pixels in addition to the value of the original pixel to calculate a predictor value, which it then subtracts from the value of the original pixel. The resulting pixel value will be reduced such that it can be compressed more than the original value. The higher the number of neighboring pixels used, the higher the compression will be.

Regardless of the predictor value setting, the quality of the image will remain the same. The difference is that if you choose to optimize for space by setting a high predictor value, you will have to give up some speed, as the decompression will take longer to perform.

ImageGear lets you set the predictor value using "PREDICTOR" control parameter. The ImageGear default for this setting is 1. The allowed range is 1-7. The graphic below shows a predictor (x) and three reconstructed samples (a,b,c) immediately to the left, immediately above, and diagonally to the left of the current sample

Lossless JPEG does not apply DCT for an image as per the Lossy JPEG compression. Instead, it uses a DPCM difference coding, which can be carried out with any one of seven different prediction modes. Correspondingly, the IG_CONTROL_JPG_PREDICTOR control parameter can be set to a value between 0 and 7. In Table 4, you will see what algorithm your setting of 1-7 will use, where Pr Px is the predictor, and Ra, Rb, and Rc are the reconstructed samples:

Value
JPEG DIS Prediction
0
no prediction
1
Px = Ra
2
Px = Rb
3
Px = Rc
4
Px = Ra + Rb - Rc
5
Px = Ra + ((Rb-Rc)/2)
6
Px = Rb + ((Ra-Rc)/2)
7
Px = (Ra + Rb)/2

JPEG Quality

The baseline JPEG specification calls for a quality setting. The lower the setting, the greater the number of original pixels lost, and therefore the smaller the resulting compressed file will be. ImageGear lets you set the quality of compression with values of type INT between 1-100, where 100 provides the highest retention of original pixel values. A setting of 100 does not mean that the image includes 100% of all original pixel values. With Lossy JPEG, there is no such thing as "no loss". Control parameter for setting Lossy JPEG quality is "QUALITY".

JPEG Entropy Optimization

Entropy optimization is relevant only to standard Lossy JPEG compression. If you set the parameter to TRUE, the default Huffman tables are not used. Instead, optimal Huffman tables are created for each component. This can bring a higher compression ratio but it takes more time for the compression.

Progressive JPEG Scans

A Progressive JPEG file stores more than just a copy of an image but rather several scans, each of which progressively adds a higher level of quality. Each scan contains a portion of the original image data. The purpose of this is to allow a very quick display of an image, beginning with a low-quality rendering and then increasing in quality as the remaining scans are added to it.

A Progressive JPEG image is stored as sequence of Huffman compressed blocks or "scans". Each scan contains the sequence of DCT coefficients in the given range. However, the coefficients are not complete. Only some of their bits will be stored in each scan.

ImageGear defines the following structure for holding the necessary configuration to write a JPEG image:

typedef struct tag AT_PJPEG_SCANINFO{
        LONG		Ss;
        LONG		Se;
        LONG		HBit;
        LONG		LBit;
        LONG		ChannelID;
}		AT_PJPEG_SCANINFO;
typedef AT_PJPEG_SCANINFO FAR* LPAT_PJPEG_SCANINFO;

The Ss and Se members of the AT_PJPEG_SCANINFO structure are used for spectral selection control coefficients:

LONG			Ss;
LONG			Se; - after applying DCT of 8x8 pixels we get 64

In Progressive coding, these coefficients are separated into different scans. Values Ss and Se specify the first and last number of the DCT coefficients that must be included in a given scan. The possible values are Ss = Se = 0 or 1<= Ss<=Se<=63. Please note following restrictions:

  • The first coefficient (DC) cannot be encoded with the other coefficient (AC) in the single scan. In other words, the DC and AC coefficients cannot be in the same scan.
  • Only scans that code DC coefficients may include interleaved blocks from more than one component. All other scans shall have only one component. For each component, a first DC scan shall precede any AC scans.

The HBit and LBit members of the AT_PJPEG_SCANINFO structure are used for successive approximation control:

    LONG HBit;
    LONG LBit;

If successive approximation is used, the DCT coefficients are reduced in precision by the point transform defined in the scan header. This is equivalent to taking some binary digits from each coefficient. HBit and LBit specify the high and low range of bits to take. For example, if HBit = 7 and LBit = 2, the scan will have the following original bits of the original DCT coefficient: 7,6,5,4,3,2.

The ChannelID member of the AT_PJPEG_SCANINFO structure is used to specify the number of components that will be encoded:

LONG ChannelID;

It can be set to one of the following values:

  • interleaved scan which will only have DC coefficients of all components. This setting can only be used if Ss=Se=0.
  • takes coefficients of first component.
  • takes coefficients of second component.
  • takes coefficients of third component.

There are two control parameters that operate with the AT_PJPEG_SCANINFO structure:

SCAN_INFO
Points to array of AT_PJPEG_SCANINFO elements.
SCAN_INFO_COUNT
Specifies the number of elements in this array. The nth entry of the SCAN_INFO array defines the configuration for the nth scan of the Progressive image.

The LOAD_SCANS control parameter specifies how many scans should be loaded. For example, if it is set to 1, the JPEG filter will load only the first scan of the image.

The following text blocks represent the different AT_PJPEG_SCANINFO structures that would be generated when loading a JPEG file using the ImageGear default settings for Progressive scans:

scan_config[0].Ss = 0;
scan_config[1].Ss = 1;
scan_config[0].Se = 0;
scan_config[1].Se = 5;
scan_config[0].HBit = 7;
scan_config[1].HBit = 7;
scan_config[0].LBit = 2;
scan_config[1].LBit = 2;
scan_config[0].ChannelID = 0;
scan_config[1].ChannelID = 1;
scan_config[2].Ss = 1;
scan_config[3].Ss = 1;
scan_config[2].Se = 5;
scan_config[3].Se = 5;
scan_config[2].HBit = 7;
scan_config[3].HBit = 7;
scan_config[2].LBit = 2;
scan_config[3].LBit = 2;
scan_config[2].ChannelID = 2;
scan_config[3].ChannelID = 3;
scan_config[4].Ss = 0;
scan_config[5].Ss = 1;
scan_config[4].Se = 0;
scan_config[5].Se = 5;
scan_config[4].HBit = 1;
scan_config[5].HBit = 1;
scan_config[4].LBit = 1;
scan_config[5].LBit = 1;
scan_config[4].ChannelID = 0;
scan_config[5].ChannelID = 1;
scan_config[6].Ss = 1;
scan_config[7].Ss = 1;
scan_config[6].Se = 5;
scan_config[7].Se = 5;
scan_config[6].HBit = 1;
scan_config[7].HBit = 1;
scan_config[6].LBit = 1;
scan_config[7].LBit = 1;
scan_config[6].ChannelID = 2;
scan_config[7].ChannelID = 3;
scan_config[8].Ss = 6;
scan_config[9].Ss = 6;
scan_config[8].Se = 63;
scan_config[9].Se = 63;
scan_config[8].HBit = 7;
scan_config[9].HBit = 7;
scan_config[8].LBit = 1;
scan_config[9].LBit = 1;
scan_config[8].ChannelID = 1;
scan_config[9].ChannelID = 2;
scan_config[10].Ss = 6;
scan_config[11].Ss = 0;
scan_config[10].Se = 63;
scan_config[11].Se = 0;
scan_config[10].HBit = 7;
scan_config[11].HBit = 0;
scan_config[10].LBit = 1;
scan_config[11].LBit = 0;
scan_config[10].ChannelID = 3;
scan_config[11].ChannelID = 0;
scan_config[12].Ss = 1;
scan_config[13].Ss = 1;
scan_config[12].Se = 63;
scan_config[13].Se = 63;
scan_config[12].HBit = 0;
scan_config[13].HBit = 0;
scan_config[12].LBit = 0;
scan_config[13].LBit = 0;
scan_config[12].ChannelID = 1;
scan_config[13].ChannelID = 2;
scan_config[14].Ss = 1;
scan_config[14].Se = 63;
scan_config[14].HBit = 0;
scan_config[14].LBit = 0;
scan_config[14].ChannelID = 3;

References used:

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


JPEG2000

Full Name
JPEG2000
Format ID
IG_FORMAT_JPEG2K = 100
File Extension(s)
*.jp2, *.jpc, *.j2k, *.j2c
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Read/write
IG Platforms Support
WIN32, WIN64, .NET, .NET64

NOTE: To support JPEG2000 format ImageGear JPEG2000 Component should be attached to Core ImageGear.

ImageGear Supported versions:

ISO/IEC 15444-1:2000

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1..8 bpp;
    • Grayscale: 1..16 bpc
    • RGB: 1..16 bpc
    • Grayscale + Alpha: 1..16 bpc
    • RGB + Alpha: 1..16 bpc

ImageGear Write Support:

  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1..8 bpp;
    • Grayscale: 1..16 bpc
    • RGB: 1..16 bpc
    • Grayscale + Alpha: 1..16 bpc
    • RGB + Alpha: 1..16 bpc

ImageGear Filter Control Parameters:

Please see the section JPEG2000 Format Support and JP2, JPX and MJ2 Format Filters Control Parameters Reference.

Comments:

JPEG 2000 standard defines a compression scheme and a file format for interchange of JPEG2000 compressed data.

The compression scheme is based on a discrete wavelet transform, and supports both lossy and lossless modes. JPEG 2000 compression is similar to JPEG in that it supports lossy compression. However, JPEG2000 allows achieving much higher compression ratios while preserving good image quality.

JPEG2000 file format defines a basic set of features that allow interchange of JPEG2000 compressed images.


JPX

Full Name
JPEG2000 Extensions
Format ID
IG_FORMAT_JPX = 101
File Extension(s)
*.jpx
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Yes
IG Platforms Support
WIN32, WIN64, .NET, .NET64

NOTE: To support JPX format ImageGear JPEG2000 Component should be attached to Core ImageGear.

ImageGear Supported versions:

ISO/IEC 15444-2:2000

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1..8 bpp;
    • Grayscale: 1..16 bpc
    • RGB: 1..16 bpc
    • YCbCr: 1..16 bpc
    • Lab: 1..16 bpc
    • CMY: 1..16 bpc
    • CMYK: 1..16 bpc
    • Grayscale + Alpha: 1..16 bpc
    • RGB + Alpha: 1..16 bpc

ImageGear Write Support:

  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1..8 bpp;
    • Grayscale: 1..16 bpc
    • RGB: 1..16 bpc
    • YCbCr: 1..16 bpc
    • Lab: 1..16 bpc
    • CMY: 1..16 bpc
    • CMYK: 1..16 bpc
    • Grayscale + Alpha: 1..16 bpc
    • RGB + Alpha: 1..16 bpc

ImageGear Filter Control Parameters:

Please see the section JPX Format Support and JP2, JPX and MJ2 Format Filters Control Parameters Reference.

Comments:

JPX file format is an extension to JPEG 2000 file format. It normally uses JPEG 2000 compression, but allows other compressions as well, such as JBIG, CCITT Group3, CCITT Group4, etc. The format provides advanced features such as multiple layers for an image, various colorspaces, opacity (alpha channel) and fragmented codestreams.


KFX

Full Name
KFX (Kofax Group4 image)
Format ID
IG_FORMAT_KFX = 22
File Extension(s)
*.kfx
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 3

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_CCITT_G4 - 1bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None


LV

Full Name
LV (Lazer View format)
Format ID
IG_FORMAT_LV = 23
File Extension(s)
*.lv
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_CCITT_G3 - 1bpp
  • IG_COMPRESSION_CCITT_G4 - 1bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None

Comments:

N/A


MAC

Full Name
MAC (Macintosh Paint)
Format ID
IG_FORMAT_MAC = 24
File Extension(s)
*.mac
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, MAC

ImageGear Supported versions:

Version 2.0 1989

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_RLE - 1 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None

Comments:

Originally developed to store MacPaint graphics files, this format is now supported by many Macintosh applications. It is also exportable to the PC platform. It is always monochrome, and always has a fixed size of 576 pixels by 720 lines. The data, when uncompressed, is always 51,840 bytes in size.

Because this is a Macintosh format, it is organized as "forked" data. Each file consists of two forks, a "resource fork" and a "data fork". There is no code associated with this graphics format. The resource fork is always empty, and is easily merged together with the data fork when the file is exported to a PC platform.

The MacPaint data begins with a version number. If set to a value of 2, it indicates that paint patterns appear as the next structure. There are 38 possible patterns. These are generally not used, unless the file is being exported from one paint program to another.

The bitmap data begins at an offset of 512 bytes from the beginning of the file. The data is always compressed using the "PackBits" RLE compression scheme. The compressed data is stored in variable-length strips. See the description of RLE compression in the ImageGear Supported Compressions Reference sectionof this chapter.

It the MacPaint file has been exported to a PC platform it contains a structure called the MacBinary header. This helps in reconstructing the resource fork if the file is returned to the Macintosh environment. A field in the MacBinary header holds the size of the fork. Other information includes the position of the file in the window, the version of the MacBinary header (I or II), the time and data of creation, and a SecondHeadLength field intended for future expansion of the MacPaint format should it require a secondary header.

References used

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


MAC PICT

Full Name
Mac PICT
Format ID
IG_FORMAT_PCT = 30
File Extension(s)
*.pct, *.pict
Data Type
Metafile (2D raster, 2D geometry)
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Supports single alpha channel for read only. Alpha channel have to be 8-bit image.
IG Platforms Support
WIN32, WIN64, MAC

ImageGear Supported versions:

  • PICT 2 (for Color QuickDraw version 2). Added color and support for additional QuickDraw functions.
  • PICT 1 (for Color QuickDraw version 1). Monochrome only.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp and 24+8 bit alpha
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp and 24+8 bit alpha
  • IG_COMPRESSION_JPEG:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp and 24+8 bit alpha

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp (for 1, 4, 8 bpp, the files are ONLY saved as uncompressed if the image is 64x64 pixels or smaller. Otherwise, the image is saved as RLE compressed).
    • RGB: 24 bpp (Always saved as uncompressed)

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
FORCE_VERSION
BOOL
FALSE
TRUE,
FALSE
TRUE means saving of PCT in version 1.

Comments:

The PICT is one of the most widely-supported graphics file formats for the Macintosh.

PICT files begin with a fixed length header containing application-specific data, followed by fields that store the image size and location. If it is a PICT2 file, an additional header follows that contains the original resolution data of the image.

The bitmap data in the PICT2 format is referred as a Pixmap, from older terminology where Pixmap meant a bitmap with color.

The PICT file uses "opcodes". These are similar to the fields found in most file formats, and are associated with data that describes different shapes, lines, fill patterns, etc.

The lengthy list of opcodes is followed by the bitmap or "pixmap" data that describes the image data's address and resolution. The color table follows the opcodes. Next, source and destination rectangles are defined by their top left and lower right coordinates.

The pixel data, stored in the "PixData" field, is the last data to appear in the file. Each value is an index to the color table. This data is represented by 1, 2, or 4 bits.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


Motion JPEG2000

Full Name
Motion JPEG2000
Format ID
IG_FORMAT_MJ2 = 103
File Extension(s)
*.mj2
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Read only
IG Platforms Support
WIN32, WIN64, .NET, .NET64

NOTE: To support Motion JPEG2000 format ImageGear JPEG2000 Component should be attached to Core ImageGear.

ImageGear Supported versions:

ISO/IEC 15444-3:2002

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_JPEG2K:
    • Indexed RGB: 1..8 bpp;
    • Grayscale: 1..16 bpc
    • RGB: 1..16 bpc
    • Grayscale + Alpha: 1..16 bpc
    • RGB + Alpha: 1..16 bpc

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Please see the section MJ2 Format Support and JP2, JPX and MJ2 Format Filters Control Parameters Reference.

Comments:

Motion JPEG2000 file format is designed to contain one or more motion sequences of JPEG2000 images, with their timing, and also optional audio annotations, all composed into an overall presentation.

Please see the section MJ2 Format Support for more details.


MSP

Full Name
MSP (MS Paint)
Format ID
IG_FORMAT_MSP = 25
File Extension(s)
*.msp
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 2.0
  • Version 1.0

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE: Indexed RGB: 1 bpp
  • IG_COMPRESSION_RLE: Indexed RGB: 1 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None

Comments:

This was a popular format for storing line drawing and clip art images created with Windows applications, but has recently begun to be replaced by the Windows bitmap format (also supported by ImageGear see BMP).

For versions earlier than 2.0, the format begins with a 32-byte header and immediately proceeds with the bitmap data. The header information includes: the version of the file, the size and aspect ratio of the bitmap, and the width and height and aspect ratio (in pixels) of the output device used to render the bitmapped image. The bitmap data is uncompressed.

Files made with Version 2.0 and later always use RLE compression. In these files a "scan-line map" follows the header and precedes the data. It gives offsets to each scan line for instances when a particular scan line needs to be examined. All previous lines can remain compressed, while the needed line is located.

See RLE Compression under the ImageGear Supported Compressions Reference section of this chapter for more information.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


MULTIMEDIA

Full Name
Multimedia, Motion Picture Expert Group (MPEG)
Format ID
IG_FORMAT_MUL = 67
File Extension(s)
*.avi, *.mpeg, *.mpg
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64

NOTE: To support MULTIMEDIA format ImageGear Multimedia Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • AVI
  • MPEG-1 (Standard)
  • MPEG-2
  • MPEG-3
  • MPEG-4

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE - RGB: 24 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
FILENAME
LPSTR
""
Any string
Name of the input MPEG or AVI file.

Comments:

The first version of the MPEG format is optimized for CD-ROM. It uses discrete cosine transform (DCT) and Huffman compression to remove spatially redundant data within a frame and block-based motion compensated prediction (MCP) to remove data which is temporally redundant between frames. Audio is compressed using subband compression.

MPEG-2 is a variant of the MPEG video and audio compression algorithm and file format, optimized for broadcast quality video for digital storage media up to 4.0Mbits/second. The file extension is .MP2. MPEG-2 has been approved as International Standard IS-13818.

MPEG-3 is a variant of the MPEG video and audio compression algorithm and file format. The file extension is .MP3. This variant no longer exists and has been merged into MPEG-2.

MPEG-4 is a variant of the MPEG video and audio compression algorithm and file format used for low bandwidth video telephony. The file extension is .MP4. The International Standards Organization (ISO) has adopted the QuickTime 3 file format to form the starting point for a unified digital media storage format for the MPEG-4 specification

No actual structured MPEG file format has been defined. Everything required to play back MPEG data is compressed directly in the data stream. Therefore, no header or other type of wrapper is necessary. It is likely that when needed, a multimedia standards committee - perhaps MHEG or the DSM (Digital Storage Medium) MPEG subgroup - will one day define an MPEG file format.

MPEG starts with a relatively low resolution video sequence (possibly decimated from the original) of about 352 by 240 frames by 30 frames in the US (the numbers are different in Europe), but original high (CD) quality audio. The images are in color, but converted to YUV space, and the two chrominance channels (U and V) are decimated further to 176 by 120 pixels. You can get us much less resolution in those channels and not notice it, at least in natural (not computer generated) images.

The basic scheme is to predict motion from frame to frame in the temporal direction, and then to use DCTs (Discrete Cosine Transforms) to organize the redundancy in the spatial directions. The DCTs are performed on 8x8 blocks. The motion prediction is performed in the luminance (Y) channel on 16x16 blocks. In other words, given the 16x16 block in the current frame that you are trying to compress, you look for a close match to that block in a previous or future frame (there are backward prediction modes where later frames are sent first to allow interpolating between frames). The DCT coefficient (of either the actual data, or the difference between this block and the close match) are quantized, which means that you divide them by some value to drop bits off the bottom end. Hopefully, many of the coefficients will then end up being zero. The quantization can change for every macroblock (a macroblock is 16x16 of Y and the corresponding 8x8's in both U and V). The results of all of this, which include the DCT coefficients, the motion vectors, and the quantization parameters (and other stuff) is Huffman compressed using fixed tables. The DCT coefficients have a special Huffman table that is two-dimensional in that one code specifies a run-length of zeros and the non-zero value that ends the run. Also, the motion vectors and the DCT components are DPCM (subtracted from the last one) compressed.

There are three types of compressed frames.

  • I or intra frames are simply a frame compressed as a still image, not using any past history.
  • P or predicted frames are predicted from the most recently reconstructed I or P frame. (Described from the decompressor view point) Each macroblock in a P frame can either come with a vector and difference DCT coefficients for a close match in the last I or P, or it can just be intra compressed (like in the I frames) if there is no good match.
  • B or bidirectional frames are predicted from the closest two I or P frames, one in the past and one in the future. You search for matching blocks in those frames, and try three different things to see which works best. (Described from the compressor view point.) You first use the forward vector and the backward vector, then average the two blocks from future and past frames, and then subtract that from the block being compressed. If none of these methods work well, you can intra-compress the block.

The sequence of decompressed frames is as follows:

 IBBPBBPBBPBBIBBPBBPB...

Where there are 12 frames from I to I (for US and Japan). This is based on a random access requirement that you need a starting point; at least once every 0.4 seconds or so. The ratio of P's to B's is based on experience. Of course, for the decompressor to work, you have to send that first P before the first two B's, so that the compressed data stream appears as follows:

 0xx312645...

where those are frame numbers. "xx" may be nothing (if this is the true starting point), or it may be the B's of frames -2 and -1 if it is the middle of the stream.

Decompress the I, then the P. Keep both in memory, and then decompress the two B's. You can display the I while you're decompressing the P, and display the B's as you're decompressing them. Display the P as you are decompressing the next P, and so on.

See also AVI file format reference.


NCR

Full Name
NCR
Format ID
IG_FORMAT_NCR = 27
File Extension(s)
*.ncr
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_CCITT_G4 - Indexed RGB: 1 bpp
  • IG_COMPRESSION_NONE - Indexed RGB: 1, 4 bpp

ImageGear Write Support:

  • IG_COMPRESSION_CCITT_G4 - Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
COMRESSION
WORD
0
0,
NCR_CCITT_G4
This parameter has been retired.

Comments:

NCR is the black and white image compression format.


PBM

Full Name
PBM (Portable Bitmap File Format)
Format ID
IG_FORMAT_PBM = 28
File Extension(s)
*.pbm
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

October 1991 - last release

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_RAW:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp
  • IG_COMPRESSION_ASCII:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp

ImageGear Write Support:

  • IG_COMPRESSION_RAW:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp
  • IG_COMPRESSION_ASCII:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp

ImageGear Filter Control Parameters:

None

Comments:

This is useful for quick and easy transfer of monochrome bitmap images, although the encoding scheme is not efficient in terms of storage space. This format, as well as the PGM, PNM, and PPM formats, are at the core of a set of utility programs also written by Jef Poskanzer. Among other things, these formats serve as intermediary storage methods for the conversion of other file formats.

The Portable Bitmap File Format structure is very simple. It begins with a short ASCII header that contains the file type identifier (magic number), the width and height of the image, and perhaps a comment line identifying the filename. Following white space (usually a carriage return) is the bitmap data. The number of bits is equal to the width * height. A pixel value of 0 indicates white, and a value of 1 indicates black.

The magic number of the header can have one of two values: either P1 or P4. P1 indicates that the bitmap data are to be read as ASCII decimal values. P4 indicates that the bitmap data are stored as plain bytes. Because 8 pixel values (1 bit each) are stored in one byte, the file is 8 times smaller than in the ASCII decimal format. White spaces are permitted in the P1 format but not permitted in the P4 format.

NOTE: Note: ImageGear uses IG_FORMAT_PBM filter to handle the whole family of formats: PBM (1-bit), PGM (grayscale), PPM (truecolor) and PNM (collective name for all of above). When saving image as IG_FORMAT_PBM format, ImageGear chooses particular format (PBM, PGM, PNM or PPM) depending on image bit depth.
See Also:

PGM, PPM, PNM

References used

Kay, David C. and John R. Levine. Graphics File Formats, 2nd ed. Windcrest /McGraw-Hill, 1995.

PBM Specification by Jef Poskanzer, copyright © 1989, 1991.


PCD

Full Name
PCD (Kodak Photo CD)
Format ID
IG_FORMAT_PCD = 29
File Extension(s)
*.pcd
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

All valid PCD files in 5 different resolutions:

  • Page 1: 768x512
  • Page 2: 384x256
  • Page 3: 192x128
  • Page 4: 1536x1024
  • Page 5: 3072x2048

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE - RGB: 24 bpp
  • IG_COMPRESSION_HUFFMAN - RGB: 24 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None

Comments:

"Photo CD" is the informally adopted name for files created using the Photo CD-ROM-based storage and retrieval system created by Kodak. The images are digitized versions of photographic images. Using a Photo CD player, images can be viewed on television. Although intended for photographic images, the data source does not necessarily have to be film. Due to the large storage capacity of the CD medium, this format supports very large and/or intricate images.

Images and their associated information are stored in groups called "sessions". Originally, they were stored at the rate of one session per CD, but later versions allowed multiple sessions per disc.

For each stored image, there are up to 5 bitmaps, each representing the image at a different resolution. The bitmaps at the lowest resolution are intended for such purposes as displaying thumbnails and previewing an image.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


PCX

Full Name
PCX (PC Paintbrush File Format)
Format ID
IG_FORMAT_PCX = 31
File Extension(s)
*.pcx
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 5.0 1991, Supports 24-bit RGB
  • Version 3.0
  • Version 2.8 Included color palette
  • Version 2.5

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
SAVE_COMPRESSED
BOOL
TRUE
FALSE,
TRUE
If TRUE - image is saved with RLE Compression

Comments:

PCX is one of the oldest PC-based bitmap formats. It became well-known when Microsoft used it for their Paintbrush for Windows application and distributed it with every copy of Windows. This format is popular for fax documents because it allows them to be viewed within many popular paint and image display programs. If multiple images are desired in a PCX format, the format known as DCX, designed for this purpose, (and supported by ImageGear), may be used. Please see DCX file format for more information.

The main components of the PCX file format are the fixed length header, the image data, and if it is written for VGA display technology, the palette for the image (this appears as the last structure in the file). The header includes fields including the PCX version, the image size, resolution and position, and an encoding field that always has a value of 1; PCX data is always RLE. (For complex images, this may actually cause the bitmap data to increase in size).

The size and location of the palette associated with the image depends on the version of the PCX. When it was first developed, the limitations of the EGA card led to a palette that contained just 16 colors. PCX also supported CGA, so that the palette contained only 4 colors. Both of these palettes were stored in the palette array structure of the header. When the PCX was modified to display VGA, there was not enough room to store the palette in the header; subsequently, it was located at the end of the file.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


PGM

Full Name
PGM (Portable Graymap File Format)
Format ID
IG_FORMAT_PBM = 28 (see the Note below)
File Extension(s)
*.pgm
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

NOTE: ImageGear supports PGM file format via its IG_FORMAT_PBM format filter. Use IG_FORMAT_PBM to save grayscale images to PGM format.

ImageGear Supported versions:

October 1991 - last release

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_RAW - Grayscale: 8, 16 bpp
  • IG_COMPRESSION_ASCII - Grayscale: 8, 16 bpp

ImageGear Write Support:

  • IG_COMPRESSION_RAW - Grayscale: 8, 16 bpp
  • IG_COMPRESSION_ASCII - Grayscale: 8, 16 bpp

ImageGear Filter Control Parameters:

None

Comments:

This format quickly and easily transfers grayscale bitmap images. This format, as well as PBM, PNM, and PPM, are at the core of a set of utility programs also written by Jef Poskanzer. These formats serve as an intermediary storage methods for the conversion of other file formats.

The Portable Graymap File Format structure is very simple. It begins with a short ASCII header that contains the file type identifier (magic number), the width and height of the image, a "maximum gray value", and perhaps a comment line identifying the filename. The bitmap data follows white space (usually a carriage return). The number of pixels is equal to width * height. A pixel value of 0 indicates black, and a "maximum gray value" is equivalent to white.

The magic number of the header can have one of two values: either P2 or P5. P2 indicates that the bitmap data is read as ASCII decimal values. P5 indicates that the bitmap data is stored as plain bytes. This makes for a smaller and faster-to-read file.

If the maximum gray value does not exceed 255 (28 = 256 gray values from 0 to 255), each pixel is represented by a 8-bit sample. ImageGear loads such images as 8-bit grayscale. Otherwise, each pixel is represented by a 16-bit sample. ImageGear loads these images as 16-bit grayscale.

See Also:

PPM, PBM, PNM

References used

Kay, David C. and John R. Levine. Graphics File Formats, 2nd ed. Windcrest /McGraw-Hill, 1995.

PGM Specification by Jef Poskanzer, copyright © 1989, 1991.


PNG

Full Name
PNG (Portable Network Graphics)
Format ID
IG_FORMAT_PNG = 33
File Extension(s)
*.png
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Supports single alpha channel for read/write.
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • 10th draft (future drafts will be backward-compatible)
  • PNG v2

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 2, 4, 8 bpp;
    • Grayscale: 1, 2, 4, 8, 16 bpp;
    • Grayscale + Alpha: 8, 16 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp

ImageGear Write Support:

  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8, 16 bpp;
    • Grayscale + Alpha: 16, 32 bpp;
    • RGB: 24, 48 bpp;
    • RGB + Alpha: 32, 64 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
SAVE_INDEXED_GRAY_AS_GRAY
BOOL
FALSE
FALSE,
TRUE
Affects saving of images that have grayscale palette. If TRUE then IG saves the image as Grayscale (type 0). Otherwise, IG saves the image as Paletted (type 3).
STRIP_CONFIG
INT
IG_PNG_STRIP_FIXED_COUNT = 0
IG_PNG_STRIP_FIXED_COUNT,
IG_PNG_STRIP_FIXED_BUFFER
Format of PNG strip, see IG_PNG_STRIP_... constants
BUFFER_SIZE
DWORD
0
Size of the buffer for strip if STRIP_CONFIG is IG_PNG_STRIP_FIXED_BUFFER
STRIP_COUNT
INT
0
Number of lines in one strip if STRIP_CONFIG is IG_PNG_STRIP_FIXED_COUNT
COMP_LEVEL
UINT
IG_PNG_DEFAULT_COMPRESSION
IG_PNG_DEFAULT_COMPRESSION,
IG_PNG_MIN_COMPRESSION,
IG_PNG_MAX_COMPRESSION
Compression level. It must be between IG_PNG_MIN_COMPRESSION and IG_PNG_MAX_COMPRESSION. Better compression takes more time for compression.
KEEP_ALPHA
BOOL
TRUE
TRUE,
FALSE
When loading: if this parameter is True, then alpha channel is loaded into Alpha DIB. Otherwise, the image is transformed into RGB, by compositing over the background supplied in the bKGD chunk, if it is present, or over the default background.
When saving:
if this parameter is True, and alpha DIB is present, it will be written to the file.

Comments:

The PNG (pronounced "Ping") format was created out of reaction to Unisys's announcement that it would begin requiring royalty fees for use of its LZW compression scheme. This was the compression scheme for the widely-used GIF format (found in Web pages and online library images).

Thomas Boutell and a host of other programmers began working to devise a new file format to eliminate the need for payment of royalty fees. The result was a file format that offers better compression than GIF, and adds features GIF doesn't offer, including truecolor, and full alpha channel and gamma correction.

The basic organization of the PNG file format utilizes storage structures known as "chunks". A chunk is a block of data that contains its own header (identifying the chunk size and type). This makes it easy for a PNG viewer to identify chunks and to skip over the ones that are not necessary.

The first entry in a PNG file is the "PNG signature" that identifies the format as PNG. The file then proceeds with a series of chunks.

The IHDR Image Header, or IHDR Chunk, contains a number of fields including the height, width, depth, color type, and compression type of the image. The only valid compression value is 0, which indicates the PNG's custom compression scheme, a deflate/inflate compression with a 32k sliding window. This is a derivative of ZZ77, the precursor to LZW. ZZ77 is the compression scheme used by pkzip software.

The "PLTE Palette Chunk" contains 1 to 256 palette entries. This is present if the type field of the header chunk is set to 3. The number of colors cannot exceed the range provided by the bit depth.

The image data is stored in "IDAT Image Data Chunks". These are subdivided into chunks whose size is usually determined by the size of the encoder's buffer. The data may be stored in "interlaced order" allowing the image to be "faded in". The data may also be interlaced. Interlacing helps the appearance of an image as it displays while being decompressed, so that it "fades in". In a non-interlaced file, the presentation of the image data begins with row 1 and works downward to the last row of data. This method of display does not allow a quick preview of the whole image. When the data is interlaced, the lines are saved and displayed out of sequence. Every fourth row is displayed first and then filled in with every remaining fourth row, until all of the lines are displayed. This allows the eye to perceive the basic subject of the whole image before it is completely displayed.

"Ancillary Chunks" are optional. They must appear before the first IDAT and after the PLTE. One chunk is the "bKGD chunk" that sets the default background color for the image. Two of the other ancillary chunks are the "hHist Chunk" or histogram chunk, and the "tEXt" chunk. The histogram chunk appears if there is a palette. It stores the frequency of each color of the palette as it occurs in the image data. If the application doesn't support all of the colors in the palette, the histogram can be used to choose a subset of colors. There may be any number of text chunks. They can vary in length from 0 to the maximum chunk size. They include the image author, copyright information, and any desired comments.

Questions about PNG can be e-mailed to: png-info@uunet.uu.net

References used:

Murray, James D. "Graphic Image Format FAQ 3-4". James D. Murray, 1994-1996.

PNG (Portable Network Graphics), tenth draft. Page 5, copyright Thomas Boutell, May 1995.

Wegner, Tim. "Coding for PNG Graphics", "PC Techniques", Feb/Mar 1996, pp 32-38.


PNM

Full Name
PNM (Portable Any-Map File Format)
Format ID
IG_FORMAT_PBM = 28 (See the Note below)
File Extension(s)
*.pnm
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

NOTE: ImageGear supports PNM file format via its IG_FORMAT_PBM format filter. Use IG_FORMAT_PBM to save images to PNM format.

ImageGear Supported versions:

October 1991 - last release

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_RAW:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp
  • IG_COMPRESSION_ASCII:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp

ImageGear Write Support:

  • IG_COMPRESSION_RAW:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp
  • IG_COMPRESSION_ASCII:
    • Indexed RGB: 1 bpp;
    • Grayscale: 8, 16 bpp;
    • RGB: 24, 48 bpp

ImageGear Filter Control Parameters:

None

Comments:

The PNM format is useful for quick and easy transfer of uncomplicated monochrome, grayscale, or color bitmap images. This format, as well as the PBM, PGM, and PPM formats, are at the core of a set of utility programs also written by Jef Poskanzer. These formats serve as intermediary storage methods for the conversion of other file formats. For example, a function called gifftoppm translates a GIF file to a PPM, from where it can be then translated to a TIFF using the pnmtotiff.

The Portable Anymap File Format structure is very simple. The "Anymap" portion of its name refers to the fact that it can be one of three types of UNIX bitmap file formats: the Portable Bitmap File Format (PBM), the Portable Graymap File Format (PGM), or the Portable Pixelmap File Format (PPM). A PNM begins with a short ASCII header that contains the file type identifier (magic number), the width and height of the image, a "maximum color-component value" if it is a PPM, a "maximum gray value" if it is a PGM, and perhaps a comment line identifying the filename. Following white space (usually a carriage return) is the bitmap data. For PGM and PPM files, the number of pixels is equal to width * height (whereas, in a PBM file, this calculation gives you the number of bits).

The magic number of the header can have one of six values depending on whether the bitmap is in PBM, PGM, or PPM format. Each format can have one of two magic numbers depending on whether the pixel data is stored in ASCII decimal or plain bytes. See the descriptions for the individual formats (these are all supported by ImageGear) for more details.

References used

Kay, David C. and John R. Levine. Graphics File Formats, 2nd ed. Windcrest /McGraw-Hill, 1995.

PBM, PGM, PPM, PNM Specifications by Jef Poskanzer, copyright © 1989, 1991.


PPM

Full Name
PPM (Portable Pixmap File Format)
Format ID
IG_FORMAT_PBM = 28 (See the Note below)
File Extension(s)
*.ppm
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

NOTE: ImageGear supports PPM file format via its IG_FORMAT_PBM format filter. Use IG_FORMAT_PBM to save truecolor images to PPM format.

ImageGear Supported versions:

October 1991 - last release

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_RAW - RGB: 24, 48 bpp
  • IG_COMPRESSION_ASCII - RGB: 24, 48 bpp

ImageGear Write Support:

  • IG_COMPRESSION_RAW - RGB: 24, 48 bpp
  • IG_COMPRESSION_ASCII - RGB: 24, 48 bpp

ImageGear Filter Control Parameters:

None

Comments:

The PPM format is useful for quick and easy transfer of color bitmap images. This format, as well as the PBM, PGM, and PNM formats, are at the core of a set of utility programs also written by Jef Poskanzer. These formats serve as intermediary storage methods for the conversion of other file formats. For example, a function called gifftoppm translates a GIF file to a PPM, where it can translate to a TIFF using the pnmtotiff.

The Portable Pixmap File Format structure is very simple. It begins with a short ASCII header that contains the file type identifier (magic number), the width and height of the image, a "maximum color-component value", and perhaps a comment line identifying the filename. Following white space (usually a carriage return) is the bitmap data. The number of pixels is equal to width * height, with each pixel being represented by three bytes: one each for Red, Green, and Blue color components, respectively.

The magic number of the header can have one of two values: either P3 or P6. P3 indicates that the bitmap data is read as ASCII decimal values. P6 indicates that the bitmap data is stored as plain bytes. This makes for a smaller and faster-to-read file.

If the maximum gray value exceeds 255 (28 = 256 gray values from 0 to 255), each pixel is represented by three 16-bit RGB samples, making a total of 48 bits per pixel. ImageGear loads such images to 24-bit RGB.

See Also:

PGM, PBM, PNM

References used:

Kay, David C. and John R. Levine. Graphics File Formats, 2nd ed. Windcrest /McGraw-Hill, 1995.

PPM Specification by Jef Poskanzer, copyright © 1989, 1991.


PTOCA

Full Name
PTOCA (Presentation Text Object Content Architecture)
Format ID
IG_FORMAT_PTOCA = 65
File Extension(s)
*.pto, *.mod
Data Type
Metafile
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, .NET, .NET64

ImageGear Supported versions:

  • Format 2

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Indexed RGB: 8 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
FACTOR
DOUBLE
1.0
Linear DIB size Factor.

Comments:

ImageGear can read PTOCA files as content of multi- and single-page MOD:CA files, ensuring better compatibility with IBM's AFP (Advanced Function Presentation) printer architecture.

The PT object structure starts with the "Begin Presentation Text" structure field and finishes with the "End Presentation Text" structure field. Text data is placed between these fields and consists of graphic characters and control sequences that describe how the text will be shown on the presentation surface. The PT object can include some other optional structured fields that define initial presentation text values. If PTOCA is included in the MOD:CA content, some presentation text parameters (like code page, font, an initial values) can be defined on the MOD:CA level.

References used:

IBM BookManager BookServer, Copyright 1989, 1999, IBM Corporation.


QuickTime

Full Name
QT (Quick Time movie)
Format ID
IG_FORMAT_QUICKTIMEJPEG = 76
File Extension(s)
*.jpg, *.mov, *.qt
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC

NOTE: To support QuickTime format ImageGear Multimedia Component should be attached to Core ImageGear.

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

IG_COMPRESSION_JPEG - RGB: 24 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

None

Comments:

QuickTime format has been developed by Apple, inc. as a container for various media such as video and audio clips and still images.

ImageGear Core component supports loading of the first frame from JPEG- and Motion JPEG compressed QuickTime files.


RAS

Full Name
RAS (Sun Raster Data Format)
Format ID
IG_FORMAT_RAS = 37
File Extension(s)
*.ras
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 1, 8 bpp;
    • RGB: 24 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
SAVE_COMPRESSED
INT
0 (FALSE)
TRUE,
FALSE
Compression flag. If TRUE the saving image will be RLE compressed.

Comments:

Bitmap images used under the SunOS system and UNIX imaging applications are usually stored in Sun Raster form.

The Sun Raster header contains image data (size and type), and the type and size of the colormap, if present. It also contains a Sun Raster identifying tag called "MagicNumber," which always contains the same value. A type field identifies the version of Sun Raster, the most common are called "Old" and "Standard". These are actually the same format and indicate that the image is not compressed. Other possible versions of Sun Raster files include TIFF and IFF, meaning that the image data was converted from one of these formats.

Following the header is a colormap, if applicable. Most 24 or 32-bit raster images do not use a colormap, but rather store the color values directly with the image data. This is known as "truecolor".

The last element of the Sun Raster file is the image data itself. It is usually in 2D raster format.

References used:

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


RAW

Full Name
RAW (Raw image)
Format ID
IG_FORMAT_RAW = 58
File Extension(s)
*.raw
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Yes
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 9-16 bpp;
    • RGB: 24 bpp;
    • RGB + Alpha: 32 bpp
  • IG_COMPRESSION_LZW:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 9-16 bbp;
    • RGB: 24 bpp;
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp
  • IG_COMPRESSION_ABIC:
    • Indexed RGB: 1 bpp
NOTE: To use ABIC compression scheme ImageGear ABIC Component should be attached.

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
ALIGNMENT
UINT
0
0, 1, 2, 4
Row alignment.
0: DWORD alignment
1: BYTE alignment
2: WORD alignment
4: DWORD alignment
BITS_PER_PIXEL
UINT
0
Used internally
COMPRESSION
AT_MODE
0
Used internally
FILL_ORDER
INT
0
Used internally
HEIGHT
AT_DIMENSION
0
Used internally
UNCOMPRESSED_PACKED
BOOL
FALSE
FALSE, TRUE
Set to TRUE to read uncompressed packed RAW format, where pixels are not padded to a byte boundary. Set to FALSE to read unpacked format. For example, two 12-bit pixels occupy 3 bytes in the packed format, and 4 bytes in the unpacked format.
WIDTH
AT_DIMENSION
0
Used internally

Comments:

A raw image file contains no header or identifying information. Also, ImageGear can load images of proprietary or unsupported formats as Raw data. Since ImageGear cannot obtain parameters, such as width, height or bits per pixel from the file, the application should specify them. For uncompressed images, ImageGear assumes BMP row order (bottom line goes first). If the RAW image uses the other row order, use IGProcessingCtl . Flip method to flip it vertically after loading.


Scitex CT

Full Name
SciTex (Scitex CT)
Format ID
IG_FORMAT_SCI_CT = 91
File Extension(s)
*.sct
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE - CMYK: 32 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE - CMYK: 32 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
HEIGHT_IN_UNITS
DOUBLE
Height of the picture, in measurement units.
WIDTH_IN_UNITS
DOUBLE
Width of the picture, in measurement units.
FILE_TYPE
WORD
"CT"
"CT"
Scitex file type. The only "CT" - Continuous Tone Picture is currently supported.
UNITS_MEASUREMENT
BYTE
0
1
Units of measurement
(0 mm, 1 inches)
SCAN_DIRECTION
BYTE
ScanDirection is a bitmap indicating the position of the image source on the scanner. The bitfields are defined as follows:
Bit 0
0 = Top to bottom, 1 = Bottom to top
Bit 1
0 = Left to right,
1 = Right to left
Bit 2
0 = No rotation,
1 = 90 degree counter-clockwise rotation
Bits 3:7
Undefined (always 0)

Comments:

ImageGear has read and write support for Scitex HandShake Continuous Tone Picture files. This is the native format used by Scitex scanners and printers for high-end image processing and color separation.

Scitex CT files store uncompressed, CMYK true-color raster data. They contain a Control Block, a Parameters Block, and the image data. Scitex CT images are typically four-color separation, CMYK, line-interleaved raster data. The separations are always stored by scan line and in the order C-M-Y-K (cyan-magenta-yellow-black). A color pixel value have up to 16 separations (128 bits) in size. Separations 1 through 4 are defined in order (C-M-Y-K). Separations 5 through 16 are reserved for future expansion of the format, as shown below.

Each row or Scitex CT image data is stored in separated color. The first separation's row data is followed by the second, and so forth, up to the number of separations specified by NumColorSeparations. Only the data for the separations defined by the SeparationsBitMask field is actually stored in the CT file. Each pixel can contain up to 16 separation components and each component is one byte in size. A CMYK pixel contains four components and is of a 32-bit size. Remember that the data is not stored by pixel, but by separation. If rows contain odd numbers of bytes, the zero padding byte will be added to the end of each separation to preserve word alignment.

Note: You can set ImageGear CMYK Support level to IG_CONVERT_TO_RGB to convert CMYK images to 24-bit RGB during loading. However, use of this mode is deprecated. We recommend to load the image in its native format, and then convert to desired colorspace if needed.

References used

Copyright© 1994, 1996, O'Reilly & Associates, Inc.


SGI

Full Name
SGI (Silicon Graphics Image)
Format ID
IG_FORMAT_SGI = 38
File Extension(s)
*.sgi, *.bw, *.rgb, *.rgba
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Supports single alpha channel for read and write.
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • Grayscale + Alpha: 16 bpp;
    • RGB + Alpha: 32 bpp
  • IG_COMPRESSION_RLE:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • Grayscale + Alpha: 16 bpp;
    • RGB + Alpha: 32 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp;
    • Grayscale + Alpha: 16 bpp;
    • RGB + Alpha: 32 bpp
  • IG_COMPRESSION_RLE:
    • Grayscale: 8 bbp;
    • RGB: 24 bpp;
    • Grayscale + Alpha: 16 bpp;
    • RGB + Alpha: 32 bpp;

ImageGear Filter Control Parameters:

None

Comments:

This format was developed for use with the SGI image library included on most Silicon Graphics computers. Most SGI images are black and white.

The major components of an SGI file are the 512-byte header, a "scan-line offset table", and the bitmap header. SGI is one of the few formats to use a scan-line offset table.

The fields of the header structure include a compression flag (1 = compressed), the height and width (in pixels) of the image, the number of bit planes, the highest pixel value and the lowest pixel value, the name of the image, and pixel format. Pixel format can indicate the number of color channels, whether the image is dithered to a single channel, and whether the bitmap image is actually a color map for other images.

The bitmap data is stored up-side-down-the first scan line is at the bottom of the bitmap. If the data is RLE, a scan-line offset table is present, following the header and preceding the bitmap. This increases compression further by allowing repeated offsets to the same scan line, if several scan lines have the same value. A grayscale image may even refer to the same scan line from three different bit fields. For this reason, and because SGI data that is compressed can be stored in any scan-line order, the offset table must not be ignored.

References used

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats, 2d ed. Sebastopol, CA: O'Reilly & Associates, Inc., 1996.


SVG

Full Name
SVG (Scalable Vector Graphics format)
Format ID
IG_FORMAT_SVG = 77
File Extension(s)
*.svg
Data Type
Vector Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64

NOTE: To support SVG format ImageGear CAD/Vector (SVG) Component should be attached to Core ImageGear.

ImageGear Supported versions:

  • SVG 1.1 (partial)

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Vector data

ImageGear Write Support:

  • IG_COMPRESSION_NONE - Vector data

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
EXTERN_FILE_PATH
String
""
Any string up to 262 characters
Defines a path where external files (like raster images) should be looked for. A value of "" looks in the same directory as the file being loaded.
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.

Comments:

SVG (Scalable Vector Graphics) is a platform for two-dimensional graphics. It has two parts: an XML-based file format and a programming API for graphical applications. SVG allows for three types of graphic objects: vector graphic shapes (e.g., paths consisting of straight lines and curves), raster images, and text. Graphical objects can be grouped, styled, transformed and composited into previously rendered objects. Text can be in any XML namespace suitable to the application, which enhances searchability and accessibility of the SVG graphics. The feature set includes nested transformations, clipping paths, alpha masks, filter effects, template objects and extensibility.

SVG drawings can be dynamic and interactive. The Document Object Model (DOM) for SVG, which includes the full XML DOM, allows for straightforward and efficient vector graphics animation via scripting. A rich set of event handlers such as onmouseover and onclick can be assigned to any SVG graphical object. Because of its compatibility and leveraging of other Web standards, features like scripting can be done on SVG elements and other XML elements from different namespaces simultaneously within the same Web page.

References used

About SVG - 2d Graphics in XML.- http://www.w3.org/Graphics/SVG/About.html


TGA

Full Name
TGA (Truevision Targa)
Format ID
IG_FORMAT_TGA = 39
File Extension(s)
*.tga, *.tpic
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
Single alpha channel for read/write
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 2.0, 1991
  • Version 1.0, 1984

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Grayscale: 1 bpp;
    • Indexed RGB: 8 bpp;
    • RGB: 15, 24 bpp;
    • RGB 15 bpp + Alpha 1 bpp;
    • RGB 24 bpp + Alpha 8 bpp;
    • RGB 15 bpp + Premultiplied Alpha 1 bpp;
    • RGB 24 bpp + Premultiplied Alpha 8 bpp;
    • RGB 15 bpp + Extra 1 bpp;
    • RGB 24 bpp + Extra 8 bpp;
  • IG_COMPRESSION_RLE:
    • Grayscale: 1 bpp;
    • Indexed RGB: 8 bpp;
    • RGB: 15, 24 bpp;
    • RGB 15 bpp + Alpha 1 bpp;
    • RGB 24 bpp + Alpha 8 bpp;
    • RGB 15 bpp + Premultiplied Alpha 1 bpp;
    • RGB 24 bpp + Premultiplied Alpha 8 bpp;
    • RGB 15 bpp + Extra 1 bpp;
    • RGB 24 bpp + Extra 8 bpp;

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 8 bpp;
    • RGB: 15, 24 bpp;
    • RGB 15 bpp + Alpha 1 bpp;
    • RGB 24 bpp + Alpha 8 bpp;
    • RGB 15 bpp + Extra 1 bpp;
    • RGB 24 bpp + Extra 8 bpp;
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 8 bpp;
    • RGB: 15, 24 bpp;
    • RGB 15 bpp + Alpha 1 bpp;
    • RGB 24 bpp + Alpha 8 bpp;
    • RGB 15 bpp + Extra 1 bpp;
    • RGB 24 bpp + Extra 8 bpp;

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
AUTHOR_COMMENT
STRING
" "
Author's comments.
AUTHOR_NAME
STRING
" "
Name of author.
IMAGE_ID
STRING
" "
Image ID
SOFTWARE_ID
STRING
" "
Software ID
STAMP_DAY
WORD
0
Day stamp
STAMP_HOUR
WORD
0
Hour stamp
STAMP_MINUTE
WORD
0
Minute stamp
STAMP_MONTH
WORD
0
Month stamp
STAMP_SECOND
WORD
0
Second stamp
STAMP_YEAR
WORD
0
Year stamp
KEEP_ALPHA
BOOL
FALSE
TRUE, FALSE
FALSE means to ignore Alpha bits. Non-zero (TRUE) means to pass alpha bits back through callback.
PROMOTE16
BOOL
FALSE
TRUE, FALSE
FALSE means to create 16 bit DIB without promoting to 24 bits. Non-zero (TRUE) means promoting.
HEADER_TYPE
INT
0
1 or 2
1 or 2 for revision level of header
STORES_TAMP
BOOL
FALSE
TRUE, FALSE
FALSE for no stamp, TRUE to save a stamp with image. HEADER_TYPE must be 2.
STAMP_WIDTH
BOOL
0
TRUE, FALSE
Stamps width must not be larger than 64 pixels
STAMP_HEIGHT
BOOL
0
TRUE, FALSE
Stamps height must not be larger than 64 pixels
PALETTE
BOOL
FALSE
TRUE, FALSE
TRUE indicates that color map should be created.
CONV_TO_16
BOOL
FALSE
TRUE, FALSE
If TRUE, convert to 16 bpp when saving.
THUMB_FLAG
UINT
0
TRUE,
FALSE
TRUE if save should include a thumbnail.
THUMB_WIDTH
UINT
0
Width of thumbnail.
THUMB_HEIGHT
UINT
0
Height of thumbnail - Thumbnails are 24 bit.

Comments:

This file format was originally developed by AT&T for use with its image capture boards. The format was taken over by Truevision when it acquired the product line from AT&T. It is now commonly used for digitized images and also for high-quality images produced by ray tracers and other graphics applications.

It became a popular file format mainly because it was the first 24-bit truecolor format to come to the PC market. There are several varieties of Targa files; the most commonly used are the Targa 16, Targa 24, and Targa 32. The names are derived from the type of hardware used to create them.

The fixed-sized header information of the Targa format includes: the existence (or not) and colormap, location, size, pixel depth, image location, colormap (if it exists), and finally the image data itself.

Version 2.0 introduced a file footer that identifies it as the newest version and contains pointers to additional fields in two main structures: the "extension area" and the "developer directory". The extension area contains the addresses of many optional fields, one of the most popular being the "postage stamp image" (miniature of the main image).

The developer directory can be used to store proprietary information. Developers can register their own private fields with Truevision. A null-terminated ASCII string containing "TRUEVISION-XFILE.", and positioned at the end of the file, indicates that the footer is valid.

Targa defines 3 color methods: pseudo color, direct color, and truecolor. Pseudo color uses an index to a color palette. Direct color is like pseudo color except that the RGB components are looked up separately. In truecolor files, the color information is stored directly in the image data. The palettes used by Targa files are variable in size; they do not necessarily correlate to the bit depth of the image. The presence of a palette does not always mean that it is used to display the image.

Alpha channel handling

KEEP_ALPHA control parameter must be set to TRUE to enable loading and saving of Alpha/Extra channels from TGA images.

If bits 0..3 of Image Descriptor field are set to non-zero (additional channel is present), ImageGear treats additional bits as follows, depending on the Attributes Type field:

Attributes Type value
Attributes type value meaning
Additional bits are loaded as:
0
No Alpha Data included
Non-premultiplied Alpha (for incompliant images where Image Descriptor tells there is an additional channel but Attributes Type field is not set.)
1
Undefined data, can be ignored
Extra channel
2
Undefined data, should be retained
Extra channel
3
Non-premultiplied Alpha
Non-premultiplied Alpha
4
Premultiplied Alpha
Premultiplied Alpha
Other
Reserved or unassigned
Non-premultiplied Alpha

If bits 0..3 of Image Descriptor field are set to zero (no additional channel is present), ImageGear treats additional bits as Extra channel. This allows reading additional channel from images that have incorrect Image Descriptor field, but does not spoil image display if there is no meaningful data in the additional channel.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


TIFF

Full Name
TIFF (Tagged Image File Format)
Format ID
IG_FORMAT_TIF = 40
File Extension(s)
*.tif, *.tiff
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
Yes
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 6.0 - Added support for CMYK and YCbCr color images, and JPEG compression. Ability to store pixels in "tiles"
  • Version 5.0 - Added ability to store palette color images and support for LZW compression. This version featured TIFF "classes."
  • Version 4.0 - Added support for uncompressed RGB color images.
  • Version 3.0 - First public release.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing
  • IG_FLTR_PAGEDELETESUPPORT - page deleting from multi-page file
  • IG_FLTR_PAGESWAPSUPPORT - page swaping in multi-page files
  • IG_FLTR_MPDATASUPPORT - faster multi-page access by storing private format data (used only with IG_mpi_... and IG_mpf_... API)

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB - 1, 2, 4, 8 bpp;
    • Grayscale - 1, 2, 4, 8, 12, 16, 32 bpp;
    • RGB: 3, 6, 12, 24, 36, 48 bpp;
    • Lab: 3, 6, 12, 24, 36, 48 bpp;
    • CMYK: 4, 8, 16, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 2, 4, 8, 12, 16, 32 bpp;
    • RGB + Premultiplied Alpha: 4, 8, 16, 32, 48, 64 bpp;
    • Indexed RGB + Extra: 1, 2, 4, 8 bpc;
    • Lab + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • CMYK + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc.
  • IG_COMPRESSION_PACKED_BITS:
    • Indexed RGB - 1, 2, 4, 8 bpp;
    • Grayscale - 1, 2, 4, 8, 12, 16, 32 bpp;
    • RGB: 3, 6, 12, 24, 36, 48 bpp;
    • Lab: 3, 6, 12, 24, 36, 48 bpp;
    • CMYK: 4, 8, 16, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 2, 4, 8, 12, 16, 32 bpp;
    • RGB + Premultiplied Alpha: 4, 8, 16, 32, 48, 64 bpp;
    • Indexed RGB + Extra: 1, 2, 4, 8 bpc;
    • Lab + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • CMYK + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc.
  • IG_COMPRESSION_HUFFMAN:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp;
    • Grayscale: 1 bpp;
  • IG_COMPRESSION_JPEG:
    • Grayscale: 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB - 1, 2, 4, 8 bpp;
    • Grayscale - 1, 2, 4, 8, 12, 16, 32 bpp;
    • RGB: 3, 6, 12, 24, 36, 48 bpp;
    • Lab: 3, 6, 12, 24, 36, 48 bpp;
    • CMYK: 4, 8, 16, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 2, 4, 8, 12, 16, 32 bpp;
    • RGB + Premultiplied Alpha: 4, 8, 16, 32, 48, 64 bpp;
    • Indexed RGB + Extra: 1, 2, 4, 8 bpc;
    • Lab + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • CMYK + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc.
  • IG_COMPRESSION_LZW:
    • Indexed RGB - 1, 2, 4, 8 bpp;
    • Grayscale - 1, 2, 4, 8, 12, 16, 32 bpp;
    • RGB: 3, 6, 12, 24, 36, 48 bpp;
    • Lab: 3, 6, 12, 24, 36, 48 bpp;
    • CMYK: 4, 8, 16, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 2, 4, 8, 12, 16, 32 bpp;
    • RGB + Premultiplied Alpha: 4, 8, 16, 32, 48, 64 bpp;
    • Indexed RGB + Extra: 1, 2, 4, 8 bpc;
    • Lab + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • CMYK + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 1, 2, 4, 8, 12, 16 bpc.
NOTE: To use LZW (Lempel-Ziv-Welch) compression scheme ImageGear GIF/ TIFF-LZW Component should be attached.

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 4, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 16, 24, 32, 64 bpp;
    • RGB + Premultiplied Alpha: 32, 48, 64 bpp;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
  • IG_COMPRESSION_PACKED_BITS:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 4, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 16, 24, 32, 64 bpp;
    • RGB + Premultiplied Alpha: 32, 48, 64 bpp;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
  • IG_COMPRESSION_HUFFMAN:
    • Indexed RGB: 1 bpp;
  • IG_COMPRESSION_CCITT_G3:
    • Indexed RGB: 1 bpp;
  • IG_COMPRESSION_CCITT_G4:
    • Indexed RGB: 1 bpp;
  • IG_COMPRESSION_CCITT_G32D:
    • Indexed RGB: 1 bpp;
  • IG_COMPRESSION_JPEG (Lossy, Progressive):
    • Grayscale: 8, 12 bpp;
    • RGB: 24, 36 bpp;
  • IG_COMPRESSION_JPEG (Lossless):
    • Grayscale: 8, 16 bpp;
    • RGB: 24 bpp;
  • IG_COMPRESSION_DEFLATE:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 4, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 16, 24, 32, 64 bpp;
    • RGB + Premultiplied Alpha: 32, 48, 64 bpp;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
  • IG_COMPRESSION_LZW:
    • Indexed RGB: 1, 4, 8 bpp;
    • Grayscale: 8, 12, 16, 32 bpp;
    • RGB: 24, 36, 48 bpp;
    • Lab: 24, 36, 48 bpp;
    • CMYK: 4, 32, 48, 64 bpp;
    • Grayscale + Premultiplied Alpha: 16, 24, 32, 64 bpp;
    • RGB + Premultiplied Alpha: 32, 48, 64 bpp;
    • Lab + Extra: 8, 12, 16 bpc;
    • CMYK + Extra: 8, 12, 16 bpc;
    • Grayscale + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
    • RGB + Premultiplied Alpha + Extra: 8, 12, 16 bpc;
NOTE: To use LZW (Lempel-Ziv-Welch) compression scheme ImageGear GIF/ TIFF-LZW Component should be attached.

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
BIG_ENDIAN
BOOL
FALSE
FALSE,
TRUE
If TRUE, big endian order is used for write operation ("MM"), in other case little endian is used("II").
BUFFER_SIZE
DWORD
32768
any DWORD>0
This parameter specifies the buffer size for each strip for write operation if WRITE_CONFIG= =IG_TIF_STRIP_FIXED_BUFFER
DATETIME
LPCHAR
""
Specifies value for DateTime (tag 306) to write into image.
DO_NOT_WRITE_PALETTE
BOOL
FALSE
FALSE,
TRUE
Set to TRUE to skip the palette when writing a TIFF.
DOCUMENT_NAME
LPCHAR
""
any string
Specifies value for DocumentName (tag 269) to write into image.
FAST_PAGE_COUNT
BOOL
FALSE
FALSE,
TRUE
Affects page counting. When FALSE, ImageGear counts only those IFDs that contain images. When TRUE, ImageGear counts all IFDs, without checking for presence of images in them. The latter mode requires significantly less reading operations and thus works faster, especially if the image is accessed through a network.
FILL_ORDER
MODE
IG_FILL_MSB
IG_FILL_MSB
IG_FILL_LSB
Specifies fill order (tag 266) for tiff file to be written
IMAGE_BEFORE_IFD
BOOL
FALSE
FALSE,
TRUE
This flag specifies physical location of raster data inside TIFF file relatively to IFD record. If this value is TRUE then image data is to be written before IFD record.
IMAGE_HEIGHT
DWORD
0
Any positive value
Was used internally in previous versions of IG.
IMAGE_WIDTH
DWORD
0
Any positive value
Was used internally in previous versions of IG.
INCLUDE_PAGE_NUMBER
BOOL
TRUE
FALSE,
TRUE
If this parameter is TRUE then include tag 297 into TIFF image with real value of page number.
LOAD_FIRST_UNKNOWN_CHANNEL_AS_PALPHA
BOOL
TRUE
TRUE,
FALSE
This parameter specifies how to load first extra channel if ExtraSamples tag is missing. If TRUE, IG loads first extra channel as Premultiplied Alpha channel. This mode provides support for RGBPA TIFF images written by earlier versions of ImageGear. If LoadFirstUnknownChannelAsPAlpha is FALSE, IG loads all extra channels as extra channels.
MISSING_COMPRESSION
Long
0
Missing compression
NEW_SUBFILE_TYPE
UINT
0xFF
This parameter specifies value for tag 254. If value of this control parameter 0xFF then default value is used according to TIFF 6.0 format specification.
NUMBER_OF_STRIPS
UINT
1
any value >0
If WRITE_CONFIG= =IG_TIF_STRIP_FIXED_COUNT then this value is used as the number of strips to be written
PHOTOMETRIC
UINT
IG_TIF_PHOTO_WHITEZERO
IG_TIF_PHOTO_WHITEZERO,
IG_TIF_PHOTO_BLACKZERO,
IG_TIF_PHOTO_RGB,
IG_TIF_PHOTO_CMYK,
IG_TIF_PHOTO_PALETTE,
IG_TIF_PHOTO_TRANSPARENCY,
IG_TIF_PHOTO_YCBCR,
IG_TIF_PHOTO_CIELAB
Specifies photometric interpretation (tag 262) for write operation.
PLANAR
BOOL
FALSE
FALSE,
TRUE
Specifies tag value 284 for output image.
READ_JPEG_AS_YCBCR
BOOL
FALSE
TRUE,
FALSE
For internal use.
SAVE_DIFF_
PREDICTOR
BOOL
FALSE
FALSE,
TRUE
If this parameter is TRUE,
then output TIFF-LZW image
will be produced using the horizontal differencing predictor.
SAVE_INDEXED_GRAY_AS_GRAY
BOOL
TRUE
FALSE,
TRUE
Affects saving of images that have grayscale or interted grayscale palette. If TRUE then IG saves the image with BlackZero or WhiteZero photometric interpretation. Otherwise, IG saves the image as Paletted.
STITCH_TILES
BOOL
FALSE
TRUE,
FALSE
Set to TRUE to enable automatic tile stitching during image loading.
SUBIFD_PATH
LPCHAR
Empty string
Number of the SubIFD to load the image from. If set to empty string (default), load image from root IFD. See "Camera Raw Image support" section for more detail.
TILE_H_COUNT
DWORD
10
If WRITE_CONFIG==IG_TIF_TILED_FIXED_COUNT
then this value is used as number of tiles in horizontal dimension.
TILE_HEIGHT
DWORD
If WRITE_CONFIG==IG_TIF_TILED_FIXED_SIZE
then this value is used to specify vertical dimension of each tile.
TILE_V_COUNT
DWORD
10
If WRITE_CONFIG==IG_TIF_TILED_FIXED_COUNT
then this value is used as number of tiles in vertical dimension.
TILE_WIDTH
DWORD
64
If WRITE_CONFIG==IG_TIF_TILED_FIXED_SIZE
then this value is used to specify horizontal dimension of each tile.
UPDATE_LUT16
BOOL
TRUE
TRUE,
FALSE
UPDATE_PAGE_NUMBERS
BOOL
TRUE
TRUE,
FALSE
WRITE_CLASS_F
BOOL
FALSE
FALSE,
TRUE
If this value is TRUE then image to be written in TIFF format compatible with class F requirements.
WRITE_CONFIG
MODE
IG_TIF_STRIP_FIXED_COUNT
IG_TIF_STRIP_FIXED_COUNT,
IG_TIF_STRIP_FIXED_BUFFER,
IG_TIF_TILED_FIXED_SIZE,
IG_TIF_TILED_FIXED_COUNT
Specifies configuration of TIFF file to be written:
IG_TIF_STRIP_FIXED_COUNT - writes fixed number of strips.
IG_TIF_STRIP_FIXED_BUFFER - writes strips of size no more then given size
IG_TIF_TILED_FIXED_SIZE - writes image in tiles of specified size
IG_TIF_TILED_FIXED_COUNT - devides image into specified number of tiles vertically and horizontally.
WRITE70
BOOL
TRUE
FALSE,
TRUE
If this value is TRUE then output TIFF-JPEG image will be produced in TIFF 7.0 compatible format but in other case it will be compatible with TIFF 6.0.

Comments:

TIFF was developed for use in storing black-and-white images from scanners and desktop publishing applications. Now, in its fourth release (version 6.0), it is one of the most detailed and versatile bitmap formats in use. It is supported by most art, imaging, and word-processing applications. It supports several compression schemes. Aside from saving image data in bitmap form, it can also contain vector or text-based images.

Containing just three fields, the TIFF header is simple and one of the shortest of all the graphics file format headers. But, the structure of a TIFF is complicated, with variable length fields, variable number of fields, and the ability to store information (other than the header) in any order desired.

The other two major components of the TIFF format are "Image File Directories" (IFDs) and the image or images themselves. There is one IFD per image stored. The combination of an IFD and an image is referred to as a "subfile". The header contains an offset pointer to the first IFD. If there are multiple IFDs, each contains an offset to the next. The last IFD contains a value that signifies the end of the file.

IFDs closely resemble a header structure, and the information stored in them is often referred to as "TIFF Header Information". Unlike a header, however, they contain a variable number of "tags" (pointers or fields). In addition, each tag can point to data with a variable length. TIFFs are notorious for the number of tags that they can contain, up to a maximum of 65,535 tags of nearly 100 different types (version 6.0). Tags are listed in order by code number so that a TIFF reader can easily determine what fields are present. While ImageGear reads and stores all TIFF tags, it utilizes a subset of all of the possible tags. See note on previous page.

In version 5.0, the presence of certain subgroups of tags determined what "class" the TIFF belonged to. The classes are: TIFF-B-monochrome, TIFF-F-fascimile, TIFF-G-grayscale, TIFF-P-palette based, TIFF-R-RGB color, TIFF-X-any class, TIFF-Y-can use JPEG compression. Version 6.0 uses tags to divide the TIFF type into different file configurations, leaving behind the class concept. Version 6.0 configurations are: Bilevel, palette color, RGB, grayscale, YCbCr, and Class F (fascimile).

TIFF bitmap data can be stored in one of two configurations: strips or tiles. Strips are groups of adjoining rows of bitmap data, and can be found in version 5.0 and 6.0 files. Tiles were new to TIFF version 6.0. They are rectangular or square sections of bitmap data. The method of storage is determined in part by what kind of compression (if any) is used. JPEG compression can handle tiled images. Due to the need for padding with tile storage, tiling is not usually efficient for small images. For more information, see the section entitled Working with TIFF Files.

ImageGear supports the following compression schemes for TIFF:

    • Uncompressed
    • CCITT Group 3
    • CCITT Group 3 2D
    • CCITT Group 4
    • Huffman
    • JPEG
    • Lossless JPEG
    • LZW (Lempel-Ziv-Welch)
    • Packbits
    • Progressive JPEG
    • Deflate

See the ImageGear Supported Compressions Reference for descriptions of these compression types. The compression tag of the IFD tells whether the image is compressed, and by what method. (Not all TIFF files can use JPEG compression. It is supported by version 6.0, but in version 5.0, only a "Y" class TIFF can use JPEG).

TIFF/EP

TIFF/EP format was designed to provide a means for storing "raw" (unprocessed) image from digital camera's sensor.

TIFF/EP allows to store several versions of the same image in one file. Typically, TIFF/EP image includes a small preview and a raw image. It can also include a larger or full-size preview, or some other variations of the image.

TIFF/EP uses IFD trees for storing different versions of image. This is different from IFD chains that are used in baseline TIFF to store multiple pages.

ImageGear does not detect TIFF/EP as a separate file format. If Raw detection is enabled, and ImageGear can recognize TIFF/EP file as a known Raw format, it detects and loads the file as DCRAW. Otherwise it detects TIFF/EP as TIFF. One of well known extensions to TIFF/EP is Adobe DNG format. ImageGear detects it as a separate file format.

Most of digital cameras store pixels in "mosaic" format. At a given pixel location either a Red, Green, Blue, Cyan, or some other color sample value is recorded. Such images are referred to as "Color Filter Array" type. TIFF/EP format uses a two-dimensional matrix called "Color Filter Array pattern" to describe positions of pixels of particular color in the mosaic image. In order to recreate the full color values in each pixel, it is necessary to interpolate intensities of neighbouring pixels.

To enable loading images from TIFF SubIFDs, a new control parameter is added to TIFF filter: "SUBIFD_PATH". This parameter has the type of String, and its default value is "" (empty string). By default, ImageGear loads the image in the root IFD (thumbnail). If "SUBIFD_PATH" string begins with a number, then ImageGear loads the image from the corresponding SubIFD of the root IFD. For example, if SUBIFD_PATH is set to "3", ImageGear will load the image from the 3rd SubIFD.

SUBIFD_PATH parameter also affects metadata reading. Metadata is loaded starting from the IFD specified by SUBIFD_PATH.

NOTE: ImageGear does not support color reconstruction of TIFF/EP images, unless they are detected to be a Adobe DNG or a DCRAW image supported by ImageGear.

References used:

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. "Graphic Image Format FAQ 3-4". James D. Murray, 1994-1996.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


TXT (ASCII Text)

Full Name
TXT (ASCII Text)
Format ID
IG_FORMAT_TXT = 41
File Extension(s)
*.txt
Data Type
Raster Image
Data Encoding
ASCII
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, MAC

ImageGear Supported versions:

N/A

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading

ImageGear Read Support:

  • IG_COMPRESSION_ASCII - Indexed RGB: 1 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
XDPI
UINT
200
Horizontal resolution of image.
YDPI
UINT
200
Vertical resolution of image
MARGINS_LEFT
LONG
1000
Left text margin on page, expressed as thousandths of an inch.
MARGINS_TOP
LONG
1000 (750 - for Unix)
Top text margin on page, expressed as thousandths of an inch.
MARGINS_RIGHT
LONG
1000
Right text margin on page, expressed as thousandths of an inch.
MARGINS_BOTTOM
LONG
1000 (750 - for Unix)
Bottom text margin on page, expressed as thousandths of an inch.
PAGE_WIDTH
DIMENSION
8500
Width of resulting page, expressed as thousandths of an inch.
PAGE_HEIGHT
DIMENSION
11000
Height of resulting page, expressed as thousandths of an inch
POINT_SIZE
INT
10 (-1 - for Unix)
Font metric: If 0 then lines per page and character per line is used, else - specify font size.
WEIGHT
UINT
FALSE (0)
TRUE,
FALSE
Font metric: if TRUE use bold font.
ITALIC
BOOL
FALSE
TRUE,
FALSE
Font metric: if TRUE use italic font.
TAB_STOP
UINT
3 (4 - for Unix)
The number of characters per tab.
TYPE_FACE
LP | CHAR
"\x00" ("courier" - for Unix)
Font metric:typeface name of the font, If empty string then default font used "Courier new".
LINES_PER_PAGE
UINT
0 (60 - for Unix)
Number of line per page.
CHAR_PER_LINE
UINT
0 (80 - for Unix)
Number of characters per line.
COMPATIBILITY_MODE
BOOL
FALSE (TRUE - for Unix)
TRUE,
FALSE
If TRUE use old algorithm, otherwise use ImageGear Algorithm

Comments:

This is a widely used format for storing plain text files. ASCII data can also be used to give vector data instructions, but this is not supported by ImageGear.

The current, commonly used version of ASCII uses a 7-bit format and is known as "Full" or "Extended ASCII". The 128 (27) different data values include printable and non-printable values. The non-printable values are represented by the first 32 (0-31) values of ASCII, and are called "control values". They are used to communicate with screens or printers for placement of the characters. These control values represent tabs, line feeds, spaces, etc. Combinations of these values create "escape sequences" whose values are device-dependent upon implementation. To keep an ASCII file completely device-independent, a file usually does not contain any control values other than tab, line feed, and carriage return.

What makes a TXT file different from many bitmap formats is the byte order. A file is written in the natural order that it appears when output. There is no division into bit planes, or reverse order of bits and bytes. The eighth bit of each byte is normally set to zero. In older versions of TXT files, this was often used as a parity bit.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats, 2nd ed. Windcrest /McGraw-Hill, 1995.


U3D

Full Name
U3D (Universal 3D)
Format ID
IG_FORMAT_U3D = 79
File Extension(s)
*.u3d
Data Type
Vector image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, .NET, .NET64

NOTE: To support U3D format, ImageGear U3D Vector Component should be attached to Core ImageGear.

ImageGear Supported Versions:

  • U3D v. 1.0

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - auto-detection
  • IG_FLTR_PAGEREADSUPPORT - single-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Universal 3D vector data

ImageGear Write Support:

  • IG_COMPRESSION_NONE - Universal 3D vector data

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
BACKCOLOR
Long
0
Any positive value
This parameter is used to set background color. If BACKCOLOR=0, then the black background color is set, otherwise the white background color is set.
WIDTH
Long
512
Any positive value
Defines the DIB width of the loaded image. The DIB height is calculated using the file's scale factors.

Comments

U3D file format, short for "Universal 3D", is a universal vector standard for storing three-dimensional data of all kinds to facilitate data exchange. The specification for this format is the document ECMA-363: Universal 3D File Format. The latest edition of this specification is available at the ECMA web site:

http://www.ecma-international.org/

The U3D format is natively supported by the PDF, and 3D objects in U3D format can be inserted into PDF document files and interactively visualized by PDF viewers.


WBMP

Full Name
WBMP (Wireless Bit-Map)
Format ID
IG_FORMAT_WBMP = 66
File Extension(s)
*.wbmp,
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 1.1

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE - Indexed RGB: 1 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE - Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

No

Comments

The WBMP (Wireless Bit-Map) read/write format is optimized to support mobile computing devices that use the Wireless Application Protocol (WAP).

File contains small header with image parameters and array or pixels in uncompressed form.

References used:

WAP WAE Specification Version, 24 May 1999.


WMF

Full Name
WMF (Windows Metafile Format)
Format ID
IG_FORMAT_WMF = 44
File Extension(s)
*.wmf,
Data Type
Metafile Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix (read raster portion only). MAC (read raster portion only)

ImageGear Supported versions:

  • Version 1 Metafiles prior to Windows 3.0
  • Version 2 Metafiles for Windows 3.0 and later

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp
  • IG_COMPRESSION_RLE:
    • Indexed RGB: 4, 8 bpp

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
UPSIDE_DOWN
BOOL
TRUE,
FALSE
If TRUE then images will be saved upside-down
TYPE
UINT
BMP_TYPE_BMC,
BMP_TYPE_BMI,
BMP_TYPE_BMI2
Type of the BMP file to be saved as part of WMF.
COMPRESSION
DWORD
BMP_COMP_RLE4,
BMP_COMP_RLE8,
BMP_COMP_RGB
Type of compression of BMP file.
TRUE_METAFILE
BOOL
TRUE (for Windows)
FALSE(otherwise)
TRUE,
FALSE
TRUE means executing of metafile commands (playing of metafile). Can be TRUE only for Windows.
RESOLUTION_X
DWORD
NULL
X resolution. 0 for actual resolution
RESOLUTION_Y
DWORD
NULL
Y resolution. 0 for actual resolution
DEPTH
DWORD
NULL
Bit Depth. 0 for actual depth

NOTE: If the TRUE_METAFILE parameter tis set to TRUE, the image will be opened as an RGB DIB for use with the GDI functions, which produce the image output. This causes the image to look like it is 24-bit per pixel, and 1024x1024 in dimensions. If the TRUE_METAFILE parameter is set to FALSE, then ImageGear will open the image according to its correct bit depth and dimensions.

Comments

A Microsoft Windows Metafile holds vector and bitmap graphics data in memory or on disk. Although it was developed for use with Windows applications, it is now used by many non-Windows-based applications, allowing data to be transferred to and from Windows applications. Due to the great success of the Microsoft Windows interface, the Windows Metafile format is found in nearly all graphical applications. Metafiles use much less space and are more device-independent than bitmaps.

See also the section Support for Metafile Formats.

The Windows metafile begins with a short header and is followed by one or more records of data. The header describes the record data. A "placement" header can also be added before the file header; it contains information needed to move the metafile between applications. Each record corresponds to a binary-encoded Windows graphics device interface (GDI) call, and contains the size of the record, the unique function number for the GDI and an array of parameters. The GDI is used by Windows to perform all image output. When the metafile is "played", (this Microsoft term is a companion term to the Windows function named "PlayMetaFile"), each record makes a call to the appropriate function call for displaying each object in the image. The last record in the file contains a function number of zero to indicate that the end of the record data has been reached.

References used:

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.

Petzold, Charles. Programming Windows: The Microsoft Guide to writing applications for Windows 3. Redmond, WA: Microsoft Press, 1990.


WPG

Full Name
WPG (WordPerfect Graphics Metafile)
Format ID
IG_FORMAT_WPG = 42
File Extension(s)
*.wpg
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • WPG for WP 5.1 and up can store bitmap and vector graphics in the same file.
  • WPG for WP 5.0 and prior can store only bitmap or vector graphic, but not both in same file.

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading

ImageGear Read Support:

  • IG_COMPRESSION_RLE - Indexed RGB: 1, 4, 8 bpp

ImageGear Write Support:

No

ImageGear Filter Control Parameters:

No

Comments

This format was created specifically for use with WordPerfect software products. WPG files for WordPerfect versions 5.1 and up can store both bitmap and vector image data in the same file.

The WordPerfect Graphics Metafile contains a short header or "prefix" (as WordPerfect Corporation referred to it). The header is followed by a record area, that is a sequence of objects and their attributes. The first record is called the "Start WPG Data" record and contains information on the size of the images and the version number of the .WPG file. The next record is usually a color map, unless the image is black and white. The next record is a bitmap record. If there are multiple images, there is a bitmap record for each image. The last record in a .WPG file contains a NULL body to signify the end of the file. These files may also contain Encapsulated PostScript (EPS) data.

References used

Murray, James D. "Graphic Image Format FAQ 3-4". James D. Murray, 1994-1996.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


XBM

Full Name
XBM (X BitMap)
Format ID
IG_FORMAT_XBM = 43
File Extension(s)
*.xbm
Data Type
Raster Image
Data Encoding
ASCII
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 11, data stored as 1-byte character, 1986
  • Version 10, data stored as 2-byte "short" integers

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_ASCII - Indexed RGB: 1 bpp

ImageGear Write Support:

  • IG_COMPRESSION_ASCII - Indexed RGB: 1 bpp

ImageGear Filter Control Parameters:

No

Comments

The XBM format is intended as a convenient storage method for small monochrome images, for example, cursor and icon bitmaps. It can, however, support images of any size, but since it supports no native compression scheme, an exterior compression program is used when compacting is desired. The bitmap data is stored as ASCII data with C language syntax, making the file easy to insert into C program code. XBM data can be stored as a standalone graphics file, or within a C program header file. See also XPM, XWD.

XBM files begin with two to four #define statements in substitution of a header. These identify the image width and height, and optionally, the coordinates of a Hotspot, if one exists.

The image data follows and is more free-form than the other bitmap data formats described in this chapter. It consists of one variable-length static array of pixel values. Each value (in version 11) consists of one byte of data, and therefore represents 8 1-bit pixels. The first pixel (0,0) is represented by the high bit of the first byte in the array. Due to this one-array format, there is nothing in the data that explicitly marks the rows of the bitmap.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


XPM

Full Name
XPM (X PixMap)
Format ID
IG_FORMAT_XPM = 45
File Extension(s)
*.xpm
Data Type
Raster Image
Data Encoding
ASCII (in C language syntax)
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 3.2g, April 1993

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp

ImageGear Filter Control Parameters:

No

Comments

The XPM format was created as an extended version of the XBM file format. It is the informal standard for storing X Window pixmap data, including Hotspot information for cursor bitmaps. The image data is stored in ASCII text characters that are formatted as a standard C array of character strings. It is intended to be human-readable, is readily inserted into C/C++ program code, and can contain any number of comment lines. It therefore does not support a native compression scheme. If compacting is desired, an external compression program may be used. See also XBM, XWD.

All XPM files begin with a C language comment line containing "XPM". Following this are three sections of data: values, colors, and pixels, and an optional fourth section: extensions. The "values" section is the equivalent of the header structure typically found in a graphics file. It gives the size of the pixmap, as well as its number of colors, characters per pixel, the location of the Hotspot (if any), and an indicator of whether the file contains an extension section. Each section is set off with a comment-line title.

The colors section contains codes for the pixmap data characters. All pixels that make up the pixmap are assigned to one or more ASCII characters and one or more colors. (e.g. the character "X" may be assigned to the color red). There are several different conventions for identifying a color. If the string "None" appears as the color to be applied to a specific character, the character(s) symbolizes a transparent pixel.

The "pixels" section contains the bitmap data that appear as an array of character strings, where one row of bitmap data is represented by one array element. Each row is a group of characters set off by quotation marks. Each character is defined in the previous "colors" section.

If indicated by the values section, an extension section appears. It can contain one or more subsections that conform to one of two syntactical formats. An "XPMENDEXT" marker is always used to mark the end of the extension section.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


XPS

Full Name
XPS (XML Paper Specification)
Format ID
IG_FORMAT_XPS = 80
File Extension(s)
*.xps
Data Type
Vector image
Data Encoding
Binary
IG Multipage Support
Yes
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, .NET, .NET64

NOTE: To support XPS format, ImageGear XPS Component should be attached to Core ImageGear.

ImageGear Supported Versions:

  • Version 1.0

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_MPAGEREADPSUPPORT - multi-page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing
  • IG_FLTR_MPAGEWRITEPSUPPORT - multipage file writing
  • IG_FLTR_MPDATASUPPORT - faster multi-page access by storing private format data (used only with IG_mpi_... and IG_mpf_... API)

ImageGear Read Support:

  • IG_COMPRESSION_NONE - XPS data

ImageGear Write Support:

  • Vector
    • IG_COMPRESSION_NONE - XPS data
  • Raster
    • IG_COMPRESSION_NONE
      • Grayscale: 1, 8, 16 bpp;
      • RGB: 24, 48 bpp;
      • RGBA: 32, 64 bpp;
      • RGBPA: 32, 64 bpp;
      • CMYK: 32 bpp;

ImageGear Filter Control Parameters:

Filter Control Parameter
Type
Default Value
Available Values
Description
RESOLUTION_X
AM_TID_UINT
96
Any positive integer
This parameter specifies the horizontal resolution in dots-per-inch during the XPS document conversion into a raster image. The greater this value, the higher the quality of the raster image you get after rasterization. The DIB of the output raster image has this value as an X resolution.
RESOLUTION_Y
AM_TID_UINT
96
Any positive integer
This parameter specifies the vertical resolution in dots-per-inch during the XPS document conversion into a raster image. The greater this value, the higher the quality of the raster image you get after rasterization. The DIB of the output raster image has this value as an Y resolution.

Non-Image Data Structure:

XML Paper Specification file format has different non-image data that can be stored in a package as XML or resources. The XML Paper Specification metadata design allows reading and writing the following non-image data:

Tag Name
Tag ID
Description
Category
IGMDTAG_ID_XPS_CATEGORY
The category of the content that is contained in the file.
ContentStatus
IGMDTAG_ID_XPS_CONTENTSTATUS
Example ContentStatus values include "Draft", "Reviewed", and "Final".
ContentType
IGMDTAG_ID_XPS_CONTENTTYPE
Example ContentType values include "Whitepaper", "Security Bulletin", and "Exam".
Created
IGMDTAG_ID_XPS_CREATED
The date and time the file was initially created.
Creator
IGMDTAG_ID_XPS_CREATOR
The individual or entity that created the file and its content.
Description
IGMDTAG_ID_XPS_DESCRIPTION
The Description may include but is not limited to: an abstract, table of contents, reference to a graphical representation of content, or a free-text account of the content.
Identifier
IGMDTAG_ID_XPS_IDENTIFIER
A value that unambiguously identifies the file and its content.
Keywords
IGMDTAG_ID_XPS_KEYWORDS
A delimited set of keywords to support searching and indexing the Package and content.The Keywords property typically contains a list of terms that are not available elsewhere in file metadata.
Language
IGMDTAG_ID_XPS_LANGUAGE
A value that identifies the file content language.
LastModifiedBy
IGMDTAG_ID_XPS_LASTMODIFIEDBY
The user who last modified the file content.
LastPrinted
IGMDTAG_ID_XPS_LASTPRINTED
The date and time the file content was last printed.
Modified
IGMDTAG_ID_XPS_MODIFIED
The date and time the file was last changed.
Revision
IGMDTAG_ID_XPS_REVISION
The revision number of the file. The Revision property indicates the number of changed saves or revisions. The application is responsible for updating the Revision property value after each revision.
Subject
IGMDTAG_ID_XPS_SUBJECT
The topic of the file content.
Title
IGMDTAG_ID_XPS_TITLE
The name given to the file and its content.
Version
IGMDTAG_ID_XPS_VERSION
The version number of the file.

Comments

The XPS Document format represents a set of related pages with a fixed layout, which are organized as one or more documents, in the traditional meaning of the word. A file that implements this format includes everything necessary to fully render those documents on a display device or physical medium (for example, paper). This includes all resources such as fonts and images that might be required to render individual page markings.

In addition, the format includes optional components that build on the minimal set of components required to render a set of pages. This includes the ability to specify print job control instructions, to organize the minimal page markings into larger semantic blocks such as paragraphs, and to physically rearrange the contents of the format for easy consumption in a streaming manner, among others.

The XPS format supports HD Photo images natively for raster images.

The XPS format conception is similar to the Adobe PDF. It is a fixed-layout document format designed to preserve document fidelity, so that documents look the same and as they are intended on any device. While Adobe PDF is based on PostScript the XPS format is based on XML. Adobe PDF however includes some dynamic capabilities not supported by the XPS format, and cannot be fully replaced by XPS.

Finally, the XPS Document format implements the common package features specified by the Open Packaging Conventions specification that support digital signatures and core properties. An XPS file is a ZIP archive conforming to the Open Packaging Convention.

The XPS format intended as the replacement for the EMF print spooler format. The format serves as the page description language for printers. For printers supporting XPS, this eliminates an intermediate conversion to a printer-specific language, increasing the reliability and fidelity of the printed output.

References Used

  • XML Paper Specification v. 1.0:

http://www.microsoft.com/whdc/xps/xpsspec.mspx


XWD

Full Name
XWD (X Window Dump)
Format ID
IG_FORMAT_XWD = 47
File Extension(s)
*.xwd, *.wd (for Unix)
Data Type
Raster Image
Data Encoding
Binary
IG Multipage Support
No
IG Alpha Channel Support
No
IG Platforms Support
WIN32, WIN64, Unix, Unix64, .NET, .NET64, MAC

ImageGear Supported versions:

  • Version 7 for X11, June 1987 (X10 grayscale and palette only)

ImageGear Supported Features:

  • IG_FLTR_DETECTSUPPORT - autodetection
  • IG_FLTR_PAGEREADSUPPORT - single page file reading
  • IG_FLTR_PAGEINSERTSUPPORT - single-page file writing

ImageGear Read Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Write Support:

  • IG_COMPRESSION_NONE:
    • Indexed RGB: 1, 4, 8 bpp;
    • RGB: 24 bpp

ImageGear Filter Control Parameters:

No

Comments

An XWD file can contain a representation of the window, the background, or the entire screen display. It has been designed to be a very versatile, device-independent format. See also XBM, XPM.

The general structure of the XWD graphics format begins with a long header, that is sometimes followed by a palette and contains the bitmap data. The header contains integer data and stores the header size, the XWD version, the size and location of the bitmap, the window size, location, and border width. A ByteOrder field indicates whether the bytes are stored in big-endian or little-endian order.

In the interest of making this format device-independent, the XWD supports six "visual classes" and three image formats. The visual class code is stored in the visual_class field of the header, and represents the following categories:

    • Static Gray, for most monochrome screens and using a fixed device-dependent color map;
    • GrayScale, for monochrome screens and using a software-supplied palette;
    • StaticColor, which uses a fixed device-dependent palette;
    • Pseudocolor, which uses a software-supplied palette and is intended for VGA screens;
    • TrueColor, with fixed device-dependent mapping of RGB values to screen colors;
    • DirectColor, with software-supplied mapping of RGB values to screen values.

The image-format categories, whose codes are stored in the pixmap_format field of the header, are called XYBitmap (1-bit), XYPixmap (single plane), and ZPixmap (two or more planes).

Where the value of pixmap_format indicates GrayScale, PseudoColor or DirectColor, a palette follows the header.

The image data is the last structure in the file. The bytes are stored in rows with groupings called "units", whose lengths are determined by the bitmap_unit field of the header.

If the pixmap_format field is 1, indicating an XYPixmap, there are multiple representations of the bitmap data, one for each color plane, where the first bitmap represents the highest bit of the data; the second bitmap represents the second-highest bit, and so on. An image with a bit depth of 4 yields a file with four bitmaps.

References used

Brown, C. Wayne, and Barry J. Shepherd. Graphics File Formats: Reference and Guide. Greenwich, CT.: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats. Sebastopol, CA: O'Reilly & Associates, Inc., 1994.


ImageGear Alpha Channel Support

Alpha channel is an additional image channel that specifies transparency (or opacity) of each pixel in the image. ImageGear provides alpha channel support for the following file format filters:

Format
Support
Adobe PSB
Supports single Alpha channel for Read only. Supports aditional Alpha channels as ImageGear Extra channels for Read only.
Adobe PSD
Supports single Alpha channel for Read only. Supports aditional Alpha channels as ImageGear Extra channels for Read only.
CUR
Supports single 8-bit alpha channel for read/write. Supports single 1-bit alpha channel for read only.
EXIF-JPEG
Supports single Alpha channel for Read/Write.
EXIF-TIFF
Supports single Alpha channel for read only. Supports additional Alpha channels as ImageGear Extra channels for read only.The following compressions are supported with alpha channel:
  • Uncompressed
  • Packed Bits
  • LZW
  • Deflate
FlashPix
Supports single Alpha channel for read only. Converts RGB + Alpha to RGB during loading.
ICO
Supports single 8-bit alpha channel for read/write. Supports single 1-bit alpha channel for read only.
JPEG
Supports single Alpha channel for Read/Write.
JPEG2000
Supports single Alpha channel for read/write, for Grayscale and RGB images.
JPX
Supports single Alpha channel for read/write, for Grayscale and RGB images. Supports additional Alpha channels as ImageGear Extra channels for read/write.
MAC PICT
Supports single alpha channel for read only. Alpha channel have to be 8-bit image.
Motion JPEG2000
Supports single Alpha channel for read only, for Grayscale and RGB images.
PNG
Suports single Alpha channel for read/write.
RAW
Supports single Alpha channel in uncompressed images for read only.
SGI
Supports single alpha channel for read and write.
TGA
Supports single alpha channel for read and write.
TIFF
Supports single Alpha channel for read and write. Supports additional Alpha channels as ImageGear Extra channels for read and write.The following compressions are supported with alpha channel:
  • Uncompressed
  • Packed Bits
  • LZW
  • Deflate


ImageGear Transparency Support

Transparency allows you to specify a palette index or a color to be transparent. When the image is displayed, all pixels having this index (color) show background rather than the pixel's color.

Transparency requires very little storage space in the file - only a few bytes. However, the pixels can't be semi-transparent; also, transparent color occupies a palette entry or a color, which reduces the possible range of colors for the image. Alpha channel requires significantly more storage space in the file, but it does not have the limitations listed above.

ImageGear provides transparency support for the following file format filters:

Format
Support
GIF
Supports transparency for Read and Write.
PNG
Supports transparency for Read only.
XPM
Supports transparency for Read and Write.


ImageGear Supported Digital Camera RAW Formats

Camera manufacturers do not publish specifications on their raw formats. ImageGear attempts to reconstruct color images correctly where it is possible. For some cameras, however, not all of the color balance data is available. The application may need to apply additional processing to such images. This table lists the level of support that ImageGear provides for particular cameras.

The table uses the following notation:

  • S1 - Not supported in this version
  • S2 - ImageGear loads non-demosaiced image, basic metadata, and exif metadata if available. Reconstructed image can have incorrect colors.
  • S3 - Same as S2 plus correct white balance, black level tags. Display can be slightly different from native viewer, due to lack of info on camera colorspace.
  • S4 - Displays with colors very close to native viewer
  • S5 - Displays with colors and contrast very close to native viewer

    • Manufacturer
    Model
    Level of Support
    Canon
    EOS 10D
    S5
    Canon
    EOS 1D
    S2
    Canon
    EOS 1D Mark II
    S5
    Canon
    EOS 1D Mark II N
    S5
    Canon
    EOS 1D Mark III
    S5
    Canon
    EOS 1Ds
    S2
    Canon
    EOS 1Ds Mark II
    S5
    Canon
    EOS 1Ds Mark III
    S5
    Canon
    EOS 20D
    S3
    Canon
    EOS 20Da
    S3
    Canon
    EOS 300D
    S5
    Canon
    EOS 30D
    S4
    Canon
    EOS 350D
    S5
    Canon
    EOS 400D
    S4
    Canon
    EOS 40D
    S5
    Canon
    EOS 5D
    S5
    Canon
    EOS D30
    S2
    Canon
    EOS D60
    S5
    Canon
    EOS Digital Rebel
    S5
    Canon
    EOS Digital Rebel XT
    S5
    Canon
    EOS Digital Rebel Xti
    S4
    Canon
    EOS Kiss Digital
    S5
    Canon
    EOS Kiss N Digital
    S5
    Canon
    EOS Kiss X Digital
    S4
    Canon
    PowerShot 600
    S2
    Canon
    PowerShot A4601
    S2
    Canon
    PowerShot A5
    S2
    Canon
    PowerShot A5 Zoom
    S5
    Canon
    PowerShot A50
    S2
    Canon
    PowerShot A6101
    S2
    Canon
    PowerShot A6201
    S2
    Canon
    PowerShot A6301
    S2
    Canon
    PowerShot A6401
    S2
    Canon
    PowerShot A7101
    S2
    Canon
    PowerShot A7201
    S2
    Canon
    PowerShot G1
    S5
    Canon
    PowerShot G2
    S5
    Canon
    PowerShot G3
    S3
    Canon
    PowerShot G5
    S2
    Canon
    PowerShot G6
    S2
    Canon
    PowerShot G71
    S2
    Canon
    PowerShot G9
    S5
    Canon
    PowerShot Pro1
    S5
    Canon
    PowerShot Pro70
    S2
    Canon
    PowerShot Pro90 IS
    S2
    Canon
    PowerShot S2 IS1
    S2
    Canon
    PowerShot S3 IS1
    S2
    Canon
    PowerShot S30
    S2
    Canon
    PowerShot S40
    S5
    Canon
    PowerShot S45
    S2
    Canon
    PowerShot S5 IS1
    S2
    Canon
    PowerShot S50
    S4
    Canon
    PowerShot S60
    S2
    Canon
    PowerShot S70
    S2
    Casio
    Exlim Pro 5051
    S2
    Casio
    Exlim Pro 6001
    S2
    Casio
    Exlim Pro 7001
    S2
    Casio
    EX-S1001
    S2
    Casio
    EX-Z501
    S2
    Casio
    EX-Z551
    S2
    Casio
    QV-R511
    S2
    Fujifilm
    FinePix E550
    S5
    Fujifilm
    FinePix E900
    S5
    Fujifilm
    FinePix F700
    S2
    Fujifilm
    FinePix F710
    S2
    Fujifilm
    FinePix S2 Pro
    S2
    Fujifilm
    FinePix S20 Pro
    S2
    Fujifilm
    FinePix S3 Pro
    S5
    Fujifilm
    FinePix S5 Pro
    S5
    Fujifilm
    FinePix S5000 Z
    S2
    Fujifilm
    FinePix S5100
    S5
    Fujifilm
    FinePix S5200
    S5
    Fujifilm
    FinePix S5500
    S5
    Fujifilm
    FinePix S5600
    S5
    Fujifilm
    FinePix S6000fd
    S5
    Fujifilm
    FinePix S6500fd
    S5
    Fujifilm
    FinePix S7000 Z
    S2
    Fujifilm
    FinePix S9000
    S5
    Fujifilm
    FinePix S9100
    S5
    Fujifilm
    FinePix S9500
    S5
    Fujifilm
    FinePix S9600
    S5
    Kodak
    DCS 720x
    S2
    Kodak
    DCS 760C
    S4
    Kodak
    DCS 760M (monochrome)
    S2
    Kodak
    DCS PRO 14n (13.5 MegaPixel)
    S2
    Kodak
    DCS PRO 14n (3.2 MegaPixel)
    S2
    Kodak
    DCS PRO 14n (6 MegaPixel)
    S2
    Kodak
    DCS PRO 14n (YUV)
    S2
    Kodak
    DCS PRO 14nx
    S2
    Kodak
    DCS Pro SLR/c
    S2
    Kodak
    DCS Pro SLR/c (YUV)
    S2
    Kodak
    DCS Pro SLR/n (13.5 MegaPixel)
    S2
    Kodak
    DCS Pro SLR/n (3.2 MegaPixel)
    S2
    Kodak
    DCS Pro SLR/n (6 MegaPixel)
    S2
    Kodak
    DCS Pro SLR/n (YUV)
    S2
    Kodak
    EasyShare P850
    S2
    Kodak
    EasyShare P880
    S2
    Konica Minolta
    Alpha Sweet
    S5
    Konica Minolta
    DiMAGE 5
    S5
    Konica Minolta
    DiMAGE 7
    S5
    Konica Minolta
    DiMAGE 7Hi
    S5
    Konica Minolta
    DiMAGE 7i
    S4
    Konica Minolta
    DiMAGE A1
    S5
    Konica Minolta
    DiMAGE A2
    S5
    Konica Minolta
    DYNAX/MAXXUM 5D
    S5
    Konica Minolta
    DYNAX/MAXXUM/ALPHA 7D
    S5
    Leaf
    Aptus 22
    S5
    Leaf
    Aptus 54S
    S5
    Leaf
    Aptus 65
    S5
    Leaf
    Aptus 75
    S5
    Leaf
    Aptus 75S
    S5
    Leaf
    CMost
    S5
    Leaf
    Valeo 11
    S5
    Leaf
    Valeo 17
    S5
    Leaf
    Valeo 22
    S5
    Leaf
    Valeo 6
    S5
    Leica
    Digilux 2
    S5
    Leica
    Digilux 3
    S5
    Leica
    D-LUX2
    S5
    Leica
    D-LUX3
    S5
    Leica
    V-LUX1
    S5
    Mamiya
    ZD
    S2
    Nikon
    Coolpix 5000
    S2
    Nikon
    Coolpix 5400
    S5
    Nikon
    Coolpix 5700
    S5
    Nikon
    Coolpix 8400
    S5
    Nikon
    Coolpix 8700
    S5
    Nikon
    Coolpix 8800
    S5
    Nikon
    D1
    S5
    Nikon
    D100
    S5
    Nikon
    D1H
    S5
    Nikon
    D1X
    S5
    Nikon
    D200
    S5
    Nikon
    D2H
    S5
    Nikon
    D2Hs
    S5
    Nikon
    D2X
    S5
    Nikon
    D2Xs
    S5
    Nikon
    D3
    S5
    Nikon
    D300
    S5
    Nikon
    D40
    S5
    Nikon
    D40s
    S5
    Nikon
    D40x
    S5
    Nikon
    D50
    S5
    Nikon
    D50s
    S5
    Nikon
    D60
    S5
    Nikon
    D70
    S5
    Nikon
    D70s
    S5
    Nikon
    D80
    S5
    Olympus
    C-5050 Zoom
    S5
    Olympus
    C-5060 Zoom
    S5
    Olympus
    C-7000 Zoom
    S5
    Olympus
    C-7070 Zoom
    S5
    Olympus
    C-70Z
    S5
    Olympus
    C-8080
    S5
    Olympus
    E-1
    S5
    Olympus
    E-10
    S5
    Olympus
    E-20
    S5
    Olympus
    E-3
    S5
    Olympus
    E-300
    S5
    Olympus
    E-330
    S5
    Olympus
    E-400
    S5
    Olympus
    E-410
    S4
    Olympus
    E-500
    S5
    Olympus
    E-510
    S4
    Olympus
    SP350
    S5
    Olympus
    SP500UZ
    S5
    Olympus
    SP510UZ
    S5
    Olympus
    SP550UZ
    S5
    Olympus
    SP560UZ
    S5
    Panasonic
    DMC-FZ18
    S5
    Panasonic
    DMC-FZ30
    S5
    Panasonic
    DMC-FZ50
    S5
    Panasonic
    DMC-FZ8
    S5
    Panasonic
    DMC-L1
    S5
    Panasonic
    DMC-L10
    S5
    Panasonic
    DMC-LC1
    S5
    Panasonic
    DMC-LX1
    S5
    Panasonic
    DMC-LX2
    S5
    Pentax
    *ist D
    S5
    Pentax
    *ist DL
    S5
    Pentax
    *ist DL2
    S4
    Pentax
    *ist DS
    S5
    Pentax
    *ist DS2
    S5
    Pentax
    K100D
    S4
    Pentax
    K100D Super
    S5
    Pentax
    K10D
    S5
    Pentax
    K110D
    S4
    Samsung
    GX-10
    S5
    Samsung
    GX-1S
    S5
    Sony
    DSC-F828
    S2
    Sony
    DSC-R1
    S3
    Sony
    DSC-V3
    S2
    Sony
    DSLR-A100
    S5
    Sony
    DSLR-A700
    S2

1) Headerless Digital Camera RAW file. Detection is disabled by default.


AccuSoft Image Guarantee

AccuSoft Image Guarantee

ImageGear is guaranteed to read all valid raster images for supported formats. If for some reason, you cannot read an image with our library, three things may have occurred:

  1. The image is corrupted.
  2. The image is improperly coded.
  3. ImageGear is not reading this image properly.

See also the section Identifying an Image Problem.


Identifying an Image Problem

In the rare instance that ImageGear cannot read an image, please try the following:

  1. Try to read the image with another software package. Be sure to use a different package from the one that created the image. Some products that claim to produce a particular graphics file format do not adhere completely to the format specifications. If you can successfully read the image with a different product, you can feel confident that it is a valid image.
  2. If you can read the file with a package other than the one that created the image, please refer to the section Sending the Image to Accusoft for the instructions how to send us your image.

Check the error count that is returned by ImageGear (ErrCount). If it is greater than 0, use the ErrorCode property to get the ImageGear error codes. For more information on doing this, you can consult either the Volume 2: API Reference, or the section entitled Working with Error Handling in Chapter Using ImageGear.

NOTE: ImageGear contains filters that are designed to decompress an image even if it is corrupted. Some images may be too badly corrupted for the filters to use. If this is the case, you receive the error message CORRUPTED_FILE.


Sending the Image to Accusoft

To send your image to AccuSoft, please log a support ticket via our web-ticketing system, and attach the file once the ticket is created, so that our Customer Support Team can address your problem as soon as possible.

See Also:

AccuSoft Customer Support

Software Support and Maintenance Policy


Appendix A: Function Error Return Codes

Appendix A: Function Error Return Codes

This Appendix represents ImageGear error codes including their numerical numbers and short descriptions. All error codes are listed in numerical order and divided on the groups that are specific for ImageGear components functionality. Please refere to gearerrs.h and gearestr.h files for additional information about ImageGear error and warning codes.

JPEG2000 Component Error Codes

IGE_JPEG2000_KAKADU_ERROR
-9700
Error has been reported from Kakadu JPEG2000 library

Recognition Component Error Codes

IGE_REC_SCANSOFT_ERROR
-9600
Error has been reported from ScanSoft recognition library

ART Component Error Codes

IGE_ART_WANG_INCOMPATIBLE_FILE
-9500
Internal format of loaded annotation file is not compatible with Wang.

NRA Error Codes

IGE_INVALID_PARAMETER_FOR_PROCESSING_WITH_REGION
-9001
Operation can not be done using region.
IGE_INVALID_REGION_DATA
-9000
Invalid region

OS2 Error Codes

IGE_UNREGISTERED_HAB
-8000
HAB is not registered

VBX/OCX Level Error Codes

IGE_GUIWINDOW_TYPE_INVALID
-7020
GUIWindow type invalid
IGE_ROTATE_ENUMERATED_VALUES_NOT_USED
-7010
The enumerated values for rotate were not used
IGE_VBX_INVALID_FUNCTION_NUM
-7000
Invalid VBX function number

GUI Function Error Codes

IGE_GUI_GET_DEVICE_RECT_FAILED
-6522
Failed to retrieve device rectangle from SourceView's page display.
IGE_GUI_DESTINATION_VIEW_UNAVAILABLE
-6521
DestinationView property must be setup in stationary mode before starting mouse tracking.
IGE_GUI_SOURCE_VIEW_UNAVAILABLE
-6520
SourceView property must be setup before starting mouse tracking.
IGE_GUI_WINDOWING_FAILED
-6519
Failed to attach to the source view control window.
IGE_GUI_SLIDER_SETUP_FAILED
-6518
Failed to setup magnifier's on-source sliding area.
IGE_GUI_INTERNAL_ERROR
-6517
Internal GUI error.
IGE_GUI_UNKNOWN_FILE_FORMAT
-6516
Unknown file format
IGE_GUI_GET_HWND
-6515
Could not retrieve the underlying HWND for this object.
IGE_GUI_GET_DLG_CTL_FAILED
-6514
Could not retrieve the dialog control object.
IGE_GUI_PAGE_VIEW_UPDATE_FAILED
-6513
Could not update the PageView Control.
IGE_GUI_PAGE_VIEW_ENABLE_FAILED
-6512
Could not enable the PageView Control.
IGE_GUI_DISPLAY_ZOOM_CHANGE_FAILED
-6511
Could not modify the properties of the Display Zoom object for this image display.
IGE_GUI_DISPLAY_ZOOM_SET_OBJ_FAILED
-6510
Could not set the Display Zoom object for this image display.
IGE_GUI_DISPLAY_ZOOM_GET_OBJ_FAILED
-6509
Could not retrieve the Display Zoom object for this image display.
IGE_GUI_LAYOUT_CHANGE_FAILED
-6508
Could not modify the properties of the Display Layout object for this image display.
IGE_GUI_LAYOUT_GET_OBJ_FAILED
-6507
Could not retrieve the DIsplay Layout object for this image display.
IGE_GUI_PAGE_DISPLAY_SET_OBJ_FAILED
-6506
Could not set the PageDisplay object for this image's PageView Control.
IGE_GUI_PAGE_DISPLAY_CREATE_OBJ_FAILED
-6505
The CreatePageDIsplay() call failed.
IGE_GUI_NO_PAGE
-6504
Invalid IGPage object.
IGE_GUI_NO_PAGE_DISPLAY
-6503
Invalid IGPageDisplay object.
IGE_GUI_NO_PROCESSING_CTL
-6502
The control is not associated with a valid IGProcessingCtl control.
IGE_GUI_NO_DISPLAY_CTL
-6501
The control is not associated with a valid IGDisplayCtl control.
IGE_GUI_NO_FORMATS_CTL
-6500
The control is not associated with a valid IGFormatsCtl control.
IGE_UNREGISTER_CLASS_FAILED
-6040
Microsoft Windows function: UnregisterClass() failed.
IGE_INVALID_WINDOW
-6030
An invalid window handle was passed as one of the parameters to the function.
IGE_WINDOW_NOT_ASSOCATED
-6020
An attempt was made to disassociate a window that was never associated.
IGE_CREATE_WINDOW_FAILED
-6010
Microsoft Windows function: CreateWindow() failed.
IGE_REGISTER_CLASS_FAILED
-6000
Microsoft Windows function: RegisterClass() failed.

PDF/PostScript Component Error Codes

PDF Objects

IGE_PDF_STREAM_INVALID
-5807
Invalid stream object
IGE_PDE_OBJECT_INVALID
-5806
Invalid PDE object
IGE_PDF_COLORSPACE_INVALID
-5805
Invalid color space object
IGE_PDF_ELEMENT_INVALID
-5804
Invalid element
IGE_PDF_CONTENT_CANT_SET
-5803
Cannot set content
IGE_PDF_CONTENT_INVALID
-5802
Invalid content object
IGE_PDF_OBJECT_INVALID
-5801
Invalid PDF object

PDF Page

IGE_PDF_PAGE_CANT_DELETE
-5706
Cannot delete page.
IGE_PDF_PAGE_CANT_INSERT
-5705
Cannot insert page.
IGE_PDF_PAGE_CANT_SAVE
-5704
Cannot save page.
IGE_PDF_PAGE_CANT_OPEN
-5703
Cannot open page.
IGE_PDF_PAGE_CANT_CREATE
-5702
Cannot create page.
IGE_PDF_PAGE_INVALID
-5701
Invalid page object

PDF Document

IGE_PDF_DOC_NOT_AUTHORIZED
-5605
This operation is not permitted
IGE_PDF_DOC_CANT_SAVE
-5604
Cannot save document
IGE_PDF_DOC_CANT_OPEN
-5603
Cannot open document
IGE_PDF_DOC_CANT_CREATE
-5602
Cannot create document
IGE_PDF_DOC_INVALID
-5601
Invalid document object

PDF General

IGE_PDF_PRINTING_FAILED
-5541
Printing failed
IGE_PDF_CANT_CREATE_OBJECT
-5540
Cannot create object
IGE_PDF_CANT_EXTRACT_TEXT
-5539
Cannot extract text
IGE_PDF_INVALID_BITCOUNT
-5538
Invalid bit count
IGE_PDF_INVALID_COMPRESSION
-5537
Invalid compression
IGE_PDF_INVALID_PARAMETER
-5536
Invalid parameter
IGE_PDF_CANT_CONVERT_DATA
-5535
Rasterization failed
IGE_PDF_CANT_WRITE_DATA
-5534
Cannot write PDF stream
IGE_PDF_CANT_READ_DATA
-5533
Cannot read PDF stream
IGE_PDF_NOT_INITIALIZED
-5532
PDF engine is not initialized
IGE_PDF_FAILURE
-5531
General PDF error

PostScript General

IGE_PS_POSTSCRIPT_ERROR
-5504
The file contains a PostScript error
IGE_PS_EMPTY_JOB
-5503
Empty PostScript job
IGE_PS_NOT_INITIALIZED
-5502
PostScript engine is not initialized
IGE_PS_FAILURE
-5501
General PostScript job error

Multipage Error Codes

IGE_MP_IMAGE_NOT_ASSOCIATED
-5404
Multipage image is not opened
IGE_MP_ASSOCIATE_FAILURE
-5403
Multipage image open failure
IGE_MP_CANT_OPEN_MUTEX
-5402
Synchronization error
IGE_MP_IMVALID_PAGE_NUMBER
-5401
Invalid page number
IGE_MP_INVALID_HANDLE
-5400
Invalid multipage image handle

PS2 TEXT Function Error Codes

IGE_PS2TEXT_ERROR
-5350
GhostScript PS2TEXT error

PDF Read Function Error Codes

IGE_PDFREAD_GENERAL
-5301
GhostScript general error
IGE_PDFREAD_PSERROR
-5300
GhostScript PostScript error

Bar Function Error Codes

IGE_BAR_EFFORT_OUT_OF_RANGE
-5220
Effort out of range
IGE_BAR_SEARCH_ORDER_FAILURE
-5219
Set bar code search order failure.
IGE_BAR_BASE_API_FAILURE
-5218
Base api failure (error code in 2 parameter)
IGE_BAR_SETUP_FAILURE
-5217
Setup failure of bar code characteristics for recognition
IGE_BAR_SYMBOLOGY_SELECT_FAILURE
-5216
Symbology select failure
IGE_BAR_SYMBOLOGY_UNLICENSED
-5215
BAR symbology unlicensed
IGE_BAR_NOT_LICENSED
-5214
Bar not licensed
IGE_BAR_REGION_NOT_REMOVED
-5213
Bar region not removed
IGE_BAR_TEXT_NOT_READ
-5212
Bar text not read
IGE_BARCODES_NOT_READ
-5211
Barcodes not read
IGE_REGION_SPECIFIED_FAILURE
-5210
Region specified failure
IGE_LOADDIB_FAILURE
-5209
Load dib failure
IGE_IMAGE_DIB_PNTR_NOT_GOT
-5208
Not got image dib pntr
IGE_NOT_CONVERTED_RUNS_TO_DIB
-5207
Not converted runs to dib
IGE_WORKIMAGE_NOT_CREATED
-5206
Work image not created
IGE_BAR_API_FUNCTION_EXCEPTION
-5205
Exception of AutoPilot API function
IGE_BAR_CANT_GET_API_FUNCTION
-5204
Cannot get API function address from AutoPilot DLL
IGE_BAR_CANT_CLOSE
-5203
Cannot close AutoPilot API DLL
IGE_BAR_CANT_OPEN
-5202
Cannot open AutoPilot API DLL
IGE_BAR_CANT_UNLOAD
-5201
Cannot unload AutoPilot API DLL
IGE_BAR_CANT_LOAD
-5200
Cannot load AutoPilot API DLL

XRX Format Conversion Error codes

IGE_XRX_CV_NODATA
-5119
when @fa file is 0 byte
IGE_XRX_CV_XDOCFLAVOR
-5118
not XDOC_PLUS flavor
IGE_XRX_CV_DISKSPACE
-5116
lack of disk space
IGE_XRX_CV_PREOPENFAIL
-5113
The PRE can't be opened to write
IGE_XRX_CV_FILECANCEL
-5112
cancel by the call back from app.
IGE_XRX_CV_FILEDELETE
-5111
delete file fail
IGE_XRX_CV_VERSION
-5110
not the current version of fatext
IGE_XRX_CV_SET
-5108
A setting error.
IGE_XRX_CV_FILE
-5107
A file error.
IGE_XRX_CV_MEM
-5106
Out of memory.
IGE_XRX_CV_FA
-5105
Bad @fa file.
IGE_XRX_CV_DC
-5104
Bad xdc file.
IGE_XRX_CV_BADINPUT
-5103
Bad input data.
IGE_XRX_CV_NIL
-5102
Unexpected NIL value.
IGE_XRX_CV_EOD
-5101
End of data.
IGE_XRX_CV_UNKNOWN
-5100
Unknown conversion error

XRX Function Error Codes

IGE_XRX_NOT_SUPPORTED_FORMAT
-5048
not supported output file format
IGE_XRX_BAD_BITCOUNT
-5047
bits per pixel = 1
IGE_XRX_BAD_RESOLUTION
-5046
DPI can't be zero
IGE_XRX_WRITE_FAILED
-5045
I/O write failed (no space)
IGE_XRX_PROCESSING_CANCEL
-5044
Server cancelled processing on its initiative = - page may be too complex for selected mode
IGE_XRX_BAD_VERSION
-5043
Server is for wrong version
IGE_XRX_TIMEOUT
-5042
Timeout error on IPC to server
IGE_XRX_IMAGE_BUFFER_OVERFLOW
-5041
Image buffer full/overflow
IGE_XRX_NO_INPUT_INFO
-5040
No input format available for use with user defined input et. al.
IGE_XRX_NO_OUTPUT_INFO
-5039
No output format available for use with regions et. al.
IGE_XRX_NO_LICENSE_SERVER
-5038
Licensed version of API could not find license server
IGE_XRX_NO_LICENSE_API
-5037
Licensed version of API could not acquire a license from server
IGE_XRX_PP_FAILED
-5036
Bitmap preprocessing failed
IGE_XRX_LEX_OVERFLOW
-5035
Too many lexicons, remove one
IGE_XRX_BAD_REGION
-5034
Region index error
IGE_XRX_NO_IMAGE
-5033
Preprocessing, Recognition with no image
IGE_XRX_BAD_INTERNAL_DDB
-5032
HBITMAP is NULL (internal error)
IGE_XRX_BAD_COMBINATION
-5031
Param combination not supported or file format legal but not supported
IGE_XRX_BAD_HIGEAR
-5030
Invalid HIGEAR handle
IGE_XRX_BAD_PAGE_NUMBER
-5029
Nothing (more) to read
IGE_XRX_TOO_MANY_RESMODE
-5028
Image resolution change within a document too many times
IGE_XRX_NOT_WAIT
-5027
ICR must be waiting to make this call
IGE_XRX_NOT_IDLE
-5026
ICR must be idle to make this call
IGE_XRX_BAD_FILE
-5025
Bad file or file content associated
IGE_XRX_BAD_IMAGE_FORMAT
-5024
Invalid input format
IGE_XRX_FATAL
-5023
Fatal condition detected
IGE_XRX_REGION_OCCLUDED
-5021
Region is totally occluded
IGE_XRX_BAD_ORIENTATION
-5020
Could not orient text
IGE_XRX_ACCESS_DENIED
-5019
Access denied to this feature see your sales rep.
IGE_XRX_BAD_POLYGON
-5018
Invalid UOR or polygon passed to the server
IGE_XRX_UNKNOWN
-5017
Unknown or internal error
IGE_XRX_BAD_HEAP
-5016
Heap was corrupted
IGE_XRX_NO_MEMORY
-5015
ICR process memory error
IGE_XRX_NO_VERIFICATION
-5014
ICR not blocked on verification
IGE_XRX_BAD_PARAMETER
-5013
Bad function parameter
IGE_XRX_NO_LANG
-5012
Language not loaded/installed
IGE_XRX_BAD_LANGID
-5011
Invalid index for language/lexicon
IGE_XRX_LANG_OVERFLOW
-5010
Too many language packs, remove one
IGE_XRX_BAD_MODE
-5008
Bad recognition or verification mode
IGE_XRX_BAD_TIME
-5006
Parameter cannot be set at this time
IGE_XRX_BAD_PARAM_VALUE
-5005
Value bad or out of range
IGE_XRX_BAD_PARAM_ID
-5004
Bad tag in tag value set
IGE_XRX_NOT_INITIALIZED
-5003
Server not found or down
IGE_XRX_BAD_HANDLE
-5002
Handle is NULL
IGE_XRX_BAD_POINTER
-5001
Pointer is NULL
IGE_XRX_CANNOT_INIT_XRX_SESSION
-5000
Cannot init XRX session

Display Error Codes

IGE_FAIL_TO_DRAW_IMAGE
-4910
cannot draw image
IGE_INVALID_PRM_OPERATION
-4890
invalid operation
IGE_INVALID_PARAMETER
-4880
invalid parameter
IGE_INVALID_IMAGE_HANDLE
-4870
invalid image handle
IGE_INVALID_DEVICE_CONTEXT
-4860
invalid device context
IGE_INVALID_DISPLAY_PARAMETER
-4850
invalid display parameter
IGE_FORMAT_OPERATION_IS_NOT_SUPPORTED
-4840
format operation is not supported
IGE_INVALID_FORMAT_BIT_COUNT
-4835
invalid format bit count
IGE_INVALID_FORMAT_HEADER
-4830
invalid format header
IGE_INVALID_FORMAT_METHOD_ID
-4825
invalid format method ID
IGE_FAIL_TO_ALLOC_MUTEX
-4820
cannot allocate critical session data
IGE_GROUP_IS_NOT_EXIST
-4815
group does not exist
IGE_INVALID_OBJECT
-4811
invalid object
IGE_THREAD_ALREADY_ASSOCIATED
-4810
thread is already associated
IGE_FAIL_TO_ALLOC_PAMETER_GROUP
-4805
cannot allocate parameter group
IGE_CANT_OPEN_FORMAT_STORAGE_MUTEX
-4801
cannot start critical session
IGE_CANT_OPEN_PARAMETER_MUTEX
-4800
cannot start critical session

MS61 Function Error codes

IGE_MS61_UNSUPPORTED_CAPABILITY
-4718
Unsupported capability
IGE_MS61_CANT_GET_DRIVER_NAME
-4717
Cannot get driver name
IGE_MS61_CANT_SELECT_DRIVER_IN_MANUAL_MODE
-4716
Cannot select driver in manual mode
IGE_MS61_WRONG_CB_TYPE
-4715
Wrong CallBack type
IGE_MS61_CANT_TRANSFERIMAGE
-4714
Cannot transfer image to application
IGE_MS61_KERNEL_FUNCTION_EXCEPTION
-4713
Kernel function exception
IGE_MS61_SCAN_RASTER_TOO_LONG
-4712
Scan raster too long
IGE_MS61_NOT_SUPPORTED_COMPRESSION
-4711
Not supported compression
IGE_IMAGE_BUFFER_FILE_FAILURE
-4710
Failure to create file for image buffer
IGE_MS61_SCANNING_FAILED
-4709
Image scanning failed
IGE_MS61_SCANNER_UNACCESSIBLE
-4708
Kernel function error
IGE_MS61_KERNEL_FUNCTION_ERROR
-4707
Kernel function error
IGE_MS61_CANT_GET_SETTINGS
-4706
Cant get settings
IGE_MS61_IMAGE_TRANSFER_IS_CANCELED
-4705
image transfer canceled
IGE_MS61_TRANSFER_CB_CANCELED
-4704
Call back canceled
IGE_MS61_CANT_GET_IMAGE_LAYOUT
-4703
Cannot get image layout
IGE_MS61_CANT_GET_IMAGE_INFO
-4702
Cannot get image info
IGE_MS61_CANT_SELECT_DRIVER
-4701
Cannot select driver, next parameter contains MS61 error code
IGE_MS61_DLL_ACCESS
-4700
IG can not access ISIS DLL
IGE_MS61_CANT_CLOSE
-4646
Cannot close driver
IGE_MS61_CANT_ENABLE_DRIVER
-4613
Cannot enable driver
IGE_MS61_CANT_OPEN_DRIVER
-4612
Cannot load data Source
IGE_MS61_CANT_OPEN
-4611
Cannot load ISIS DLL

ISIS Function Error codes

IGE_ISIS_SCANNING_CANCELED
-4408
ISIS scanning was canceled
IGE_ISIS_DRIVER_NOT_LOADED
-4407
ISIS driver is not loaded
IGE_ISIS_SCANNING_FAILED
-4406
ISIS scanning failed
IGE_ISIS_RASTER_TOO_LONG
-4405
ISIS scan raster is too long
IGE_ISIS_COMPRESSION_NOT_SUPPORTED
-4404
ISIS compression is not supported
IGE_ISIS_INVALID_CB_TYPE
-4403
ISIS callback function type is invalid
IGE_ISIS_INVALID_INDEX
-4402
ISIS array index is invalid
IGE_ISIS_INVALID_HANDLE
-4401
ISIS handle is invalid
IGE_ISIS_INTERNAL_ERROR
-4400
ISIS internal error

TWAIN Scanning Function Error codes

IGE_TW_SOURCE_NOT_OPEN
-4083
No data source is currently open
IGE_TW_PALETTE_SIZE_MISMATCH
-4082
Palette size mismatch
IGE_TW_PIX_TYPE_MISMATCH
-4081
Pixel type mismatch
IGE_TW_SCANNING_CANCELED
-4080
Scanning was canceled
IGE_TW_AUDIO_TRANSFER_FAILED
-4079
Audio transfer operation failed
IGE_TW_AUDIO_TRANSFER_CANCELED
-4078
Audio transfer operation was canceled
IGE_TW_IMAGE_TRANSFER_FAILED
-4077
Image transfer operation failed
IGE_TW_IMAGE_TRANSFER_CANCELED
-4076
Image transfer operation was canceled
IGE_TW_TRANSFER_CB_CANCELED
-4075
Callback canceled transfer operation
IGE_TW_SELECT_DS_CANCELED
-4074
User canceled data source selection operation
IGE_TW_PIX_TYPE_NOT_SUPPORTED
-4073
Pixel type not supported
IGE_PALETTE_TYPE_NOT_SUPPORTED
-4072
Palette type not supported
IGE_TW_DATA_TYPE_NOT_SUPPORTED
-4071
TWAIN data type not supported
IGE_TW_COMPRESSION_NOT_SUPPORTED
-4070
Compression type not supported
IGE_TW_FILE_FORMAT_NOT_SUPPORTED
-4069
File format not supported
IGE_TW_TRANSFER_MODE_NOT_SUPPORTED
-4068
Transfer mode not supported
IGE_TW_CONTAINER_TYPE_NOT_SUPPORTED
-4067
Capability container type not supported
IGE_TW_PREVIEW_CAMERA_NOT_FOUND
-4066
Unable to find preview camera
IGE_TW_DLL_NOT_FOUND
-4065
TWAIN data source manager DLL not found
IGE_TW_VALUE_TOO_SHORT
-4064
Value buffer is too short to hold value
IGE_TW_CANT_GET_PALETTE
-4063
Can't get image palette
IGE_TW_CANT_SET_DATA_GROUP
-4062
Can't set data group
IGE_TW_CANT_GET_AUDIO_INFO
-4061
Can't get audio info
IGE_TW_CANT_PROCESS_MSG
-4060
Can't process TWAIN message
IGE_TW_CANT_SET_TRANSFER_PARAMS
-4059
Can't set image transfer parameters
IGE_TW_CANT_GET_TRANSFER_PARAMS
-4058
Can't get image transfer parameters
IGE_TW_CANT_GET_IMAGE_LAYOUT
-4057
Can't get image layout struct
IGE_TW_CANT_GET_IMAGE_INFO
-4056
Can't get image info struct
IGE_TW_CANT_SET_CAP
-4055
Can't set capability value
IGE_TW_CANT_GET_CAP
-4054
Can't get capability value
IGE_TW_CANT_FIND_DS
-4053
Can't find data source
IGE_TW_CANT_DISABLE_DS
-4052
Can't disable data source
IGE_TW_CANT_ENABLE_DS
-4051
Can't enable data source
IGE_TW_CANT_CLOSE_DS
-4050
Can't close data source
IGE_TW_CANT_OPEN_DS
-4049
Can't open data source
IGE_TW_CANT_CLOSE_DSM
-4048
Can't close data source manager
IGE_TW_CANT_OPEN_DSM
-4047
Can't open data source manager
IGE_TW_CANT_CLOSE_FILE
-4046
Can't close file on TWAIN device
IGE_TW_CANT_GET_NEXT_FILE
-4045
Can't get next file on TWAIN device
IGE_TW_CANT_GET_FIRST_FILE
-4044
Can't get first file on TWAIN device
IGE_TW_CANT_GET_FILE_INFO
-4043
Can't get file info on TWAIN device
IGE_TW_CANT_FORMAT_MEDIA
-4042
Can't format media on TWAIN device
IGE_TW_CANT_DELETE_FILE
-4041
Can't delete file on TWAIN device
IGE_TW_CANT_RENAME_FILE
-4040
Can't rename file on TWAIN device
IGE_TW_CANT_COPY_FILE
-4039
Can't copy file on TWAIN device
IGE_TW_CANT_CREATE_DIR
-4038
Can't create directory on TWAIN device
IGE_TW_CANT_CHANGE_DIR
-4037
Can't change directory on TWAIN device
IGE_TW_CANT_SET_AUTO_CAPTURE_DIR
-4036
Can't set destination directory for auto captured images
IGE_TW_CANT_GET_NEXT_DS
-4035
Can't get next data source
IGE_TW_CANT_GET_FIRST_DS
-4034
Can't get first data source
IGE_TW_CANT_GET_DEFAULT_DS
-4033
Can't get default data source
IGE_TW_CANT_GET_FILE_VERSION
-4032
Can't get file version
IGE_TW_CANT_LOCK_CONTAINER
-4031
Can't lock capability container memory
IGE_TW_INVALID_IMAGE_PARAMS
-4030
Image has invalid parameters
IGE_TW_INVALID_DIB_HANDLE
-4029
Invalid DIB handle
IGE_TW_INVALID_CONTROL_PARAM
-4028
Invalid control parameter identifier
IGE_TW_INVALID_CB_TYPE
-4027
Invalid callback type
IGE_TW_INVALID_VALUE
-4026
Invalid value, does not exist in array
IGE_TW_INVALID_INDEX
-4025
Invalid array index
IGE_TW_INVALID_CAP_HANDLE
-4024
Invalid capability handle
IGE_TW_INVALID_CAP_TYPE
-4023
Invalid capability type
IGE_TW_INVALID_CONTAINER_TYPE
-4022
nvalid capability container type
IGE_TW_SM_CHECKDEVICEONLINE
-4021
The device went offline prior to or during this operation
IGE_TW_SM_FILEWRITEERROR
-4020
Error writing the file (meant for things like disk full conditions)
IGE_TW_SM_PAPERDOUBLEFEED
-4019
The feeder detected multiple pages
IGE_TW_SM_PAPERJAM
-4018
The feeder is jammed
IGE_TW_SM_NOTEMPTY
-4017
Operation failed because directory is not empty
IGE_TW_SM_FILENOTFOUND
-4016
File not found
IGE_TW_SM_FILEEXISTS
-4015
Operation failed because file already exists
IGE_TW_SM_DENIED
-4014
File System operation is denied (file is protected)
IGE_TW_SM_CAPSEQERROR
-4013
Capability has dependency on other capability
IGE_TW_SM_CAPBADOPERATION
-4012
Operation not supported by capability
IGE_TW_SM_CAPUNSUPPORTED
-4011
Capability not supported by source
IGE_TW_SM_BADDEST
-4010
Unknown destination in DSM_ENTRY
IGE_TW_SM_SEQERROR
-4009
Illegal operation for current Source Manager or Source state
IGE_TW_SM_BADVALUE
-4008
Data parameter out of supported range
IGE_TW_SM_BADPROTOCOL
-4007
Unrecognized operation triplet
IGE_TW_SM_BADCAP
-4006
Capability not supported by Source or operation not supported by capability
IGE_TW_SM_OPERATIONERROR
-4005
Source or Source Manager reported an error to the user
IGE_TW_SM_MAXCONNECTIONS
-4004
Source is connected to maximum number of applications
IGE_TW_SM_NODS
-4003
Source Manager unable to find the specified Source
IGE_TW_SM_LOWMEMORY
-4002
Not enough memory to complete operation
IGE_TW_SM_BUMMER
-4001
General failure due to unknown causes
IGE_TW_SM_SUCCESS
-4000
Operation worked

Component related error codes

IGE_FUNCTION_DOESNT_EXIST
-3702
The function doesn't exist in the specified component
IGE_COMPONENT_NOT_ATTACHED
-3701
The component isn't attached
IGE_CANT_ATTACH_COMP
-3700
The specified component can't be attached

Auto Detect Error codes

IGE_FILE_IS_UNSUPPORTED_FILE
-3605
File format is not supported
IGE_FILE_IS_HLP
-3604
File is a Microsoft sytem Help file
IGE_FILE_IS_DOC
-3603
File is a Microsoft DOC file
IGE_FILE_IS_ZIP
-3602
File is a PKZIP file
IGE_FILE_IS_EXE
-3601
File is a EXE, DLL, DRV, FNT, OCX, or 386
IGE_FILE_IS_SYSTEM_FILE
-3600
The image file passed in is really one of the following system files and not an image

Batch conversion CB Error codes

IGE_BATCH_WRONG_CB_TYPE
-3500
Wrong CB type passed to IG_batch_CB_register

Disk File Access Error codes

IGE_FILE_INVALID_PATH
-3450
Invalid path
IGE_FILE_INVALID_FILENAME
-3443
Invalid file name
IGE_FILE_CANT_DELETE
-3442
Cannot delete file
IGE_FILE_CANT_SAVE
-3441
Cannot save file
IGE_FILE_CANT_OPEN
-3440
Cannot open file

Image Processing Error codes

IGE_INVALID_RANK_TYPE
-3424
Specified type of rank in the rank filter is invalid.
IGE_INVALID_RESOLUTION_VALUE
-3423
Resolution value is not supported by a file format.
IGE_INVALID_ALPHA_CHANNEL
-3422
It is possible that width or height not equal to original image.
IGE_INVALID_CLIPING_RECT
-3421
Invalid clipping rect
IGE_RASTER_LINE_INVALID
-3420
The given raster line is invalid, it should be between 0 and the height of the image -1
IGE_PROC_INVAL_FOR_8BIT_INDEXED
-3410
Proc does not work on the 8i images
IGE_DIB_DIMENSIONS_ARE_INVALID
-3400
Either height or width of the DIB is wrong.
IGE_INVALID_BIT_MASK
-3390
The red, green and blue components of the bit mask overlap.
IGE_POINTER_IS_NULL
-3380
Pointer passed to an IP function is NULL, but it would point at object
IGE_INVALID_RESOLUTION_UNIT
-3370
The units of the image resolution are not supported
IGE_PROC_REQUIRE_8BIT_GRAYSCALE
-3360
This function can be used on 8-bit grayscale images only
IGE_PASSWORD_LENGTH_INVALID
-3350
Password must be at least 1-byte long (should be at least 5 bytes)
IGE_INVALID_ENCRYPT_MODE
-3340
The selected Encryption Method is invalid
IGE_INVALID_POINTER
-3330
A pointer was detected to be NULL
IGE_PARAMETER_OUT_OF_LIMITS
-3320
A parameter is out of its legal range
IGE_PROC_INVAL_FOR_PALETTE_IMG
-3310
This function can not be used on 8-bit color images - try to promote to 24-bit
IGE_PROC_INVAL_FOR_BIT_COUNT
-3300
This function can not be used on images with this one's bit count
IGE_DIB_POINTER_IS_NULL
-3220
The DIB pointer about to be used is NULL (invalid)
IGE_COLOR_SPACE_INVALID
-3210
Invalid type of color space
IGE_TILE_IS_LARGER_THAN_IMAGE
-3200
The tile image must be the same size or smaller in both dimensions than the original source
IGE_INVALID_SKEW_POINTS
-3190
A valid line could not be drawn through the two point provided. Y1==Y2
IGE_INVALID_SIGMA
-3180
Invalid sigma
IGE_INVALID_KERN_NORMALIZER
-3170
Invalid kernel normalizer
IGE_INVALID_NOISE_TYPE
-3160
Invalid noise type
IGE_INVALID_KERN_MOTION_EXTENT
-3150
Invalid kernel motion extent
IGE_INVALID_LUT_ARITH_FUNC
-3140
The LUT_ARITH_FUNC is not a valid function number, check the constant
IGE_INVALID_RAMP_DIRECTION
-3130
The contrast ramps direction is not supported
IGE_REQUIRES_CONVEX_ROI
-3120
This function requires a convex ROI. The one passed in must be convex
IGE_ROI_WRONG_TYPE
-3110
Region of interest is wrong type
IGE_DIB_HAS_NO_PALETTE
-3101
The image passed in does not have a palette and this routine requires one
IGE_DIB_BIT_COUNTS_NOT_EQUAL
-3100
The images must have the same bit count
IGE_DIB_DIMENSIONS_NOT_EQUAL
-3090
The images must be the same dimensions
IGE_INVALID_SIGMA
-3080
Invalid sigma
IGE_DIBS_ARE_INCOMPATIBLE
-3070
The images are not compatible for this function, either dimension, bit count, or both
IGE_AI_HANDLE_INVALID
-3060
This routine requires an AccuSoft handle. The handle passed in was not allocated by AccuSoft
IGE_AI_HANDLES_USED_UP
-3050
The maximum number of AccuSoft handles has been used - no more left. Free up some and try again
IGE_BAD_KERN_TYPE
-3040
Bad kernel type
IGE_FREE_FAILED
-3030
An internal memory free has failed, usually a bad handle, or corrupted system
IGE_ALLOC_FAILED
-3020
Memory required for this routine could not be allocated, free up some resources and try again
IGE_LOCK_FAILED
-3010
Memory required for this routine could not be locked, most likely running out of memory resources
IGE_WRONG_DIB_BIT_COUNT
-3000
The DIB has bit with the wrong bit count for this routine

Sync Error Codes

IGE_CANT_UNLOCK_DATA
-2904
Can't unlock data
IGE_CANT_LOCK_DATA
-2903
Can't lock data.
IGE_CANT_UNLOCK_IMAGE
-2902
Can't unlock image
IGE_CANT_LOCK_IMAGE
-2901
Can't lock image.
IGE_IMAGE_IS_LOCKED
-2900
Image is locked

TIFF Filter Specific Errors

IGE_END_OF_IMAGE
-2610
IGE_CANNT_OPEN_INTERNET_SESSION
-2600
Can't open internet session
IGE_CANNT_OPEN_INTERNET_CONNECTION
-2590
Can't open internet connection
IGE_CANNT_OPEN_TEMPORARY_FILE
-2580
Can't open temporary file
IGE_CANNT_OPEN_GOPHER_FILE
-2570
Can't open Gopher file
IGE_CANNT_OPEN_HTTP_FILE
-2560
Can't open HTTP file
IGE_CANNT_OPEN_FTP_FILE
-2550
Can't open FTP file
IGE_JBIG_STREAM_OPEN_FAILURE
-2540
JBIG support library returned an error in return code
IGE_TIF_INVALID_CLASS_F_IMAGE
-2530
Error writing TIF class F format
IGE_ICA_IBM_MMR_COMP_ERROR
-2520
Error in IBM MMR IOCAMO:DCA compression
IGE_ICA_COMP_NOT_SUPPORTED
-2510
MO:DCAIOCA Compression is not supported at this time
IGE_CLP_INVALID_FORMAT_ID
-2500
Windows clipboard file contains an unsupport Format ID at this page
IGE_JBG_IMG_CNTRL_NOT_FOUND
-2486
JBIG Extension Image Control not found for save
IGE_JBIG_EXTENSION_NOT_LOADED
-2485
JBIG Extension has not been loaded
IGE_ABIC_EXTENSION_NOT_LOADED
-2484
ABIC Extension has not been loaded
IGE_IMBEDDED_IMAGE_FAILURE
-2483
Failure occurred while reading a file format imbedded in another
IGE_RASTER_WRITE_FAILURE
-2482
Unable to write Raster to Output Device (Full Device)
IGE_TILE_NOT_PRESENT
-2481
Tile is not present
IGE_LZW_EXTENSION_NOT_LOADED
-2480
LZW Extension has not been loaded
IGE_PRIV_TAG_TYPE_INVALID
-2479
private user tag had an invalid type
IGE_REPAGE_FAILED
-2478
unable to write new page numbers while repaging file
IGE_INVALID_COMP_BIT_DEPTH
-2477
bit depth is invalid for this compression scheme
IGE_INVALID_STRIP_BYTE_CNT
-2476
strip byte count was zero and could not be estimated
IGE_CORRUPTED_FILE
-2475
data in file was not what was expected and could not be interpreted
IGE_PAGE_COUNT_FAILURE
-2474
count not count the number of pages in the file
IGE_BAD_DATA_TYPE
-2473
Data type detected is not valid
IGE_INVALID_IMG_DEM
-2472
Image Dimension was invalid
IGE_LZW_ERROR
-2471
Error occured in LZW decode
IGE_RASTER_TO_LONG
-2470
One raster lines exceeds the max num of bytes
IGE_PLANAR_CONFIG_ERROR
-2469
Planar Config detected is unsupported
IGE_IMAGE_DATA_WRITE_ERROR
-2468
Was not able to write IMAGE data to the IOS
IGE_TAG_WRITE_ERROR
-2467
Was not able to write TAG info to the IOS
IGE_IFD_WRITE_ERROR
-2466
Was not able to write IFD info to the IOS
IGE_CANT_REALLOC_MEM
-2465
Was not able to reallocate memory
IGE_DIB_GET_FAILURE
-2464
Was unable to retreive the DIB information
IGE_HEADER_WRITE_FAILED
-2463
Header write failed
IGE_IMAGE_DATA_READ_ERROR
-2462
Was unable to read all image data requested
IGE_RASTER_FEED_ERROR
-2461
Error feeding raster data to the DIB
IGE_COMP_NOT_SUPPORTED
-2460
Compression is not supported at this time
IGE_INVALID_REQ_INFO
-2459
Required information was not supplied
IGE_INVALID_PHOTOMETRIC
-2458
Photometric tag value was found to be invalid
IGE_INVALID_COLOR_MAP
-2457
Color Map was found to be invalid
IGE_INVALID_BITS_PER_SAMPLE
-2456
Bits per sample tag was invalid
IGE_CANT_READ_TAG_DATA
-2455
Was unable to read all TAG information
IGE_INVALID_BYTE_ORDER
-2454
Byte order flag was not Intel or Motorola
IGE_SEEK_FAILURE
-2453
IOS position seek failed
IGE_IFD_PROC_FAILURE
-2452
Invalid IFD information was detected
IGE_INVALID_IFD
-2451
IFD Read did not contain correct number of bytes
IGE_INVALID_TAG
-2450
Tag Read did not contain correct number of bytes

Miscellaneous Error Codes

IGE_X_NULL_DISPLAY
-2448
X display specified is NULL. ASCII filter is unable to draw text.
IGE_FILTER_UNKNOWN_FORMAT
-2447
Unknown file format
IGE_FILTER_CANT_GET_INFOFUNC
-2446
Fail to get filter's info function
IGE_DIB_RES_UNITS_NOT_SUPPORTED
-2445
DIB resolution units is not supported
IGE_UNDEFNIED_COLOR_SPACE_ID
-2444
color space ID is not defined
IGE_NOT_SUPPORTED_COMP
-2443
Compression is not supported at this time
IGE_PNG_NO_IDAT_CHUNK
-2442
failed to READ a manditory IDAT Chunk
IGE_PNG_READ_FAILED
-2441
failed to READ png data
IGE_PNG_CHUNK_READ_FAILED
-2440
failed to READ the correct number of bytes for png chunk
IGE_PNG_WRITE_FAILED
-2439
failed to write png data
IGE_PNG_CHUNK_WRITE_FAILED
-2438
failed to write the correct number of bytes for png chunk
IGE_STANDARD_FEATURE
-2437
This feature is not available in Lite version
IGE_LOAD_FUNCTION_GET_FAILED
-2436
Was not able to intialize the filer load function
IGE_ALLOC_SELECTOR_FAILED
-2435
AllocSelector() failed, couldn't get an entry into the Global Descriptor able
IGE_CAN_NOT_OPEN_TEMP_FILE
-2434
The temporary file need for this function could not be openedcreated
IGE_PROC_INVAL_FOR_RUNS_DIB
-2433
This function can not be used on DIBs in the Runs format - convert first IG_IP_convert_runs_to_DIB
IGE_OPERATION_IS_NOT_ALLOWED
-2432
IGE_PJPEG_NOT_SUPPORTED
-2427
Progressive JPEG feature is not supported
IGE_JPG_INVALID_HUFFMAN_TABLE
-2426
Invalid huffman table
IGE_JPG_INVALID_HUFFMAN_ID
-2425
Invalid huffman table descriptor
IGE_JPG_INVALID_QTABLE_PRECISION
-2424
Invalid quantization table precision
IGE_JPG_INVALID_QTABLE_ID
-2423
Invalid quantization table descriptor
IGE_JPG_UNRECOGNIZE
-2422
Unrecognized JPEG marker encountered
IGE_PJPEG_INVALID_SCAN_COUNT
-2421
Invalid number of scans for progresive JPEG write
IGE_PJPEG_INVALID_SCAN_
CONFIGURATION
-2420
Invalid configuration of scans for progressive JPEG write
IGE_IMNET_INVALID_WIDTH
-2418
Invalid width for IMNET
IGE_NAME_CONV_NOT_SUPPORTED
-2416
Batch Naming configuration not supported
IGE_LOG_FILE_CREATE_ERROR
-2415
Unable to create Batch Log File
IGE_DIRECTORY_CREATE_ERROR
-2414
Unable to create Destination Directory
IGE_BITDEPTH_NOTSUPPORTED
-2413
This Bit-Depth is not supported for this write format
IGE_G3_PREMATURE_EOL_AT_SCAN_LINE
-2412
Group 3 premature EOL
IGE_G3_BAD_1D_CODE_AT_SCAN_LINE
-2411
Group 3 bad 1D code
IGE_G3_PREMATURE_EOF_AT_SCAN_LINE
-2410
Group 3 premature EOF
IGE_G4_BAD_DECODING_STATE_AT_
SCAN_LINE
-2403
Group 4 bad decoding state
IGE_G4_BAD_2D_CODE_AT_SCAN_LINE
-2402
Group 4 invalid 2D code
IGE_G4_PREMATURE_EOL_AT_SCAN_LINE
-2401
Group 4 premature EOL
IGE_G4_PREMATURE_EOF_AT_SCAN_LINE
-2400
Group 4 premature EOF
IGE_PALETTE_FILE_INVALID_HALO_PAL
-2399
Detected Dr. Halo Palette file is invalid
IGE_PALETTE_FILE_NOT_DETECTED
-2398
The file is not a valid palette file
IGE_PALETTE_FILE_READ_ERROR
-2397
Error reading from a palette file
IGE_PALETTE_FILE_WRITE_ERROR
-2396
Error writing to a palette file
IGE_PALETTE_FILE_TYPE_INVALID
-2395
IG_PALETTE_ value is not known
IGE_NO_BITMAP_FOUND
-2394
WPG, WMF etc. No raster image exists in file
IGE_CANT_WRITE_FILE
-2393
File can't be saved in the specified format.
IGE_EPS_NO_PREVIEW
-2392
EPS file has no screen preview image to load
IGE_BAD_FILE_FORMAT
-2391
Format is not correct.
IGE_NO_BITMAP_REGION
-2390
No bitmap region
IGE_INTERRUPTED_BY_USER
-2113
Status bar callback returned FALSE
IGE_INVALID_BITCOUNT_FOR_FORMAT
-2112
The bitcount found is not supported by this format
IGE_FILE_FORMAT_IS_READONLY
-2111
The image file is read only and can not be written to
IGE_INVALID_IMAGE_FORMAT
-2110
The image file is invalid as the expected format
IGE_CANT_READ_FILE
-2100
Can't read file
IGE_CANT_SETUP_DIB_HEADER
-2095
Can't setup DIB header
IGE_INSTANCE_CLEANUP_ERROR
-2091
Instance cleanup error
IGE_INSTANCE_FAILURE
-2090
Instance failure
IGE_INVALID_COMPRESSION
-2080
Invalid compression
IGE_FORMAT_NOT_DETECTABLE
-2073
Save format can not be detected from file extension used
IGE_CANT_WRITE_HEADER
-2072
Can't write header
IGE_CANT_WRITE_PIXELS
-2071
Can't write pixel data
IGE_CANT_WRITE_PALETTE
-2070
Can't write palette
IGE_INVALID_HEADER
-2061
Invalild file header
IGE_INVALID_FILE_TYPE
-2060
Invalid file type
IGE_CANT_READ_HEADER
-2052
Can't read header
IGE_CANT_READ_PIXELS
-2051
Can't read pixel data
IGE_CANT_READ_PALETTE
-2050
Can't read palette
IGE_FILE_SIZE_WRITE_ERROR
-2041
Could not write file size field to BMP
IGE_BMP_IS_COMPRESSED
-2040
The BMP file is in compressed (RLE) format
IGE_FILE_TO_SMALL_TO_BE_BMIH
-2035
The file is too small to be a valid BMIH
IGE_FILE_IS_NOT_BMP
-2034
The BMFH Magic number is invalid
IGE_FILE_TO_SMALL_TO_BE_BMFH
-2033
The file is too small to be a valid BMFH
IGE_FILE_CANT_BE_CLOSED
-2032
An attempt to close a file failed
IGE_FILE_CANT_BE_CREATED
-2031
An attempt to create a file failed, it may already exist in the provided path
IGE_FILE_CANT_BE_OPENED
-2030
An attempt to open a file failed, it may not exist in the provided path
IGE_CANT_DETECT_FORMAT
-2010
The format of the file can not be determined
IGE_PAGE_COULD_NOT_BE_READ
-2007
The page number could not be determined
IGE_PAGE_INVALID
-2006
The page number provided is outside of the range of valid pages for this file
IGE_PAGE_NOT_PRESENT
-2005
The requested image page does not exist in the file
IGE_THUMBNAIL_NOT_SUPPORTED
-2002
Thumbnails are not supported by this format
IGE_THUMBNAIL_READ_ERROR
-2001
A read error occured while reading a thumbnail
IGE_THUMBNAIL_NOT_PRESENT
-2000
Thumnails are supported but none can be found in this image file
IGE_PASSWORD_INVALID
-1016
The Password is not recognized
IGE_INVALID_PATTERN_BITMAP
-1015
The DDB was > 1 bit per pixel or the width was > 8 or the height was > 8
IGE_COULD_DISPLAY_DDB
-1014
BitBlt() failed. Couldn't display the DDB
IGE_CREATE_BITMAP_FAILED
-1013
CreateBitmap() failed. Couldn't create a DDB.
IGE_COULD_NOT_GET_DDB_BITS
-1012
GetDIBits() failed. Couldn't get the DDB's image data
IGE_COULD_NOT_GET_DDB_DIMENSIONS
-1011
GetObject() failed. Couldn't get the DDB's dimensions
IGE_SETCLIPBOARDDATA_FAILED
-1010
Could not put data into the clipboard
IGE_CLIPBOARD_OPEN_FAILED
-1009
Could not open the clipboard
IGE_NO_CLIPBOARD_IMAGE_AVAILABLE
-1008
No image is available for a clipboard paste
IGE_INVALID_RECTANGLE
-1007
Occurs when a rectangle's left >= right or top >= bottom
IGE_INTERNAL_ERROR
-1005
An internal error has occured, contact ACCUSOFT techical support
IGE_INVALID_STANDARD_KERNEL
-1004
The kernel expected one of the predefined ones, yours could not be found
IGE_EVAL_DLL_TIMEOUT_HAS_EXPIRED
-1003
The DLL is an Evaluation copy and as timed out - contact ACCUSOFT to purchase a release copy
IGE_OUT_OF_MEMORY
-1000
No more global memory is available for allocation, reduced used resources
IGE_FUNCTIONALITY_NOT_SUPPORTED
-900
The ImageGear functionality is not supported under this platform.
IGE_EXTENSION_INITIALIZATION_FAILED
-800
The specified ImageGear extension was unable to initialize.
IGE_INVALID_EXTENSION_MODULE
-700
The specified ImageGear extension file was not a valid extension file
IGE_INVALID_CONTROL_OPTION
-600
Invalid image control option ID
IGE_COMPONENT_ATTACH_FAILURE
-553
Failure to attach component.
IGE_INVALID_COMPONENT_MODULE
-552
The module is not component or has wrong interface
IGE_INVALID_FUNCTION_POINTER
-551
Invalid pointer to the component's function
IGE_INVALID_FUNCTION_NAME
-550
The name of the component's function is invalid
IGE_FILTER_CTRL_INVALID_NAME
-512
The name of control parameter is invalid or not supported
IGE_INVALID_FILTER_OPERATION
-511
Requested operation is not supported by format filter
IGE_FILTER_NOT_LOADED
-510
Requested format filter is not present
IGE_ERROR_COMPRESSION
-400
IGE_NOT_SUPPORTED_BY_PLATFORM
-350
The last function used is not supported by this platform.
IGE_NOT_LITE_FEATURE
-301
An attempt was made to use a Non IG-Lite feature in the IG-Lite product.
IGE_NOT_IMPLEMENTED
-200
For internal reference of areas to return to
IGE_NOT_DONE_YET
-100
For internal reference of areas to return to
IGE_FAILURE
-1
General error - Failure
IGE_SUCCESS
0
No errors -- Success


Appendix B: Non-Image Data Storage

Appendix B: Non-Image Data Storage

This Appendix provides you with detailed information about ImageGear:

    • Metadata Structure "ValueType" and "Value" .
    • TIFF Non-Image Data Structure
    • JPEG Non-Image Data Structure
    • EXIF-TIFF Non-Image Data Structure
    • EXIF-JPEG Non-image Data Structure
    • CIFF Non-Image Data Structure
    • IPTC Non-Image Data Structure
    • PNG Non-Image Data Structure
    • GIF Non-image Data Structure
    • DCRAW Non-Image Data Structure
    • XMP Non-Image Data Structure
    • JPEG2000 Component Metadata


Metadata Structure "ValueType" and "Value"

Here are possible combinations of ValueType and Value elements of AT_DATALIST_ITEM ImageGear metadata syructure:

ValueType
Value
AM_TID_META_INT8
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 8-bit signed integers separated by comma.
Example: "-128;0;+45;56"
AM_TID_META_UINT8
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 8-bit unsigned integers separated by comma. The hexadecimal values are allowed.
Example: "0;+18;255;0xFA"
AM_TID_META_INT16
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 16-bit signed integers separated by comma.
Example: "0;+1800;-255;32355"
AM_TID_META_UINT16
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 16-bit unsigned integers separated by comma. The hexadecimal values are allowed.
Example: "0;+543;2550;0x12FF"
AM_TID_META_INT32
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 32-bit signed integers separated by comma.
Example: "0;+67;-235987;32355"
AM_TID_META_UINT32
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 32-bit unsigned integers separated by comma. The hexadecimal values are allowed.
Example: "0;+543;12362550;0x56FDE345"
AM_TID_META_INT64
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated string - textual representation of "Length" 64-bit signed integers separated by comma.
AM_TID_META_UINT64
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 64-bit unsigned integers separated by comma. The hexadecimal values are allowed.
AM_TID_META_BOOL
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NULL-terminated string - textual representation of "Length" Boolean values separated by comma.
Example: "TRUE;FALSE;false;true"
AM_TID_META_RATIONAL_INT32
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" rational values separated by comma. Each rational value is fraction where both numerator and denominator are 32-bit signed integers separated by slash. Zero is allowed.
Example: "+324/-567;0/0;-68/45668"
AM_TID_META_RATIONAL_UNT32
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" rational values separated by comma. Each rational value is fraction where both numerator and denominator are 32-bit unsigned integers separated by slash. Zero is allowed.
Example: "+324/567;0/0"
AM_TID_META_FLOAT
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 4-byte float-point values separated by comma.
Example: "-298.98676;3568732;6.9876E-10;0"
AM_TID_META_DOUBLE
  • The "FLTR.METADATA_FORMAT" global parameter value is "text" or ActiveX:
Value is pointer to NUL-terminated ASCII string - textual representation of "Length" 8-byte (double precision) float-point values separated by comma.
Example:
"-29842.9867698098;356873245345;6.98766575489E+50;0"
AM_TID_META_STRING
  • It does not depend on "FLTR.METADATA_FORMAT" global parameter value
Value is pointer to NUL-terminated ASCII string, "Length" - length of the string (NULL is not counted).
Example: "Simple string"
AM_TID_RAW_DATA
  • It does not depend on "FLTR.METADATA_FORMAT" global parameter value
Value is pointer to byte array that represent binary data, "Length" - size of the array in bytes.


Non-Image Data Structure

In this section the metadata items (and sequence of metadata items) is written in table form where metadata type constants are in the shorted form. For example the LEVEL_START should be treated as IG_METAD_LEVEL_START, UINT32 - as AM_TID_META_UINT32, RAW_DAT - as AM_TID_RAW_DATA etc.

See Also:
  • TIFF Non-Image Data Structure
  • JPEG Non-Image Data Structure
  • EXIF-TIFF Non-Image Data Structure
  • EXIF-JPEG Non-image Data Structure
  • IPTC Non-Image Data Structure
  • PNG Non-Image Data Structure
  • GIF Non-image Data Structure


TIFF Non-Image Data Structure

TIFF metadata structure is framed in several levels:

    • TIFF level containing all TIFF metadata
    • IFD level,
    • Tags

TIFF level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"TIFF"
IG_FORMAT_TIF
LEVEL_START
0
NULL
0
TRUE
"TIF_
HEADER"
59936
VALUE_ITEM
UINT16
0x4949 or
0x4D4D
1
TRUE
Main IFD level
"TIFF"
IG_FORMAT_TIF
LEVEL_END
0
NULL
0
TRUE

All items between items with Name "TIFF" and Id IG_FORMAT_TIF (Type LEVEL_START and LEVEL_END) are interpreted as TIFF data. If during sending data from application level to filter level the first item is omitted the data will not be parsed and saved.

NOTE: The subIFDs is not parsed and passed.

IFD level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"IFD"
0
LEVEL_START
0
NULL
0
TRUE
One or more tag items
"IFD"
0
LEVEL_END
0
NULL
0
TRUE

Tags

Most of TIFF tags are passed through metadata events as

Name
Id
Type
Value Type
Value
Value Length
Read Only
<TagName>
<TagId>
VALUE_ITEM
<ValueType>
<TagValue>
<TagCount>
<R.o.>

The valid values of <TagName>, <TagId> and "Read Only" attributes are available in Description of TIFF tags Table.

See Also:

TIFF Complex Data Tags

NOTE: It is possible to use tag identifier and value of nonstandard tag (user defined tag).

The <TagCount> is real tag count value that is read/written in file.

The < ValueType > value is the metadata type constant that matches TIFF tag type as described in the table below:

TIFF tag type
Metadata type
BYTE
AM_TID_META_UINT8
SBYTE
AM_TID_META_INT8
SHORT
AM_TID_META_UINT16
SSHORT
AM_TID_META_INT16
LONG
AM_TID_META_UINT32
SLONG
AM_TID_META_INT32
RATIONAL
AM_TID_META_RATIONAL_UINT32
SRATIONAL
AM_TID_META_RATIONAL_INT32
FLOAT
AM_TID_META_FLOAT
DOUBLE
AM_TID_META_DOUBLE
ASCII
AM_TID_META_STRING
UNDEFINED
AM_TID_RAW_DATA

Description of TIFF tags

Item Name
Item Id
Read only
"NewSubfileType"
254
TRUE
"SubfileType"
255
TRUE
"ImageWidth"
256
TRUE
"ImageLength"
257
TRUE
"BitsPerSample"
258
TRUE
"Compression"
259
TRUE
"PhotometricInterpretation"
262
TRUE
"Threshholding"
263
FALSE
"CellWidth"
264
TRUE
"CellLength"
265
TRUE
"FillOrder"
266
FALSE
"DocumentName"
269
FALSE
"ImageDescription"
270
FALSE
"Make"
271
FALSE
"Model"
272
FALSE
"StripOffsets"
273
TRUE
"Orientation"
274
FALSE
"SamplesPerPixel"
277
TRUE
"RowsPerStrip"
278
TRUE
"StripByteCounts"
279
TRUE
"MinSampleValue"
280
FALSE
"MaxSampleValue"
281
FALSE
"XResolution"
282
FALSE
"YResolution"
283
FALSE
"PlanarConfiguration"
284
TRUE
"PageName"
285
FALSE
"XPosition"
286
FALSE
"YPosition"
287
FALSE
"FreeOffsets"
288
TRUE
"FreeByteCounts"
289
TRUE
"GrayResponseUnit"
290
FALSE
"GrayResponseCurve"
291
FALSE
"T4Options"
292
TRUE
"T6Options"
293
TRUE
"ResolutionUnit"
296
FALSE
"PageNumber"
297
TRUE
"TransferFunction"
301
FALSE
"Software"
305
FALSE
"DateTime"
306
FALSE
"Artist"
315
FALSE
"HostComputer"
316
FALSE
"Predictor"
317
TRUE
"WhitePoint"
318
FALSE
"PrimaryChromaticities"
319
FALSE
"ColorMap"
320
TRUE
"HalftoneHints"
321
FALSE
"TileWidth"
322
TRUE
"TileLength"
323
TRUE
"TileOffsets"
324
TRUE
"TileByteCounts"
325
TRUE
"InkSet"
332
FALSE
"InkNames"
333
FALSE
"NumberOfInks"
334
FALSE
"DotRange"
336
FALSE
"TargetPrinter"
337
FALSE
"ExtraSamples"
338
TRUE
"SampleFormat"
339
FALSE
"SMinSampleValue"
340
FALSE
"SMaxSampleValue"
341
FALSE
"TransferRange"
342
FALSE
"JPEGTables"
347
TRUE
"JPEGProc"
512
TRUE
"JPEGInterchangeFormat"
513
TRUE
"JPEGInterchangeFormatLngth"
514
TRUE
"JPEGRestartInterval"
515
TRUE
"JPEGLosslessPredictors"
517
TRUE
"JPEGPointTransforms"
518
TRUE
"JPEGQTables"
519
TRUE
"JPEGDCTables"
520
TRUE
"JPEGACTables"
521
TRUE
"YCbCrCoefficients"
529
FALSE
"YCbCrSubSampling"
530
TRUE
"YCbCrPositioning"
531
FALSE
"ReferenceBlackWhite"
532
FALSE
"Copyright"
33432
FALSE
"PhotoshopResources"
34377
FALSE
"ExifIFDPointer"
34665
TRUE
"GPSInfoIFDPointer"
34675
TRUE

NOTE: Please see file metadata.h for the full list of TIFF Metadata Item Name and Item Id constants.

TIFF Complex Data Tags

Some tags, which value is a complex data, can be passed in parsed form as following:

Name
Id
Type
Value Type
Value
Value Length
Read Only
<TagName>
<TagId>
LEVEL_START
0
NULL
0
TRUE
"TagType"
<TagId>
VALUE_ITEM
UINT16
<TagType>
1
FALSE
"TagCount"
<TagId>
VALUE_ITEM
UINT32
<TagCount>
1
FALSE
<Tag Value Block>: one or more metadata items that identify the tag value
<TagName>
<TagId>
LEVEL_END
0
NULL
0
TRUE

The <TagName> and <TagId> values are the tag name and identifier (available values see in the Table Photoshop Image Resource metadata structure). It is possible to use the tag identifier and value of nonstandard tag (user defined tag).

The <TagType> value is the standard TIFF tag type constant described in TIFF 6.0 specification.

Currently only TIFF tag with ID 34377, where Adobe Photoshop and some other TIFF writers save image recourses (IPTC data, resolution, some LUT etc.), is passed in this form. The <Tag Value Block> of these TIFF tag has structure described in the Table Photoshop Image Resource metadata structure below.

Photoshop Image Resource metadata structure

Name
Id
Type
Value Type
Value
Value Length
Read Only
"PhotoshopImageResource"
<Res. Id>
LEVEL_START
0
NULL
0
TRUE
"PhotoshopImageResourceSize"
<Res. Id>
VALUE_ITEM
UINT16
1
TRUE
Resource data
"DATA"
<Res. Id>
VALUE_ITEM
RAW_DATA
Variable
FALSE
Or in case the data are parsed (currently it is happen only if the resource is IPTC data)
"IPTC"
0x1C00
LEVEL_START
0
NULL
0
TRUE
...
"IPTC"
0x1C00
LEVEL_END
0
NULL
0
TRUE
"PhotoshopImageResource"
<Res. Id>
LEVEL_END
0
NULL
0
TRUE

Where the <Res. Id> is the Adobe Photoshop image resource identifier (see Adobe Photoshop SDK).

IPTC PhotoshopImageResource identifier is 0x0404.

Event required for writing TIFF metadata items

Value of TIFF metadata tags that are in the table below can be changed using IGMetaDataItemWrite event only:

Item Name
Item Id
"XResolution"
282
"YResolution"
283
"ResolutionUnit"
296
"PageNumber"
297
"Software"
305
"DateTime"
306
"Artist"
315
"FillOrder"
266
"DocumentName"
269

All the rest TIFF metadata tags values can be written using IGMetaDataItemAdd event only.

See also TIFF Metadata Item Name and ID constants.

TIFF Metadata Item Name and ID constants

IGMDTAG_NAME_TIF_FORMAT                  "TIFF"
IGMDTAG_NAME_TIF_TAG_TYPE                "TagType"
IGMDTAG_NAME_TIF_TAG_COUNT               "TagCount"
IGMDTAG_NAME_TIF_TAG_VALUE               "TagValue"
IGMDTAG_NAME_TIF_HEADER                  "TIF_HEADER"
IGMDTAG_NAME_TIF_NEW_SUBFILE_TYPE        "NewSubfileType"
IGMDTAG_NAME_TIF_SUBFILE_TYPE            "SubfileType"
IGMDTAG_NAME_TIF_IMAGE_WIDTH             "ImageWidth"
IGMDTAG_NAME_TIF_IMAGE_HEIGHT            "ImageLength"
IGMDTAG_NAME_TIF_BITS_PER_SAMPLE         "BitsPerSample"
IGMDTAG_NAME_TIF_COMPRESSION             "Compression"
IGMDTAG_NAME_TIF_PHOTO_INTERP
"PhotometricInterpretation"
IGMDTAG_NAME_TIF_THRESHOLDING            "Threshholding"
IGMDTAG_NAME_TIF_CELL_WIDTH              "CellWidth"
IGMDTAG_NAME_TIF_CELL_HEIGHT             "CellLength"
IGMDTAG_NAME_TIF_FILL_ORDER              "FillOrder"
IGMDTAG_NAME_TIF_DOC_NAME                "DocumentName"
IGMDTAG_NAME_TIF_DESCRIPTION             "ImageDescription"
IGMDTAG_NAME_TIF_MAKE                    "Make"
IGMDTAG_NAME_TIF_MODEL                   "Model"
IGMDTAG_NAME_TIF_STRIP_OFFSETS           "StripOffsets"
IGMDTAG_NAME_TIF_ORIENTATION             "Orientation"
IGMDTAG_NAME_TIF_SAMPLES_PER_PIXEL       "SamplesPerPixel"
IGMDTAG_NAME_TIF_ROWS_PER_STRIP          "RowsPerStrip"
IGMDTAG_NAME_TIF_STRIP_BYTE_COUNT        "StripByteCounts"
IGMDTAG_NAME_TIF_MIN_SAMPLE_VAL          "MinSampleValue"
IGMDTAG_NAME_TIF_MAX_SAMPLE_VAL          "MaxSampleValue"
IGMDTAG_NAME_TIF_X_RES                   "XResolution"
IGMDTAG_NAME_TIF_Y_RES                   "YResolution"
IGMDTAG_NAME_TIF_PLANAR_CONFIG           "PlanarConfiguration"
IGMDTAG_NAME_TIF_PAGE_NAME               "PageName"
IGMDTAG_NAME_TIF_X_POS                   "XPosition"
IGMDTAG_NAME_TIF_Y_POS                   "YPosition"
IGMDTAG_NAME_TIF_FREE_OFFSETS            "FreeOffsets"
IGMDTAG_NAME_TIF_FREE_BYTE_COUNTS        "FreeByteCounts"
IGMDTAG_NAME_TIF_GRAY_RESPONSE_UNIT      "GrayResponseUnit"
IGMDTAG_NAME_TIF_GRAY_RESPONSE_CURVE     "GrayResponseCurve"
IGMDTAG_NAME_TIF_T4_OPTIONS              "T4Options"
IGMDTAG_NAME_TIF_T6_OPTIONS              "T6Options"
IGMDTAG_NAME_TIF_RES_UNIT                "ResolutionUnit"
IGMDTAG_NAME_TIF_PAGE_NUMBER             "PageNumber"
IGMDTAG_NAME_TIF_TRANSFER_FUNC           "TransferFunction"
IGMDTAG_NAME_TIF_SOFTWARE                "Software"
IGMDTAG_NAME_TIF_DATE_TIME               "DateTime"
IGMDTAG_NAME_TIF_ARTIST                  "Artist"
IGMDTAG_NAME_TIF_HOST_COMPUTER           "HostComputer"
IGMDTAG_NAME_TIF_PREDICTOR               "Predictor"
IGMDTAG_NAME_TIF_WHITE_POINT             "WhitePoint"
IGMDTAG_NAME_TIF_PRIMARY_CHROMA          "PrimaryChromaticities"
IGMDTAG_NAME_TIF_COLOR_MAP               "ColorMap"
IGMDTAG_NAME_TIF_HALFTONE_HINTS          "HalftoneHints"
IGMDTAG_NAME_TIF_TILE_WIDTH              "TileWidth"
IGMDTAG_NAME_TIF_TILE_HEIGHT             "TileLength"
IGMDTAG_NAME_TIF_TILE_OFFSETS            "TileOffsets"
IGMDTAG_NAME_TIF_TILE_BYTE_COUNT         "TileByteCounts"
IGMDTAG_NAME_TIF_INK_SET                 "InkSet"
IGMDTAG_NAME_TIF_INK_NAMES               "InkNames"
IGMDTAG_NAME_TIF_NUMBER_OF_LINKS         "NumberOfInks"
IGMDTAG_NAME_TIF_DOT_RANGE               "DotRange"
IGMDTAG_NAME_TIF_TARGET_PRINTER          "TargetPrinter"
IGMDTAG_NAME_TIF_EXTRA_SAMPLES           "ExtraSamples"
IGMDTAG_NAME_TIF_SAMPLE_FORMAT           "SampleFormat"
IGMDTAG_NAME_TIF_SMIN_SAMPLE_VAL         "SMinSampleValue"
IGMDTAG_NAME_TIF_SMAX_SAMPLE_VAL         "SMaxSampleValue"
IGMDTAG_NAME_TIF_TRANSFER_RANGE          "TransferRange"
IGMDTAG_NAME_TIF_JPEG_TABLES             "JPEGTables" /* TIFF 7*/
IGMDTAG_NAME_TIF_JPEG_PROC               "JPEGProc"
IGMDTAG_NAME_TIF_JPEG_INTERCHANGE        "JPEGInterchangeFormat"
IGMDTAG_NAME_TIF_JPEG_INTERCHANGE_LEN
"JPEGInterchangeFormatLngth"
IGMDTAG_NAME_TIF_JPEG_RESTART_INTERVAL   "JPEGRestartInterval"
IGMDTAG_NAME_TIF_JPEG_LOSSLESS_PREDICTOR
"JPEGLosslessPredictors"
IGMDTAG_NAME_TIF_JPEG_POINT_TRANSFORMS   "JPEGPointTransforms"
IGMDTAG_NAME_TIF_JPEG_Q_TABLES           "JPEGQTables"
IGMDTAG_NAME_TIF_JPEG_DC_TABLES          "JPEGDCTables"
IGMDTAG_NAME_TIF_JPEG_AC_TABLES          "JPEGACTables"
IGMDTAG_NAME_TIF_YCBCR_COEFFICIENTS      "YCbCrCoefficients"
IGMDTAG_NAME_TIF_YCBCR_SUBSAMPLING       "YCbCrSubSampling"
IGMDTAG_NAME_TIF_YCBCR_POS               "YCbCrPositioning"
IGMDTAG_NAME_TIF_REFERENCE_BLACK_WHITE   "ReferenceBlackWhite"
IGMDTAG_NAME_TIF_COPYRIGHT               "Copyright"
IGMDTAG_NAME_TIF_PHOTOSHOP_RESOURCES     "PhotoshopResources"
IGMDTAG_NAME_TIF_ICC_PROFILE             "ICCColorProfile"
IGMDTAG_NAME_TIF_EXIF_SUBIFD             "ExifIFDPointer"
IGMDTAG_NAME_TIF_GPSINFO_SUBIFD          "GPSInfoIFDPointer"
IGMDTAG_NAME_TIF_IFD                     "IFD"
IGMDTAG_NAME_TIF_UNDEFINED               "UNDEFINED"
 IGMDTAG_ID_TIF_FORMAT                   = IG_FORMAT_TIF,
 IGMDTAG_ID_TIF_NEW_SUBFILE_TYPE         = 254,
 IGMDTAG_ID_TIF_SUBFILE_TYPE             = 255,
 IGMDTAG_ID_TIF_IMAGE_WIDTH              = 256,
 IGMDTAG_ID_TIF_IMAGE_HEIGHT             = 257,
 IGMDTAG_ID_TIF_BITS_PER_SAMPLE          = 258,
 IGMDTAG_ID_TIF_COMPRESSION              = 259,
 IGMDTAG_ID_TIF_PHOTO_INTERP             = 262,
 IGMDTAG_ID_TIF_THRESHOLDING             = 263,
 IGMDTAG_ID_TIF_CELL_WIDTH               = 264,
 IGMDTAG_ID_TIF_CELL_HEIGHT              = 265,
 IGMDTAG_ID_TIF_FILL_ORDER               = 266,
 IGMDTAG_ID_TIF_DOC_NAME                 = 269,
 IGMDTAG_ID_TIF_DESCRIPTION              = 270,
 IGMDTAG_ID_TIF_MAKE                     = 271,
 IGMDTAG_ID_TIF_MODEL                    = 272,
 IGMDTAG_ID_TIF_STRIP_OFFSETS            = 273,
 IGMDTAG_ID_TIF_ORIENTATION              = 274,
 IGMDTAG_ID_TIF_SAMPLES_PER_PIXEL        = 277,
 IGMDTAG_ID_TIF_ROWS_PER_STRIP           = 278,
 IGMDTAG_ID_TIF_STRIP_BYTE_COUNT         = 279,
 IGMDTAG_ID_TIF_MIN_SAMPLE_VAL           = 280,
 IGMDTAG_ID_TIF_MAX_SAMPLE_VAL           = 281,
 IGMDTAG_ID_TIF_X_RES                    = 282,
 IGMDTAG_ID_TIF_Y_RES                    = 283,
 IGMDTAG_ID_TIF_PLANAR_CONFIG            = 284,
 IGMDTAG_ID_TIF_PAGE_NAME                = 285,
 IGMDTAG_ID_TIF_X_POS                    = 286,
 IGMDTAG_ID_TIF_Y_POS                    = 287,
 IGMDTAG_ID_TIF_FREE_OFFSETS             = 288,
 IGMDTAG_ID_TIF_FREE_BYTE_COUNTS         = 289,
 IGMDTAG_ID_TIF_GRAY_RESPONSE_UNIT       = 290,
 IGMDTAG_ID_TIF_GRAY_RESPONSE_CURVE      = 291,
 IGMDTAG_ID_TIF_T4_OPTIONS               = 292,
 IGMDTAG_ID_TIF_T6_OPTIONS               = 293,
 IGMDTAG_ID_TIF_RES_UNIT                 = 296,
 IGMDTAG_ID_TIF_PAGE_NUMBER              = 297,
 IGMDTAG_ID_TIF_TRANSFER_FUNC            = 301,
 IGMDTAG_ID_TIF_SOFTWARE                 = 305,
 IGMDTAG_ID_TIF_DATE_TIME                = 306,
 IGMDTAG_ID_TIF_ARTIST                   = 315,
 IGMDTAG_ID_TIF_HOST_COMPUTER            = 316,
 IGMDTAG_ID_TIF_PREDICTOR                = 317,
 IGMDTAG_ID_TIF_WHITE_POINT              = 318,
 IGMDTAG_ID_TIF_PRIMARY_CHROMA           = 319,
 IGMDTAG_ID_TIF_COLOR_MAP                = 320,
 IGMDTAG_ID_TIF_HALFTONE_HINTS           = 321,
 IGMDTAG_ID_TIF_TILE_WIDTH               = 322,
 IGMDTAG_ID_TIF_TILE_HEIGHT              = 323,
 IGMDTAG_ID_TIF_TILE_OFFSETS             = 324,
 IGMDTAG_ID_TIF_TILE_BYTE_COUNT          = 325,
 IGMDTAG_ID_TIF_INK_SET                  = 332,
 IGMDTAG_ID_TIF_INK_NAMES                = 333,
 IGMDTAG_ID_TIF_NUMBER_OF_LINKS          = 334,
 IGMDTAG_ID_TIF_DOT_RANGE                = 336,
 IGMDTAG_ID_TIF_TARGET_PRINTER           = 337,
 IGMDTAG_ID_TIF_EXTRA_SAMPLES            = 338,
 IGMDTAG_ID_TIF_SAMPLE_FORMAT            = 339,
 IGMDTAG_ID_TIF_SMIN_SAMPLE_VAL          = 340,
 IGMDTAG_ID_TIF_SMAX_SAMPLE_VAL          = 341,
 IGMDTAG_ID_TIF_TRANSFER_RANGE           = 342,
 IGMDTAG_ID_TIF_JPEG_TABLES              = 347,
 IGMDTAG_ID_TIF_JPEG_PROC                = 512,
 IGMDTAG_ID_TIF_JPEG_INTERCHANGE         = 513,
 IGMDTAG_ID_TIF_JPEG_INTERCHANGE_LEN     = 514,
 IGMDTAG_ID_TIF_JPEG_RESTART_INTERVAL    = 515,
 IGMDTAG_ID_TIF_JPEG_LOSSLESS_PREDICTOR  = 517,
 IGMDTAG_ID_TIF_JPEG_POINT_TRANSFORMS    = 518,
 IGMDTAG_ID_TIF_JPEG_Q_TABLES            = 519,
 IGMDTAG_ID_TIF_JPEG_DC_TABLES           = 520,
 IGMDTAG_ID_TIF_JPEG_AC_TABLES           = 521,
 IGMDTAG_ID_TIF_YCBCR_COEFFICIENTS       = 529,
 IGMDTAG_ID_TIF_YCBCR_SUBSAMPLING        = 530,
 IGMDTAG_ID_TIF_YCBCR_POS                = 531,
 IGMDTAG_ID_TIF_REFERENCE_BLACK_WHITE    = 532,
 IGMDTAG_ID_TIF_COPYRIGHT                = 33432,
 IGMDTAG_ID_TIF_PHOTOSHOP_RESOURCES      = 34377,
 IGMDTAG_ID_TIF_EXIF_IFDPOINTER          = 34665,
 IGMDTAG_ID_TIF_ICC_PROFILE              = 34675,
 IGMDTAG_ID_TIF_GPSINFOIFDPOINTER        = 34853,
 IGMDTAG_ID_TIF_HEADER                   = 59936


JPEG Non-Image Data Structure

JPEG metadata structure is framed in several levels:

    • JPEG level containing all JPEG metadata,
    • JPEG marker segment levels containing metadata of each separated JPEG marker segment.

JPEG level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"JPEG-JFIF"
IG_FORMAT_JPG
LEVEL_START
0
NULL
0
TRUE
JPEG marker segment levels
"JPEG-JFIF"
IG_FORMAT_JPG
LEVEL_END
0
NULL
0
TRUE

All items between items with Name "JPEG-JFIF" and Id IG_FORMAT_JPG (Type LEVEL_START and LEVEL_END) are interpreted as JPEG metadata. If during sending data from application level to filter level the first item is omitted the data will not be parsed and saved.

JPEG marker segment levels

The following JPEG marker segments metadata are supported:

    • Frame marker segment level - SOF0, SOF1, SOF2 and SOF3 (read only),
    • Scan marker segment level - SOS (read only),
    • Define-quantization-table marker segment level - DQT (read only),
    • Define-Huffman-tables marker segment level - DHT (read only),
    • Comment marker segment level - COM (read/write),
    • Application marker segment level - APP0-APP15 (read/write).

Frame marker segment level

Name
Id
Type
Value Type
Value
Value Length
Read Only
<Frame marker name>
<Frame marker Id>
LEVEL_START
0
NULL
0
TRUE
<Frame marker size tag name>
<Frame marker size tag Id>
VALUE_ITEM
UINT16
1
TRUE
"Precision"
212
VALUE_ITEM
UINT8
1
TRUE
"Lines"
213
VALUE_ITEM
UINT16
1
TRUE
"SamplesPerLine"
214
VALUE_ITEM
UINT16
1
TRUE
"ComponentNumber"
215
VALUE_ITEM
UINT8
<n>
1
TRUE
Frame component level 1
Frame component level <n>
<Frame marker name>
<Frame marker Id>
LEVEL_END
0
NULL
0
TRUE

<Frame marker Id>, <Frame marker name>, <Frame marker size tag name> and <Frame marker size tag Id> are described in the table below:

Frame
Marker
<Frame
marker
name>
<Frame
marker Id>
<Frame marker
size tag name>
<Frame marker
size tag Id>
SOF0
"SOF0"
0xFFC0
"SOF0_DATASIZE"
60192
SOF1
"SOF1"
0xFFC1
"SOF1_DATASIZE"
60193
SOF2
"SOF2"
0xFFC2
"SOF2_DATASIZE"
60194
SOF3
"SOF3"
0xFFC3
"SOF3_DATASIZE"
60195

Frame component level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"Component"
<Component No.>
LEVEL_START
0
NULL
0
TRUE
"Id"
<Component No.>
VALUE_ITEM
UINT
1
TRUE
"MCU_HV"
<Component No.>
VALUE_ITEM
UINT
1
TRUE
"QuantizationNumber"
<Component No.>
VALUE_ITEM
UINT
1
TRUE
"Component"
<Component No.>
LEVEL_END
0
NULL
0
TRUE

NOTE: <Component No.> is frame component identifier of appropriate component.

Scan marker segment level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"SOS"
0xFFDA
LEVEL_START
0
NULL
0
TRUE
"SOS_DATASIZE"
60218
VALUE_ITEM
UINT16
1
TRUE
"ComponentNumber"
228
VALUE_ITEM
UINT8
<n>
1
TRUE
Scan component level 1
Scan component level <n>
"SpectralStart"
235
VALUE_ITEM
UINT8
1
TRUE
"SpectralEnd"
236
VALUE_ITEM
UINT8
TRUE
"AH_AL"
237
VALUE_ITEM
UINT8
TRUE
"SOS"
0xFFDA
LEVEL_START
0
NULL
0
TRUE

Scan component level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"Component"
<Component No.>
LEVEL_START
0
NULL
0
TRUE
"Selector"
<Component No.>
VALUE_ITEM
UINT8
1
TRUE
"DC_AC"
<Component No.>
VALUE_ITEM
UINT8
1
TRUE
"Component"
<Component No.>
LEVEL_END
0
NULL
0
TRUE

NOTE: <Component No.> is scan component selector of appropriate component.

Define-quantization-table marker segment level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"DQT"
0xFFDB
LEVEL_START
0
NULL
0
TRUE
"DQT_DATASIZE"
60219
VALUE_ITEM
UINT16
1
TRUE
"QuantizationTable"
<table 1 Id >
VALUE_ITEM
UINT8 or
UINT16
64
TRUE
"QuantizationTable"
<table 1 Id >
VALUE_ITEM
UINT8 or
UINT16
64
TRUE
"DQT"
0xFFDB
LEVEL_END
0
NULL
0
TRUE

NOTE: <table Id > is the appropriate quantization table identifier.

Define-Huffman-tables marker segment level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"DHT"
0xFFC4
LEVEL_START
0
NULL
0
TRUE
"DHT_DATASIZE"
60196
VALUE_ITEM
UINT16
1
TRUE
"DATA"
0xFFC4
VALUE_ITEM
RAW_DATA
<ValueSize>
TRUE
"DHT"
0xFFC4
LEVEL_END
0
NULL
0
TRUE

Comment marker segment level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"COM"
0xFFFE
LEVEL_START
0
NULL
0
TRUE
"COM_DATASIZE"
60254
VALUE_ITEM
UINT16
1
TRUE
"Comment"
0xFFFE
VALUE_ITEM
STRING
<ValueSize>
TRUE
"COM"
0xFFFE
LEVEL_END
0
NULL
0
TRUE

Application marker segment level

There are several application marker segments, which data structure is well known. These segments are parsed and their data are passed in special format.

These marker segments are:

    • JFIF APP0 segment
    • JFIF extension (JFXX) APP0 segment (read only)
    • EXIF APP1 segment
    • Photoshop Image Resource APP13 marker segment(it includes some IPTC data and another Photoshop Image Resource metadata structure)
    • Other application marker segment levels

JFIF APP0 segment

Name
Id
Type
Value Type
Value
Value Length
Read Only
"APP0"
0xFFE0
LEVEL_START
0
NULL
0
TRUE
"APP0_DATASIZE"
60224
VALUE_ITEM
UINT16
1
FALSE
"JFIF_HEADER"
200
VALUE_ITEM
STRING
JFIF
5
TRUE
"Version"
201
VALUE_ITEM
UINT16
1
FALSE
"ResolutionUnits"
202
VALUE_ITEM
UINT8
1
FALSE
"ResolutionX"
203
VALUE_ITEM
UINT16
1
FALSE
"ResolutionY"
204
VALUE_ITEM
UINT16
1
FALSE
"ThumbnailWidth"1
205
VALUE_ITEM
UINT8
1
TRUE
"ThumbnailHeight"2
206
VALUE_ITEM
UINT8
1
TRUE
"APP0"
0xFFE0
LEVEL_END
0
NULL
0
TRUE

1The thumbnail width tags are present only if the thumbnail is stored to JFIF segment.

2The thumbnail height tags are present only if the thumbnail is stored to JFIF segment.

JFIF extension (JFXX) APP0 segment

Name
Id
Type
Value Type
Value
Value Length
Read Only
"APP0"
0xFFE0
LEVEL_START
0
NULL
0
TRUE
"APP0_DATASIZE"
60224
VALUE_ITEM
UINT16
1
TRUE
"JFIF_EX_HEADER"
209
VALUE_ITEM
STRING
"JFXX"
5
TRUE
"ExtensionCode"
210
VALUE_ITEM
UINT8
1
TRUE
"APP0"
0xFFE0
LEVEL_END
0
NULL
0
TRUE

Photoshop Image Resource APP13 marker segment

Name
Id
Type
Value Type
Value
Value Length
Read Only
"APP13"
0xFFED
LEVEL_START
0
NULL
0
TRUE
"APP13_DATASIZE"
60237
VALUE_ITEM
UINT16
1
FALSE
"PHOTOSHOP_HEADER"
59915
VALUE_ITEM
STRING
"Photoshop 3.0"
14
FALSE
Photoshop Image Resource level 1
...
Photoshop Image Resource level n
"APP13"
0xFFED
LEVEL_END
0
NULL
0
TRUE

NOTE: For "Photoshop Image Resource" metadata structure see in TIFF non-image data Photoshop Image Resource metadata structure Table.

Other application marker segment levels

Name
Id
Type
Value Type
Value
Value Length
Read Only
<Marker name>
<Marker Id>
LEVEL_START
0
NULL
0
TRUE
<Marker size tag name>
<Marker size tag Id>
VALUE_ITEM
UINT16
1
FALSE
"DATA"
<Marker Id>
VALUE_ITEM
RAW_DATA
<ValueSize>
FALSE
<Marker name>
<Marker Id>
LEVEL_END
0
NULL
0
TRUE

<Marker Id>, <Marker name>, <Marker size tag name> and <Marker size tag Id> are in table below:

Marker
<Marker
name>
<Marker
Id>
<Marker size tag
name>
<Marker size tag
Id>
APP0
"APP0"
0xFFE0
"APP0_DATASIZE"
60224
APP1
"APP1"
0xFFE1
"APP1_DATASIZE"
60225
APP2
"APP2"
0xFFE2
"APP2_DATASIZE"
60226
APP3
"APP3"
0xFFE3
"APP3_DATASIZE"
60227
APP4
"APP4"
0xFFE4
"APP4_DATASIZE"
60228
APP5
"APP5"
0xFFE5
"APP5_DATASIZE"
60229
APP6
"APP6"
0xFFE6
"APP6_DATASIZE"
60230
APP7
"APP7"
0xFFE7
"APP7_DATASIZE"
60231
APP8
"APP8"
0xFFE8
"APP8_DATASIZE"
60232
APP9
"APP9"
0xFFE9
"APP9_DATASIZE"
60233
APP10
"APP10"
0xFFEA
"APP10_DATASIZE"
60234
APP11
"APP11"
0xFFEB
"APP11_DATASIZE"
60235
APP12
"APP12"
0xFFEC
"APP12_DATASIZE"
60236
APP13
"APP13"
0xFFED
"APP13_DATASIZE"
60237
APP14
"APP14"
0xFFEE
"APP14_DATASIZE"
60238
APP15
"APP15"
0xFFEF
"APP15_DATASIZE"
60239

Event required for writing JPEG metadata items

All JPEG metadata items can be written using IGMetaDataItemAdd event only.

See also JPEG Metadata Item Name and ID constants.

JPEG Metadata Item Name and ID constants

IGMDTAG_NAME_JPG_FORMAT                   "JPEG-JFIF"
IGMDTAG_NAME_JPG_JFIF_HEADER              "JFIF_HEADER"
IGMDTAG_NAME_JPG_JFIF_EX_HEADER           "JFIF_EX_HEADER"
IGMDTAG_NAME_JPG_JFIF_EX_CODE             "ExtensionCode"
IGMDTAG_NAME_JPG_JFIF_VERSION             "Version"
IGMDTAG_NAME_JPG_JFIF_UNITS               "ResolutionUnits"
IGMDTAG_NAME_JPG_JFIF_X_RES               "ResolutionX"
IGMDTAG_NAME_JPG_JFIF_Y_RES               "ResolutionY"
IGMDTAG_NAME_JPG_THUMB_WIDTH              "ThumbnailWidth"
IGMDTAG_NAME_JPG_THUMB_HEIGHT             "ThumbnailHeight"
IGMDTAG_NAME_JPG_QUANT                    "QuantizationTable"
IGMDTAG_NAME_JPG_FRAME_PRECISION          "Precision"
IGMDTAG_NAME_JPG_FRAME_LINES              "Lines"
IGMDTAG_NAME_JPG_FRAME_SAMPPL             "SamplesPerLine"
IGMDTAG_NAME_JPG_FRAME_COMPS              "ComponentNumber"
IGMDTAG_NAME_JPG_FRAME_COMP               "Component"
IGMDTAG_NAME_JPG_FRAME_COMPID             "Id"
IGMDTAG_NAME_JPG_FRAME_MCU_HV             "MCU_HV"
IGMDTAG_NAME_JPG_FRAME_QUANT              "QuantizationNumber"
IGMDTAG_NAME_JPG_SCAN_COMPS               "ComponentNumber"
IGMDTAG_NAME_JPG_SCAN_COMP                "Component"
IGMDTAG_NAME_JPG_SCAN_SELECTOR            "Selector"
IGMDTAG_NAME_JPG_SCAN_DC_AC               "DC_AC"
IGMDTAG_NAME_JPG_SCAN_SP_START            "SpectralStart"
IGMDTAG_NAME_JPG_SCAN_SP_END              "SpectralEnd"
IGMDTAG_NAME_JPG_SCAN_AH_AL               "AH_AL"
IGMDTAG_NAME_JPG_SOF0                     "SOF0"
IGMDTAG_NAME_JPG_SOF1                     "SOF1"
IGMDTAG_NAME_JPG_SOF2                     "SOF2"
IGMDTAG_NAME_JPG_SOF3                     "SOF3"
IGMDTAG_NAME_JPG_DQT                      "DQT"
IGMDTAG_NAME_JPG_DHT                      "DHT"
IGMDTAG_NAME_JPG_SOS                      "SOS"
IGMDTAG_NAME_JPG_DRI                      "DRI"
IGMDTAG_NAME_JPG_APP0                     "APP0"
IGMDTAG_NAME_JPG_APP1                     "APP1"
IGMDTAG_NAME_JPG_APP2                     "APP2"
IGMDTAG_NAME_JPG_APP3                     "APP3"
IGMDTAG_NAME_JPG_APP4                     "APP4"
IGMDTAG_NAME_JPG_APP5                     "APP5"
IGMDTAG_NAME_JPG_APP6                     "APP6"
IGMDTAG_NAME_JPG_APP7                     "APP7"
IGMDTAG_NAME_JPG_APP8                     "APP8"
IGMDTAG_NAME_JPG_APP9                     "APP9"
IGMDTAG_NAME_JPG_APP10                    "APP10"
IGMDTAG_NAME_JPG_APP11                    "APP11"
IGMDTAG_NAME_JPG_APP12                    "APP12"
IGMDTAG_NAME_JPG_APP13                    "APP13"
IGMDTAG_NAME_JPG_APP14                    "APP14"
IGMDTAG_NAME_JPG_APP15                    "APP15"
IGMDTAG_NAME_JPG_COM                      "COM"
IGMDTAG_NAME_JPG_SOF0_SIZE                "SOF0_DATASIZE"
IGMDTAG_NAME_JPG_SOF1_SIZE                "SOF1_DATASIZE"
IGMDTAG_NAME_JPG_SOF2_SIZE                "SOF2_DATASIZE"
IGMDTAG_NAME_JPG_SOF3_SIZE                "SOF3_DATASIZE"
IGMDTAG_NAME_JPG_DQT_SIZE                 "DQT_DATASIZE"
IGMDTAG_NAME_JPG_DHT_SIZE                 "DHT_DATASIZE"
IGMDTAG_NAME_JPG_SOS_SIZE                 "SOS_DATASIZE"
IGMDTAG_NAME_JPG_APP0_SIZE                "APP0_DATASIZE"
IGMDTAG_NAME_JPG_APP1_SIZE                "APP1_DATASIZE"
IGMDTAG_NAME_JPG_APP2_SIZE                "APP2_DATASIZE"
IGMDTAG_NAME_JPG_APP3_SIZE                "APP3_DATASIZE"
IGMDTAG_NAME_JPG_APP4_SIZE                "APP4_DATASIZE"
IGMDTAG_NAME_JPG_APP5_SIZE                "APP5_DATASIZE"
IGMDTAG_NAME_JPG_APP6_SIZE                "APP6_DATASIZE"
IGMDTAG_NAME_JPG_APP7_SIZE                "APP7_DATASIZE"
IGMDTAG_NAME_JPG_APP8_SIZE                "APP8_DATASIZE"
IGMDTAG_NAME_JPG_APP9_SIZE                "APP9_DATASIZE"
IGMDTAG_NAME_JPG_APP10_SIZE               "APP10_DATASIZE"
IGMDTAG_NAME_JPG_APP11_SIZE               "APP11_DATASIZE"
IGMDTAG_NAME_JPG_APP12_SIZE               "APP12_DATASIZE"
IGMDTAG_NAME_JPG_APP13_SIZE               "APP13_DATASIZE"
IGMDTAG_NAME_JPG_APP14_SIZE               "APP14_DATASIZE"
IGMDTAG_NAME_JPG_APP15_SIZE               "APP15_DATASIZE"
IGMDTAG_NAME_JPG_COM_SIZE                 "APP16_DATASIZE"
IGMDTAG_NAME_JPG_PHOT_HEADER              "PHOTOSHOP_HEADER"
IGMDTAG_NAME_JPG_PHOT_RES
"PhotoshopImageResource"
IGMDTAG_NAME_JPG_PHOT_RES_SIZE
"PhotoshopImageResourceSize"
IGMDTAG_NAME_JPG_COMMENTDATA              "Comment"
IGMDTAG_NAME_JPG_SEGMENTDATA              "DATA"
 IGMDTAG_ID_JPG_FORMAT                  =IG_FORMAT_JPG,
 IGMDTAG_ID_JPG_JFIF_HEADER             =200,
 IGMDTAG_ID_JPG_JFIF_VERSION            =201,
 IGMDTAG_ID_JPG_JFIF_UNITS              =202,
 IGMDTAG_ID_JPG_JFIF_X_RES              =203,
 IGMDTAG_ID_JPG_JFIF_Y_RES              =204,
 IGMDTAG_ID_JPG_THUMB_WIDTH             =205,
 IGMDTAG_ID_JPG_THUMB_HEIGHT            =206,
 IGMDTAG_ID_JPG_JFIF_EX_HEADER          =209,
 IGMDTAG_ID_JPG_JFIF_EX_CODE            =210,
 IGMDTAG_ID_JPG_FRAME_PRECISION         =212,
 IGMDTAG_ID_JPG_FRAME_LINES             =213,
 IGMDTAG_ID_JPG_FRAME_SAMPPL            =214,
 IGMDTAG_ID_JPG_FRAME_COMPS             =215,
 IGMDTAG_ID_JPG_SCAN_COMPS              =228,
 IGMDTAG_ID_JPG_SCAN_SP_START           =235,
 IGMDTAG_ID_JPG_SCAN_SP_END             =236,
 IGMDTAG_ID_JPG_SCAN_AH_AL              =237,
 IGMDTAG_ID_JPG_PHOT_HEADER             =59915,
 IGMDTAG_ID_JPG_SOF0_SIZE               =60192,
 IGMDTAG_ID_JPG_SOF1_SIZE               =60193,
 IGMDTAG_ID_JPG_SOF2_SIZE               =60194,
 IGMDTAG_ID_JPG_SOF3_SIZE               =60195,
 IGMDTAG_ID_JPG_DHT_SIZE                =60196,
 IGMDTAG_ID_JPG_SOS_SIZE                =60218,
 IGMDTAG_ID_JPG_DQT_SIZE                =60219,

 IGMDTAG_ID_JPG_APP0_SIZE               =60224,
 IGMDTAG_ID_JPG_APP1_SIZE               =60225,
 IGMDTAG_ID_JPG_APP2_SIZE               =60226,
 IGMDTAG_ID_JPG_APP3_SIZE               =60227,
 IGMDTAG_ID_JPG_APP4_SIZE               =60228,
 IGMDTAG_ID_JPG_APP5_SIZE               =60229,
 IGMDTAG_ID_JPG_APP6_SIZE               =60230,
 IGMDTAG_ID_JPG_APP7_SIZE               =60231,
 IGMDTAG_ID_JPG_APP8_SIZE               =60232,
 IGMDTAG_ID_JPG_APP9_SIZE               =60233,
 IGMDTAG_ID_JPG_APP10_SIZE              =60234,
 IGMDTAG_ID_JPG_APP11_SIZE              =60235,
 IGMDTAG_ID_JPG_APP12_SIZE              =60236,
 IGMDTAG_ID_JPG_APP13_SIZE              =60237,
 IGMDTAG_ID_JPG_APP14_SIZE	             =60238,
 IGMDTAG_ID_JPG_APP15_SIZE	             =60239,
 IGMDTAG_ID_JPG_COM_SIZE                =60254,
 IGMDTAG_ID_JPG_SOF0                    =65472,
 IGMDTAG_ID_JPG_SOF1                    =65473,
 IGMDTAG_ID_JPG_SOF2                    =65474,
 IGMDTAG_ID_JPG_SOF3                    =65475,
 IGMDTAG_ID_JPG_DHT                     =65476,
 IGMDTAG_ID_JPG_SOS                     =65498,
 IGMDTAG_ID_JPG_DQT                     =65499,
 IGMDTAG_ID_JPG_DRI                     =65501,
 IGMDTAG_ID_JPG_APP0                    =65504,
 IGMDTAG_ID_JPG_APP1                    =65505,
 IGMDTAG_ID_JPG_APP2                    =65506,
 IGMDTAG_ID_JPG_APP3                    =65507,
 IGMDTAG_ID_JPG_APP4                    =65508,
 IGMDTAG_ID_JPG_APP5                    =65509,
 IGMDTAG_ID_JPG_APP6                    =65510,
 IGMDTAG_ID_JPG_APP7                    =65511,
 IGMDTAG_ID_JPG_APP8                    =65512,
 IGMDTAG_ID_JPG_APP9                    =65513,
 IGMDTAG_ID_JPG_APP10                   =65514,
 IGMDTAG_ID_JPG_APP11                   =65515,
 IGMDTAG_ID_JPG_APP12                   =65516,
 IGMDTAG_ID_JPG_APP13                   =65517,
 IGMDTAG_ID_JPG_APP14                   =65518,
 IGMDTAG_ID_JPG_APP15                   =65519,
 IGMDTAG_ID_JPG_COM                     =65534


EXIF-TIFF Non-Image Data Structure

EXIF-TIFF metadata structure is framed in several levels -

    • EXIF-TIFF level containing all EXIF-TIFF data
    • IFD0 level
    • Tag levels

EXIF-TIFF level

The EXIF-TIFF metadata structure is similar to TIFF's one. But EXIF-TIFF allows Exif subIFD tags, GPS subIFD tags and thumbnail IFD tags to be parsed and passed together with main IFD.

Name
Id
Type
Value Type
Value
Value Length
Read Only
"EXIF"
IG_FORMAT_EXIF_TIFF
LEVEL_START
0
NULL
0
TRUE
"TIF_HEADER"
59936
VALUE_ITEM
UINT16
0x4949 or
0x4D4D
1
TRUE
IFD 0 level ( if present)
Thumbnail IFD level ( if present)
"EXIF"
IG_FORMAT_EXIF_TIFF
LEVEL_END
0
NULL
0
TRUE

All items between items with Name "EXIF" and Id IG_FORMAT_EXIF_TIFF (Type LEVEL_START and LEVEL_END) are interpreted as EXIF data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.

See also Exif subIFD tags for the list of Exif subIFD tag names and Ids.

IFD0 level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"IFD"
0
LEVEL_START
0
NULL
0
TRUE
Exif subIFD, GPS info subIFD and tags levels mixed in any way
"IFD"
0
LEVEL_END
0
NULL
0
TRUE

Exif subIFD level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"IFD"
34665
LEVEL_START
0
NULL
0
TRUE
Interoperability info subIFD and tags levels mixed in any way
"IFD"
34665
LEVEL_END
0
NULL
0
TRUE

The number 34665 is the Exif subIFD pointer tag (see below)

IFD1 (Thumbnail IFD), GPS info subIFD and Interoperability info subIFD levels

Name
Id
Type
Value Type
Value
Value Length
Read Only
"IFD"
<IFDId>
LEVEL_START
0
NULL
0
TRUE
Tag 1
...
Tag n
"IFD"
<IFDId>
LEVEL_END
0
NULL
0
TRUE

The value of <IFDId> is 1 for IFD1 or the subIFD pointer tag identifier for GPS (34853)(see GPS subIFD tags) or Interoperability (40965) subIFD (see Interoperability subIFD tags).

Tag levels

For tag metadata structure see TIFF Non-Image Data Structure.

Description of tags used in EXIF

There are such types of EXIF tags described:

    • Exif subIFD tags
    • GPS subIFD tags
    • Interoperability subIFD tags

For IFD0 and Thumbnail IFD tags see TIFF Non-Image Data Structure.

Exif subIFD tags

Item Name
Item Id
Read Only
"ExposureTime"
33434
FALSE
"Fnumber"
33437
FALSE
"ExposureProgram"
34850
FALSE
"SpectralSensitivity"
34852
FALSE
"ISOSpeedRatings"
34855
FALSE
"OECF"
34856
FALSE
"ExifVersion"
36864
FALSE
"DateTimeOriginal"
36867
FALSE
"DateTimeDigitized"
36868
FALSE
"ComponentsConfiguration"
37121
FALSE
"CompressedBitsPerPixel"
37122
FALSE
"ShutterSpeedValue"
37377
FALSE
"ApertureValue"
37378
FALSE
"BrightnessValue"
37379
FALSE
"ExposureBiasValue"
37380
FALSE
"MaxApertureValue"
37381
FALSE
"SubjectDistance"
37382
FALSE
"MeteringMode"
37383
FALSE
"LightSource"
37384
FALSE
"Flash"
37385
FALSE
"FocalLength"
37386
FALSE
"SubjectArea"
37396
FALSE
"MakerNote"
37500
FALSE
"UserComment"
37510
FALSE
"SubSecTime"
37520
FALSE
"SubSecTimeOriginal"
37521
FALSE
"SubSecTimeDigitized"
37522
FALSE
"FlashPixVersion"
40960
FALSE
"ColorSpace"
40961
FALSE
"PixelXDimension"
40962
TRUE
"PixelYDimension"
40963
TRUE
"RelatedSoundFile"
40964
FALSE
"InteroperabilityIFDPointer"
40965
TRUE
"FlashEnergy"
41483
FALSE
"SpatialFrequencyResponse"
41484
FALSE
"FocalPlaneXResolution"
41486
FALSE
"FocalPlaneYResolution"
41487
FALSE
"FocalPlaneResolutionUnit"
41488
FALSE
"SubjectLocation"
41492
FALSE
"ExposureIndex"
41493
FALSE
"SensingMethod"
41495
FALSE
"FileSource"
41728
FALSE
"SceneType"
41729
FALSE
"CFAPattern"
41730
FALSE
"CustomRendered"
41985
FALSE
"ExposureMode"
41986
FALSE
"WhiteBalance"
41987
FALSE
"DigitalZoomRatio"
41988
FALSE
"FocalLengthIn35mmFilm"
41989
FALSE
"SceneCaptureType"
41990
FALSE
"GainControl"
41991
FALSE
"Contrast"
41992
FALSE
"Saturation"
41993
FALSE
"Sharpness"
41994
FALSE
"DeviceSettingDescription"
41995
FALSE
"SubjectDistanceRange"
41996
FALSE
"ImageUniqueID"
42016
FALSE

GPS subIFD tags

Item Name
Item Id
Read Only
"GPSVersionID"
0
FALSE
"GPSLatitudeRef"
1
FALSE
"GPSLatitude"
2
FALSE
"GPSLongitudeRef"
3
FALSE
"GPSLongitude"
4
FALSE
"GPSAltitudeRef"
5
FALSE
"GPSAltitude"
6
FALSE
"GPSTimeStamp"
7
FALSE
"GPSSatellites"
8
FALSE
"GPSStatus"
9
FALSE
"GPSMeasureMode"
10
FALSE
"GPSDOP"
11
FALSE
"GPSSpeedRef"
12
FALSE
"GPSSpeed"
13
FALSE
"GPSTrackRef"
14
FALSE
"GPSTrack"
15
FALSE
"GPSImgDirectionRef"
16
FALSE
"GPSImgDirection"
17
FALSE
"GPSMapDatum"
18
FALSE
"GPSDestLatitudeRef"
19
FALSE
"GPSDestLatitude"
20
FALSE
"GPSDestLongitudeRef"
21
FALSE
"GPSDestLongitude"
22
FALSE
"GPSDestBearingRef"
23
FALSE
"GPSDestBearing"
24
FALSE
"GPSDestDistanceRef"
25
FALSE
"GPSDestDistance"
26
FALSE
"GPSProcessingMethod"
27
FALSE
"GPSAreaInformation"
28
FALSE
"GPSDateStamp"
29
FALSE
"GPSDifferential"
30
FALSE

Interoperability subIFD tags

Item Name
Item Id
Read Only
"InteroperabilityIndex "
1
FALSE
"InteroperabilityVersion "
2
FALSE
"RelatedImageFileFormat"
4096
FALSE
"RelatedImageWidth "
4097
FALSE
"RelatedImageLength"
4098
FALSE


EXIF-JPEG Non-image Data Structure

The EXIF-JPEG metadata structure is similar to JPEG one. But EXIF-JPEG sends the Exif APP1 marker segment data in parsed form and Jfif APP0 marker segment data is not parsed and sent as raw data.

EXIF-JPEG level

All items between items with Name "EXIF" and Id IG_FORMAT_EXIF_JPEG (Type LEVEL_START and LEVEL_END) are interpreted as EXIF data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.

For JPEG marker segment levels see JPEG Non-Image Data Structure.

Name
Id
Type
Value Type
Value
Value Length
Read Only
"EXIF-JPEG"
IG_FORMAT_EXIF_JPEG
LEVEL_START
0
NULL
0
TRUE
Exif APP1 marker segment level
JPEG marker segment levels mixed in any way (if present)
"EXIF-JPEG"
IG_FORMAT_EXIF_JPEG
LEVEL_END
0
NULL
0
TRUE

Exif APP1 marker segment level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"APP1"
65505
LEVEL_START
0
NULL
0
TRUE
"APP1_DATASIZE"
60225
VALUE_ITEM
UINT16
<Data>
1
TRUE
"EXIF_HEADER"
59935
VALUE_ITEM
STRING
"EXIF"
5
TRUE
"TIF_HEADER"
59936
VALUE_ITEM
UINT16
0x4949 or
0x4D4D
1
TRUE
IFD 0 level ( if present )
Thumbnail IFD level ( if present )
"APP1"
0xFFE1
LEVEL_END
0
NULL
0
TRUE

NOTE: The "APP1_DATASIZE" item can be omitted during saving.

For more detailed Exif information see EXIF-TIFF Non-Image Data Structure.

EXIF Makernote

Makernote is a standard EXIF tag of UNDEFINED (byte) type. This tag usually is used as a "hidden" IFD. Makernote can not be read in and written out as a BLOB, because IFD offsets become invalid. Therefore, to preserve this tag while writing an image it's necessary to decode it during reading and re-encode it during writing, despite the fact that formally makernote is just a binary tag.

There are several types of makernotes, all of them have corresponding constants in Metadata.h file:

IG_MAKERNOTE_TYPE_UNKNOWN
This is the default type. This type means that we can't decect Makernote as any other type. Preserving such makernote and saving it with the file, most likely, does not make any sence, because IFD offsets will be corrupted.
IG_MAKERNOTE_TYPE_IFD
Makernote is a valid TIF IFD, except that it is not referenced from anywhere in the file, and does not reference other IFDs. Such makernote is preserved entirely when writing to a file.
IG_MAKERNOTE_TYPE_IFD_PREFIXED
Same as IG_MAKERNOTE_TYPE_IFD, but with a short prefix before the IFD. The prefix is also preserved, so the whole Makernote*s* is preserved when writing to a file.
IG_MAKERNOTE_TYPE_TIF_HEADER_PREFIXED
Makernote starts with a prefix, then goes TIF image header, which points to an IFD.
IG_MAKERNOTE_TYPE_IFD_PREFIXED_OFFSET_II
Makernote starts with a prefix, then goes offset to the IFD, then IFD itself. Makernote IFD uses Intel byte ordering (II), even though the whole file uses Motorola ordering.

To present Makernote info in a convenient way ImageGear introduces a special structure as an addition to the standard EXIF Metadata: "Makernote*s* Wrapper IFD". Instead of a single binary Makernote*s* tag (37500), we are adding a virtual IFD, containing all the information about Makernote*s*.

'MakerNote Wrapper IFD' has the following format depending on the 'type' tag:

    1. Type IG_MAKERNOTE_TYPE_UNKNOWN:
'MakerNote wrapper IFD'
-------->'type' = IG_MAKERNOTE_TYPE_UNKNOWN
-------->'binary MakerNote'
    1. Type IG_MAKERNOTE_TYPE_IFD:
'MakerNote wrapper IFD'
-------->'type' = IG_MAKERNOTE_TYPE_IFD
-------->'MakerNote IFD'
----------------> 'individual MakerNote tag 1'
----------------> 'individual MakerNote tag 2'
...
----------------> 'individual MakerNote tag N'
-------->'binary MakerNote'
    1. Type IG_MAKERNOTE_TYPE_IFD_PREFIXED:
'MakerNote wrapper IFD'
-------->'type' = IG_MAKERNOTE_TYPE_IFD_PREFIXED
-------->'MakerNote IFD prefix'
-------->'MakerNote IFD'
----------------> 'individual MakerNote tag 1'
----------------> 'individual MakerNote tag 2'
...
----------------> 'individual MakerNote tag N'
-------->'binary MakerNote'
    1. Type IG_MAKERNOTE_TYPE_TIF_HEADER_PREFIXED:
'MakerNote wrapper IFD'
-------->'type' = IG_MAKERNOTE_TYPE_TIF_HEADER_PREFIXED
<The rest of the structure is identical to
IG_MAKERNOTE_TYPE_IFD_PREFIXED>

  1. Type IG_MAKERNOTE_TYPE_IFD_PREFIXED_OFFSET_II:
    2.

'MakerNote wrapper IFD'
-------->'type' = IG_MAKERNOTE_TYPE_IFD_PREFIXED_OFFSET_II
<The rest of the structure is identical to
IG_MAKERNOTE_TYPE_IFD_PREFIXED>

If 'Makernote' EXIF tag is present in the file then ImageGear will always provide it in its original binary form via meta-data callback ('binary Makernote' tag) on the read side, and will also optionally provide it as a decoded sub-IFD (w/ or w/o prefix depending on how it is stored in the original file) if it can be decoded.

ImageGear will ignore 'binary Makernote' tag on the write side for the 'Makernote wrapper IFDs' that have 'type' other than IG_MAKERNOTE_TYPE_UNKNOWN - and construct 'Makernote' EXIF tag based on the 'Makernote IFD'.

ImageGear will store 'binary Makernote' to file 'as is' for the 'Makernote wrapper IFDs' that have 'type' set to IG_MAKERNOTE_TYPE_UNKNOWN.

If 'Makernote wrapper IFD' is not provided to ImageGear during saving operation then 'Makernote' EXIF tag will not be saved into the output file.

Makernote IFD tags are listed below:

Name
Id
Type
Value Type
Value
Value Length
Read Only
"IFD"
***)
LEVEL_START
0
NULL
FALSE
"MakerNoteType"
VALUE_ITEM
UINT16
*)
1
FALSE
"MakerNotePrefix"
VALUE_ITEM
RAW_DATA
"FPXR"
FALSE
"MakerNoteBinary"
VALUE_ITEM
RAW_DATA
FALSE
"IFD"
LEVEL_START
0
NULL
0
FALSE
"UNDEFINED"**)
VALUE_ITEM
RAW_DATA
FALSE
...
"IFD"
LEVEL_END
0
NULL
0
FALSE
"IFD"
LEVEL_END
0
NULL
FALSE

*) One of the following enumIGEXIFMakerNoteType constants:

IG_MAKERNOTE_TYPE_UNKNOWN = 0
IG_MAKERNOTE_TYPE_IFD = 1
IG_MAKERNOTE_TYPE_IFD_PREFIXED = 2
IG_MAKERNOTE_TYPE_TIF_HEADER_PREFIXED = 3
IG_MAKERNOTE_TYPE_IFD_PREFIXED_OFFSET_II = 4

**) Manufacturer specific tags, not covered by EXIF standard.

***) See respective IGMDTAG_ID_EXIF_MAKERNOTE_ Id constants in the section Custom Makernote Tags and IFDs

Custom Makernote Tags and IFDs

The following custom tags and IFDs are introduced for Makernote support:

Makernote Wrapper IFD: tag = 37500 (same as standard Makernote tag). This IFD is located in the "Exif IFD" (34665).

New tags, which belong to the Makernote Wrapper IFD:

enum enumIGEXIFMakerNoteTagIDs
{
IGMDTAG_ID_EXIF_MAKERNOTE_TYPE = 1,
IGMDTAG_ID_EXIF_MAKERNOTE_PREFIX = 2,
IGMDTAG_ID_EXIF_MAKERNOTE_BINARY = 1000,
IGMDTAG_ID_EXIF_MAKERNOTE_DATA_IFD = 1001
};

Vendors and models currently supported

Make
Model
Canon
Canon DIGITAL IXUS
Canon
Canon EOS D30
Canon
Canon PowerShot G2
Canon
Canon PowerShot S50
FUJIFILM
FinePix4900Z
LEICA
digilux 4.3
Minolta Co., Ltd.
DiMAGE 7i
Nikon
E5000 (TIF)
NIKON
E5700
NIKON
E950
OLYMPUS OPTICAL CO.,LTD
C2040Z
OLYMPUS OPTICAL CO.,LTD
C960Z,D460Z
Panasonic
DMC-LC5
RICOH
Caplio RR1
SANYO Electric Co.,Ltd.
SR6
SANYO Electric Co.,Ltd.
SX113
SANYO Electric Co.,Ltd.
SX212
SEIKO EPSON CORP.
PhotoPC 850Z

Exif APP2 marker segment (FlashPix extensions) levels

Exif file format allows to store Flashpix extensions in APP2 marker segments. There are several types of FPXR APP2 marker segments described below:

  • FPXR Contents List APP2 marker segment
  • Interoperability Entity level
  • FPXR Data Stream APP2 marker segment
  • The other FPXR APP2 marker segment

FPXR Contents List APP2 marker segment

Name
Id
Type
Value Type
Value
Value Length
Read Only
"APP2"
0xFFE2
LEVEL_START
0
NULL
0
TRUE
"APP2_DATASIZE"
60226
VALUE_ITEM
UINT16
1
TRUE
"FPXR_HEADER"
61221
VALUE_ITEM
STRING
"FPXR"
4
FALSE
"FPXRVersion"
61222
VALUE_ITEM
UINT8
1
FALSE
"FPXRExtensionID"
61223
VALUE_ITEM
UINT8
"1"
1
FALSE
"FPXRInteroperabilityCount"
61224
VALUE_ITEM
UINT16
<n>
1
FALSE
Interoperability Entity level 0
...
Interoperability Entity level <n> - 1
"APP2"
0xFFE2
LEVEL_END
0
NULL
0
TRUE

Interoperability Entity level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"InteroperabilityEntity"
<Ind.>
LEVEL_START
0
NULL
0
TRUE
"EntitySize"
<Ind.>
VALUE_ITEM
UINT32
0xFFFFFFFF for Storage or
<Variable> for Stream
1
FALSE
"DefaultValue"
<Ind.>
VALUE_ITEM
UINT8
"FPXR"
4
FALSE
"Storage/StreamName"
<Ind.>
VALUE_ITEM
RAW_DATA
<Unicode name>
<Variable>
FALSE
The next item is present only if "EntitySize" item value is equal 0xFFFFFFFF (Storage)
"EntityClassID"
<Ind.>
VALUE_ITEM
RAW_DATA
16
FALSE
"InteroperabilityEntity"
<Ind.>
LEVEL_END
0
NULL
0
TRUE

FPXR Data Stream APP2 marker segment

Name
Id
Type
Value Type
Value
Value Length
Read Only
"APP2"
0xFFE2
LEVEL_START
0
NULL
0
TRUE
"APP2_DATASIZE"
60226
VALUE_ITEM
UINT16
1
TRUE
"FPXR_HEADER"
61221
VALUE_ITEM
STRING
"FPXR"
4
FALSE
"FPXRVersion"
61222
VALUE_ITEM
UINT8
1
FALSE
"FPXRExtensionID"
61223
VALUE_ITEM
UINT8
"2"
1
FALSE
"FPXRIndexToContentsList"
61225
VALUE_ITEM
UINT16
<Ind.>
1
FALSE
"FPXROffsetToStream"
61226
VALUE_ITEM
UINT32
1
FALSE
"FPXRStreamData"
61227
VALUE_ITEM
RAW_DATA
<Variable>
FALSE
"APP2"
0xFFE2
LEVEL_END
0
NULL
0
TRUE

<Ind.> is pointer to appropriate "InteroperabilityEntity" of FPXR Contents List APP2 marker segment. <Ind.> value is between 0 and <n> - 1(<n> is the "FPXRInteroperabilityCount" item value of FPXR Contents List APP2 marker segment).

The other FPXR APP2 marker segment

Name
Id
Type
Value Type
Value
Value Length
Read Only
"APP2"
0xFFE2
LEVEL_START
0
NULL
0
TRUE
"APP2_DATASIZE"
60226
VALUE_ITEM
UINT16
1
TRUE
"FPXR_HEADER"
61221
VALUE_ITEM
STRING
"FPXR"
4
FALSE
"FPXRVersion"
61222
VALUE_ITEM
UINT8
1
FALSE
"FPXRExtensionID"
61223
VALUE_ITEM
UINT8
More than "2"
1
FALSE
"FPXRData"
61228
VALUE_ITEM
RAW_DATA
<Variable>
FALSE
"APP2"
0xFFE2
LEVEL_END
0
NULL
0
TRUE

Event required for writing EXIF metadata items.

Value of these tags can be changed using IGMetaDataItemWrite event only.

Item Name
Item Id
"TIF_HEADER"
59936
IFD0 tags
"PlanarConfiguration"
284
"YCbCrSubSampling"
530
"RowsPerStrip"
278
"YCbCrPositioning"
531
"XResolution"
282
"YResolution"
283
"ResolutionUnit"
296
Exif subIFD
"ExifVersion"
36864
"FlashPixVersion"
40960
"ColorSpace"
40961
Thumbnail IFD
"ImageWidth"
256
"ImageLength"
257
"PlanarConfiguration"
284
"YCbCrSubSampling"
530
"RowsPerStrip"
278
"YCbCrPositioning"
531
"XResolution"
282
"YResolution"
283
"ResolutionUnit"
296

The rest of metadata item values can be written using IGMetaDataItemAdd event only.

See also EXIF-TIFF, EXIF-JPEG and EXIF-FPX Metadata Item Name and ID constants.

EXIF-TIFF, EXIF-JPEG and EXIF-FPX Metadata Item Name and ID constants

IGMDTAG_NAME_EXIF_HEADER                 "EXIF_HEADER"
IGMDTAG_NAME_EXIF_FORMAT                 "EXIF"
/* GPS IFD tag names*/
IGMDTAG_NAME_EXIF_GPS_VERSIONID           "GPSVersionID"
IGMDTAG_NAME_EXIF_GPS_LATITUDEREF         "GPSLatitudeRef"
IGMDTAG_NAME_EXIF_GPS_LATITUDE            "GPSLatitude"
IGMDTAG_NAME_EXIF_GPS_LONGITUDEREF        "GPSLongitudeRef"
IGMDTAG_NAME_EXIF_GPS_LONGITUDE           "GPSLongitude"
IGMDTAG_NAME_EXIF_GPS_ALTITUDEREF         "GPSAltitudeRef"
IGMDTAG_NAME_EXIF_GPS_ALTITUDE            "GPSAltitude"
IGMDTAG_NAME_EXIF_GPS_TIMESTAMP           "GPSTimeStamp"
IGMDTAG_NAME_EXIF_GPS_SATELLITES          "GPSSatellites"
IGMDTAG_NAME_EXIF_GPS_STATUS              "GPSStatus"
IGMDTAG_NAME_EXIF_GPS_MEASUREMODE         "GPSMeasureMode"
IGMDTAG_NAME_EXIF_GPS_DOP                 "GPSDOP"
IGMDTAG_NAME_EXIF_GPS_SPEEDREF            "GPSSpeedRef"
IGMDTAG_NAME_EXIF_GPS_SPEED               "GPSSpeed"
IGMDTAG_NAME_EXIF_GPS_TRACKREF            "GPSTrackRef"
IGMDTAG_NAME_EXIF_GPS_TRACK               "GPSTrack"
IGMDTAG_NAME_EXIF_GPS_IMGDIRECTIONREF     "GPSImgDirectionRef"
IGMDTAG_NAME_EXIF_GPS_IMGDIRECTION        "GPSImgDirection"
IGMDTAG_NAME_EXIF_GPS_MAPDATUM            "GPSMapDatum"
IGMDTAG_NAME_EXIF_GPS_DESTLATITUDEREF     "GPSDestLatitudeRef"
IGMDTAG_NAME_EXIF_GPS_DESTLATITUDE        "GPSDestLatitude"
IGMDTAG_NAME_EXIF_GPS_DESTLONGITUDEREF    "GPSDestLongitudeRef"
IGMDTAG_NAME_EXIF_GPS_DESTLONGITUDE       "GPSDestLongitude"
IGMDTAG_NAME_EXIF_GPS_DESTBEARINGREF      "GPSDestBearingRef"
IGMDTAG_NAME_EXIF_GPS_DESTBEARING         "GPSDestBearing"
IGMDTAG_NAME_EXIF_GPS_DESTDISTANCEREF     "GPSDestDistanceRef"
IGMDTAG_NAME_EXIF_GPS_DESTDISTANCE        "GPSDestDistance"
IGMDTAG_NAME_EXIF_GPS_PROCESSINGMETHOD    "GPSProcessingMethod"
IGMDTAG_NAME_EXIF_GPS_AREAINFORMATION     "GPSAreaInformation"
IGMDTAG_NAME_EXIF_GPS_DATESTAMP           "GPSDateStamp"
IGMDTAG_NAME_EXIF_GPS_DIFFERENTIAL        "GPSDifferential"
/* Exif IFD tag names */
IGMDTAG_NAME_EXIF_EXPOSURETIME             "ExposureTime"
IGMDTAG_NAME_EXIF_FNUMBER                  "FNumber"
IGMDTAG_NAME_EXIF_EXPOSUREPROGRAM          "ExposureProgram"
IGMDTAG_NAME_EXIF_SPECTRALSENSITIVITY      "SpectralSensitivity"
IGMDTAG_NAME_EXIF_ISOSPEEDRATING           "ISOSpeedRatings"
IGMDTAG_NAME_EXIF_OECF                     "OECF"
IGMDTAG_NAME_EXIF_VERSION                  "ExifVersion"
IGMDTAG_NAME_EXIF_DATETIMEORIGINAL         "DateTimeOriginal"
IGMDTAG_NAME_EXIF_DATETIMEDIGITIZED        "DateTimeDigitized"
IGMDTAG_NAME_EXIF_COMPONENTCONFIGURATION
"ComponentsConfiguration"
IGMDTAG_NAME_EXIF_COMPRESSEDBITSPERPIXEL
"CompressedBitsPerPixel"
IGMDTAG_NAME_EXIF_SHUTTERSPEEDVALUE        "ShutterSpeedValue"
IGMDTAG_NAME_EXIF_APERTUREVALUE            "ApertureValue"
IGMDTAG_NAME_EXIF_BRIGHTNESSVALUE          "BrightnessValue"
IGMDTAG_NAME_EXIF_EXPOSUREBIASVALUE        "ExposureBiasValue"
IGMDTAG_NAME_EXIF_MAXAPERTUREVALUE         "MaxApertureValue"
IGMDTAG_NAME_EXIF_SUBJECTDISTANCE          "SubjectDistance"
IGMDTAG_NAME_EXIF_MATERINGMODE             "MeteringMode"
IGMDTAG_NAME_EXIF_LIGHTSOURCE              "LightSource"
IGMDTAG_NAME_EXIF_FLASH                    "Flash"
IGMDTAG_NAME_EXIF_FOCALLENGTH              "FocalLength"
IGMDTAG_NAME_EXIF_SUBJECTAREA              "SubjectArea"
IGMDTAG_NAME_EXIF_MAKERNOTE                "MakerNote"
IGMDTAG_NAME_EXIF_USERCOMMENT              "UserComment"
IGMDTAG_NAME_EXIF_SUBSECTIME               "SubSecTime"
IGMDTAG_NAME_EXIF_SUBSECTIMEORIGINAL       "SubSecTimeOriginal"
IGMDTAG_NAME_EXIF_SUBSECTIMEDIGITIZED      "SubSecTimeDigitized"
IGMDTAG_NAME_EXIF_FLASHPIXVERSION          "FlashPixVersion"
IGMDTAG_NAME_EXIF_COLORSPACE               "ColorSpace"
IGMDTAG_NAME_EXIF_PIXELXDIMENSION          "PixelXDimension"
IGMDTAG_NAME_EXIF_PIXELYDIMENSION          "PixelYDimension"
IGMDTAG_NAME_EXIF_RELATEDSOUNDFILE         "RelatedSoundFile"
IGMDTAG_NAME_EXIF_INTEROPERABILITYIFD
"InteroperabilityIFDPointer"
IGMDTAG_NAME_EXIF_FLASHENERGY              "FlashEnergy"
IGMDTAG_NAME_EXIF_SPATIALFREQUENCYRESPONSE
"SpatialFrequencyResponse"
IGMDTAG_NAME_EXIF_FOCALPLANEXRESOLUTION
"FocalPlaneXResolution"
IGMDTAG_NAME_EXIF_FOCALPLANEYRESOLUTION
"FocalPlaneYResolution"
IGMDTAG_NAME_EXIF_FOCALPLANERESOLUTIONUNIT
"FocalPlaneResolutionUnit"
IGMDTAG_NAME_EXIF_SUBJECTLOCATION          "SubjectLocation"
IGMDTAG_NAME_EXIF_EXPOSUREINDEX            "ExposureIndex"
IGMDTAG_NAME_EXIF_SENSINGMETHOD            "SensingMethod"
IGMDTAG_NAME_EXIF_FILESOURCE               "FileSource"
IGMDTAG_NAME_EXIF_SCENETYPE                "SceneType"
IGMDTAG_NAME_EXIF_CFAPATTERN               "CFAPattern"
IGMDTAG_NAME_EXIF_CUSTOMRENDERED           "CustomRendered"
IGMDTAG_NAME_EXIF_EXPOSUREMODE             "ExposureMode"
IGMDTAG_NAME_EXIF_WHITEBALANCE             "WhiteBalance"
IGMDTAG_NAME_EXIF_DIGITALZOOMRATIO         "DigitalZoomRatio"
IGMDTAG_NAME_EXIF_FOCALLENGTHIN35MMFILM
"FocalLengthIn35mmFilm"
IGMDTAG_NAME_EXIF_SCENECAPTURETYPE         "SceneCaptureType"
IGMDTAG_NAME_EXIF_GAINCONTROL              "GainControl"
IGMDTAG_NAME_EXIF_CONTRAST                 "Contrast"
IGMDTAG_NAME_EXIF_SATURATION               "Saturation"
IGMDTAG_NAME_EXIF_SHARPNESS                "Sharpness"
IGMDTAG_NAME_EXIF_DEVICESETTINGDESCRIPTION
"DeviceSettingDescription"
IGMDTAG_NAME_EXIF_SUBJECTDISTANCERANGE
"SubjectDistanceRange"
IGMDTAG_NAME_EXIF_IMAGEUNIQUEID            "ImageUniqueID"
/* Interoperability IFD tag names*/
IGMDTAG_NAME_EXIF_IO_INTEROPERABILITYINDEX
"InteroperabilityIndex"
IGMDTAG_NAME_EXIF_IO_INTEROPERABILITYVERSION
"InteroperabilityVersion"
IGMDTAG_NAME_EXIF_IO_RELATEDIMAGEFILEFORMAT
"RelatedImageFileFormat"
IGMDTAG_NAME_EXIF_IO_RELATEDIMAGEWIDTH       "RelatedImageWidth"
IGMDTAG_NAME_EXIF_IO_RELATEDIMAGELENGTH
"RelatedImageLength"
IGMDTAG_NAME_EXIF_FPX_HEADER                "FPXR_HEADER"
IGMDTAG_NAME_EXIF_FPX_VERSION               "FPXRVersion"
IGMDTAG_NAME_EXIF_FPX_EXTENSIONID           "FPXRExtensionID"
IGMDTAG_NAME_EXIF_FPX_INTEROPERABILITYCOUNT
"FPXRInteroperabilityCount"
IGMDTAG_NAME_EXIF_FPX_INTEROPERABILITY
"InteroperabilityEntity"
IGMDTAG_NAME_EXIF_FPX_ENTITYSIZE            "EntitySize"
IGMDTAG_NAME_EXIF_FPX_DEFAULTVALUE          "DefaultValue"
IGMDTAG_NAME_EXIF_FPX_STORAGE_STREAMNAME    "Storage/
StreamName"
IGMDTAG_NAME_EXIF_FPX_ENTITYCLASSID         "EntityClassID"
IGMDTAG_NAME_EXIF_FPX_INDEXTOCONTENTSLIST
"FPXRIndexToContentsList"
IGMDTAG_NAME_EXIF_FPX_OFFSETTOSTREAM        "FPXROffsetToStream"
IGMDTAG_NAME_EXIF_FPX_STREAMDATA            "FPXRStreamData"
IGMDTAG_NAME_EXIF_FPX_RESERVEDDATA          "FPXRData"
 IGMDTAG_ID_EXIF_JPEG_FORMAT              = IG_FORMAT_EXIF_JPEG,
 IGMDTAG_ID_EXIF_TIFF_FORMAT              = IG_FORMAT_EXIF_TIFF,
 IGMDTAG_ID_EXIF_EXPOSURETIME             = 33434,
 IGMDTAG_ID_EXIF_FNUMBER                  = 33437,
 IGMDTAG_ID_EXIF_EXPOSUREPROGRAM          = 34850,
 IGMDTAG_ID_EXIF_SPECTRALSENSITIVITY      = 34852,
 IGMDTAG_ID_EXIF_ISOSPEEDRATING           = 34855,
 IGMDTAG_ID_EXIF_OECF                     = 34856,
 IGMDTAG_ID_EXIF_VERSION                  = 36864,
 IGMDTAG_ID_EXIF_DATETIMEORIGINAL         = 36867,
 IGMDTAG_ID_EXIF_DATETIMEDIGITIZED        = 36868,
 IGMDTAG_ID_EXIF_COMPONENTCONFIGURATION   = 37121,
 IGMDTAG_ID_EXIF_COMPRESSEDBITSPERPIXEL   = 37122,
 IGMDTAG_ID_EXIF_SHUTTERSPEEDVALUE        = 37377,
 IGMDTAG_ID_EXIF_APERTUREVALUE            = 37378,
 IGMDTAG_ID_EXIF_BRIGHTNESSVALUE          = 37379,
 IGMDTAG_ID_EXIF_EXPOSUREBIASVALUE        = 37380,
 IGMDTAG_ID_EXIF_MAXAPERTUREVALUE         = 37381,
 IGMDTAG_ID_EXIF_SUBJECTDISTANCE          = 37382,
 IGMDTAG_ID_EXIF_MATERINGMODE             = 37383,
 IGMDTAG_ID_EXIF_LIGHTSOURCE              = 37384,
 IGMDTAG_ID_EXIF_FLASH                    = 37385,
 IGMDTAG_ID_EXIF_FOCALLENGTH              = 37386,
 IGMDTAG_ID_EXIF_SUBJECTAREA              = 37396,
 IGMDTAG_ID_EXIF_MAKERNOTE                = 37500,
 IGMDTAG_ID_EXIF_USERCOMMENT              = 37510,
 IGMDTAG_ID_EXIF_SUBSECTIME               = 37520,
 IGMDTAG_ID_EXIF_SUBSECTIMEORIGINAL       = 37521,
 IGMDTAG_ID_EXIF_SUBSECTIMEDIGITIZED      = 37522,
 IGMDTAG_ID_EXIF_FLASHPIXVERSION          = 40960,
 IGMDTAG_ID_EXIF_COLORSPACE               = 40961,
 IGMDTAG_ID_EXIF_PIXELXDIMENSION          = 40962,
 IGMDTAG_ID_EXIF_PIXELYDIMENSION          = 40963,
 IGMDTAG_ID_EXIF_RELATEDSOUNDFILE         = 40964,
 IGMDTAG_ID_EXIF_INTEROPERABILITYIFD      = 40965,
 IGMDTAG_ID_EXIF_FLASHENERGY              = 41483,
 IGMDTAG_ID_EXIF_SPATIALFREQUENCYRESPONSE = 41484,
 IGMDTAG_ID_EXIF_FOCALPLANEXRESOLUTION    = 41486,
 IGMDTAG_ID_EXIF_FOCALPLANEYRESOLUTION    = 41487,
 IGMDTAG_ID_EXIF_FOCALPLANERESOLUTIONUNIT = 41488,
 IGMDTAG_ID_EXIF_SUBJECTLOCATION          = 41492,
 IGMDTAG_ID_EXIF_EXPOSUREINDEX            = 41493,
 IGMDTAG_ID_EXIF_SENSINGMETHOD            = 41495,
 IGMDTAG_ID_EXIF_FILESOURCE               = 41728,
 IGMDTAG_ID_EXIF_SCENETYPE                = 41729,
 IGMDTAG_ID_EXIF_CFAPATTERN               = 41730,
 IGMDTAG_ID_EXIF_CUSTOMRENDERED           = 41985,
 IGMDTAG_ID_EXIF_EXPOSUREMODE             = 41986,
 IGMDTAG_ID_EXIF_WHITEBALANCE             = 41987,
 IGMDTAG_ID_EXIF_DIGITALZOOMRATIO         = 41988,
 IGMDTAG_ID_EXIF_FOCALLENGTHIN35MMFILM    = 41989,
 IGMDTAG_ID_EXIF_SCENECAPTURETYPE         = 41990,
 IGMDTAG_ID_EXIF_GAINCONTROL              = 41991,
 IGMDTAG_ID_EXIF_CONTRAST                 = 41992,
 IGMDTAG_ID_EXIF_SATURATION               = 41993,
 IGMDTAG_ID_EXIF_SHARPNESS                = 41994,
 IGMDTAG_ID_EXIF_DEVICESETTINGDESCRIPTION = 41995,
 IGMDTAG_ID_EXIF_SUBJECTDISTANCERANGE     = 41996,
 IGMDTAG_ID_EXIF_IMAGEUNIQUEID            = 42016,
 IGMDTAG_ID_EXIF_HEADER                   = 59935
 IGMDTAG_ID_EXIF_GPS_VERSIONID            = 0,
 IGMDTAG_ID_EXIF_GPS_LATITUDEREF          = 1,
 IGMDTAG_ID_EXIF_GPS_LATITUDE             = 2,
 IGMDTAG_ID_EXIF_GPS_LONGITUDEREF         = 3,
 IGMDTAG_ID_EXIF_GPS_LONGITUDE            = 4,
 IGMDTAG_ID_EXIF_GPS_ALTITUDEREF          = 5,
 IGMDTAG_ID_EXIF_GPS_ALTITUDE             = 6,
 IGMDTAG_ID_EXIF_GPS_TIMESTAMP            = 7,
 IGMDTAG_ID_EXIF_GPS_SATELLITES           = 8,
 IGMDTAG_ID_EXIF_GPS_STATUS               = 9,
 IGMDTAG_ID_EXIF_GPS_MEASUREMODE          = 10,
 IGMDTAG_ID_EXIF_GPS_DOP                  = 11,
 IGMDTAG_ID_EXIF_GPS_SPEEDREF             = 12,
 IGMDTAG_ID_EXIF_GPS_SPEED                = 13,
 IGMDTAG_ID_EXIF_GPS_TRACKREF             = 14,
 IGMDTAG_ID_EXIF_GPS_TRAK                 = 15,
 IGMDTAG_ID_EXIF_GPS_IMGDIRECTIONREF      = 16,
 IGMDTAG_ID_EXIF_GPS_IMGDIRECTION         = 17,
 IGMDTAG_ID_EXIF_GPS_MAPDATUM             = 18,
 IGMDTAG_ID_EXIF_GPS_DESTLATITUDEREF      = 19,
 IGMDTAG_ID_EXIF_GPS_DESTLATITUDE         = 20,
 IGMDTAG_ID_EXIF_GPS_DESTLONGITUDEREF     = 21,
 IGMDTAG_ID_EXIF_GPS_DESTLONGITUDE        = 22,
 IGMDTAG_ID_EXIF_GPS_DESTBEARINGREF       = 23,
 IGMDTAG_ID_EXIF_GPS_DESTBEARING          = 24,
 IGMDTAG_ID_EXIF_GPS_DESTDISTANCEREF      = 25,
 IGMDTAG_ID_EXIF_GPS_DESTDISTANCE         = 26,
 IGMDTAG_ID_EXIF_GPS_PROCESSINGMETHOD     = 27,
 IGMDTAG_ID_EXIF_GPS_AREAINFORMATION      = 28,
 IGMDTAG_ID_EXIF_GPS_DATESTAMP            = 29,
 IGMDTAG_ID_EXIF_GPS_DIFFERENTIAL         = 30
 IGMDTAG_ID_EXIF_IO_INTEROPERABILITYINDEX    = 1,
 IGMDTAG_ID_EXIF_IO_INTEROPERABILITYVERSION  = 2,
 IGMDTAG_ID_EXIF_IO_RELATEDIMAGEFILEFORMAT   = 4096,
 IGMDTAG_ID_EXIF_IO_RELATEDIMAGEWIDTH        = 4097,
 IGMDTAG_ID_EXIF_IO_RELATEDIMAGELENGTH       = 4098
 IGMDTAG_ID_EXIF_FPX_HEADER                  = 61221,
 IGMDTAG_ID_EXIF_FPX_VERSION                 = 61222,
 IGMDTAG_ID_EXIF_FPX_EXTENSIONID             = 61223,
 IGMDTAG_ID_EXIF_FPX_INTEROPERABILITYCOUNT   = 61224,
 IGMDTAG_ID_EXIF_FPX_INDEXTOCONTENTSLIST     = 61225,
 IGMDTAG_ID_EXIF_FPX_OFFSETTOSTREAM          = 61226,
 IGMDTAG_ID_EXIF_FPX_STREAMDATA              = 61227,
 IGMDTAG_ID_EXIF_FPX_RESERVEDDATA            = 61228


CIFF Non-Image Data Structure

CIFF metadata is similar to EXIF-TIFF, but it uses multiple nested IFDs, structured as a tree.

Brief information on CIFF metadata levels is provided in the set of tables below.

NOTE: Please see file metadata.h for the full list of CIFF Metadata Item Name and Item Id constants.

CIFF level

Name
Id
Type
"CIFF"
IG_FORMAT_CIFF
LEVEL_START
ImageProps level
CIFF root tags
"CIFF"
IG_FORMAT_CIFF
LEVEL_END

ImageProps level

Name
Id
Type
"ImageProps"
IGMDTAG_ID_CIFF_IMAGE_PROPS
LEVEL_START
ImageInfo level
ImageDescription level
CameraObject level
ShootingRecord level
MeasuredInfo level
ExifInformation level
ImageProps tags
"ImageProps"
IGMDTAG_ID_CIFF_IMAGE_PROPS
LEVEL_END

ImageInfo level

Name
Id
Type
"ImageInfo"
IGMDTAG_ID_CIFF_IMAGE_INFO
LEVEL_START
ImageInfo tags
"ImageInfo"
IGMDTAG_ID_CIFF_IMAGE_INFO
LEVEL_END

ImageDescription level

Name
Id
Type
"ImageDescription"
IGMDTAG_ID_CIFF_IMAGE_DESCRIPTION
LEVEL_START
ImageDescription tags
"ImageDescription"
IGMDTAG_ID_CIFF_IMAGE_DESCRIPTION
LEVEL_END

CameraObject level

Name
Id
Type
"CameraObject"
IGMDTAG_ID_CIFF_CAMERA_OBJECT
LEVEL_START
CameraSpecification level
CameraObject tags
"CameraObject"
IGMDTAG_ID_CIFF_CAMERA_OBJECT
LEVEL_END

ShootingRecord level

Name
Id
Type
"ShootingRecord"
IGMDTAG_ID_CIFF_SHOOTING_RECORD
LEVEL_START
ShootingRecord tags
"ShootingRecord"
IGMDTAG_ID_CIFF_SHOOTING_RECORD
LEVEL_END

MeasuredInfo level

Name
Id
Type
"MeasuredInfo"
IGMDTAG_ID_CIFF_MEASURED_INFO
LEVEL_START
MeasuredInfo tags
"MeasuredInfo"
IGMDTAG_ID_CIFF_MEASURED_INFO
LEVEL_END

ExifInformation level

Name
Id
Type
"ExifInformation"
IGMDTAG_ID_CIFF_EXIF_INFORMATION
LEVEL_START
FocalLength level
CanonShotInfo level
CanonCameraSettings level
SensorInfo level
CanonCustomFunctions level
CanonPictureInfo level
ExifInformation tags
"ExifInformation"
IGMDTAG_ID_CIFF_EXIF_INFORMATION
LEVEL_END

CameraSpecification level

Name
Id
Type
"CameraSpecification"
IGMDTAG_ID_CIFF_CAMERA_SPECIFICATION
LEVEL_START
CameraSpecification tags
"CameraSpecification"
IGMDTAG_ID_CIFF_CAMERA_SPECIFICATION
LEVEL_END

FocalLength level

Name
Id
Type
"FocalLength"
IGMDTAG_NAME_CIFF_FOCAL_LENGTH
LEVEL_START
FocalLength tags
"FocalLength"
IGMDTAG_NAME_CIFF_FOCAL_LENGTH
LEVEL_END

CanonShotInfo level

Name
Id
Type
"CanonShotInfo"
IGMDTAG_NAME_CIFF_CANON_SHOT_INFO
LEVEL_START
CanonShotInfo tags
"CanonShotInfo"
IGMDTAG_NAME_CIFF_CANON_SHOT_INFO
LEVEL_END

CanonCameraSettings level

Name
Id
Type
"CanonCameraSettings"
IGMDTAG_NAME_CIFF_CANON_CAMERA_SETTINGS
LEVEL_START
CanonCameraSettings tags
"CanonCameraSettings"
IGMDTAG_NAME_CIFF_CANON_CAMERA_SETTINGS
LEVEL_END

SensorInfo level

Name
Id
Type
"SensorInfo"
IGMDTAG_NAME_CIFF_SENSOR_INFO
LEVEL_START
SensorInfo tags
"SensorInfo"
IGMDTAG_NAME_CIFF_SENSOR_INFO
LEVEL_END

CanonCustomFunctions level

Name
Id
Type
"CanonCustomFunctions"
IGMDTAG_NAME_CIFF_CANON_CUSTOM_FUNCTIONS
LEVEL_START
CanonCustomFunctions tags
"CanonCustomFunctions"
IGMDTAG_NAME_CIFF_CANON_CUSTOM_FUNCTIONS
LEVEL_END

CanonPictureInfo level

Name
Id
Type
"CanonPictureInfo"
IGMDTAG_NAME_CIFF_CANON_PICTURE_INFO
LEVEL_START
CanonPictureInfo tags
"CanonPictureInfo"
IGMDTAG_NAME_CIFF_CANON_PICTURE_INFO
LEVEL_END


IPTC Non-Image Data Structure

IPTC, International Press and Telecommunications Council Standards have been created for different type information exchanging.

IPTC is not file format. It can be stored within the JPEG, TIFF, EXIF-JPEG and EXIF-TIFF image file as Adobe Photoshop Image Resource (see Photoshop Image Resource metadata structure). In TIFF and EXIF-TIFF files the IPTC data is stored in TIFF tag with Id = 34377 (see TIFF Non-Image Data Structure for metadata structure of the tag). In JPEG and EXIF-JPEG files the IPTC data is stored in Photoshop APP13 marker segment (see JPEG Non-Image Data Structure).

The ImageGear IPTC metadata structure is framed in two levels:

    • IPTC level containing all IPTC data
    • Record level containing value items of a record.

IPTC level

Name
Id
Type
ValueType
Value
Value Length
Read Only
"IPTC"
0x1C00
LEVEL_START
UNDEFINED
NULL
0
TRUE
Record level 1
...
Record level n
"IPTC"
0x1C00
LEVEL_END
UNDEFINED
NULL
0
TRUE

All items between items with Name "IPTC" and Id 0x1C00 (Type LEVEL_START and LEVEL_END) are interpreted as IPTC data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.

Record level

Name
Id
Type
ValueType
Value
Value Length
Read Only
"IPTC_RECORD"
<Record#>
LEVEL_START
UNDEFINED
NULL
0
TRUE
Dataset value item
...
Dataset value item
"IPTC_RECORD"
<Record#>
LEVEL_END
UNDEFINED
NULL
0
TRUE

The <Record#> is identifier of IPTC record. Its value is the number of appropriate IPTC record described in IPTC - NAA IIM4 specification. Record levels must follow in numerical order within IPTC level.

Dataset value item

Name
Id
Type
ValueType
Value
Value Length
Read Only
<Dataset name>
<Dataset Id>
VALUE_ITEM
<Value Type>
<Data>
<Value Length>
FALSE

The available <Dataset name>, <Dataset Id>, <Value Length> and <Value Type> values are described below for each IPTC record according to IPTC-NAA IIM4 specification. Dataset value item can follow in any order within appropriate record level.

Dataset value items description for IPTC Envelope Record (Record #1).

Item Identifier
Item Name
Value Type
Max. Value Length
(for String last NULL is not counted)
0
"ModelVersion"
AT_TID_WORD
1
5
"Destination"
AT_TID_STRING
1024
20
"FileFormat"
AT_TID_WORD
1
22
"FileFormatVersion"
AT_TID_WORD
1
30
"ServiceIdentifier"
AT_TID_STRING
10
40
"EnvelopeNumber"
AT_TID_STRING
8
50
"ProductID"
AT_TID_STRING
32
60
"EnvelopePriority"
AT_TID_STRING
1
70
"DateSent"
AT_TID_STRING
8
80
"TimeSent"
AT_TID_STRING
11
90
"CodedCharacterSet"
AT_TID_STRING
32
100
"UNO"
AT_TID_STRING
80
120
"ARMIdentifier"
AT_TID_WORD
1
122
"ARMVersion"
AT_TID_WORD
1

Dataset value items description for IPTC Application Record (Record #2)

Item Identifier
Item Name
Value Type
Max. Value Length
(for String last NULL is not counted)
0
"RecordVersion"
AT_TID_WORD
1
3
"ObjectTypeReference"
AT_TID_STRING
67
4
"ObjectAttributeReference"
AT_TID_STRING
68
5
"ObjectName"
AT_TID_STRING
64
7
"EditStatus"
AT_TID_STRING
64
8
"EditorialUpdate"
AT_TID_STRING
2
10
"Urgency"
AT_TID_STRING
1
12
"SubjectReference"
AT_TID_STRING
236
15
"Category"
AT_TID_STRING
3
20
"SupplementalCategory"
AT_TID_STRING
32
22
"FixtureIdentifier"
AT_TID_STRING
32
25
"Keywords"
AT_TID_STRING
64
26
"ContentLocationCode"
AT_TID_STRING
3
27
"ContentLocationName"
AT_TID_STRING
64
30
"ReleaseDate"
AT_TID_STRING
8
35
"ReleaseTime"
AT_TID_STRING
11
37
"ExpirationDate"
AT_TID_STRING
8
38
"ExpirationTime"
AT_TID_STRING
11
40
"SpecialInstructions"
AT_TID_STRING
256
42
"ActionAdvised"
AT_TID_STRING
2
45
"ReferenceService"
AT_TID_STRING
10
47
"ReferenceDate"
AT_TID_STRING
8
50
"ReferenceNumber"
AT_TID_STRING
8
55
"DateCreated"
AT_TID_STRING
8
60
"TimeCreated"
AT_TID_STRING
11
62
"DigitalCreationDate"
AT_TID_STRING
8
63
"DigitalCreationTime"
AT_TID_STRING
11
65
"OriginatingProgram"
AT_TID_STRING
32
70
"ProgramVersion"
AT_TID_STRING
10
75
"ObjectCycle"
AT_TID_STRING
1
80
"By-line"
AT_TID_STRING
32
85
"By-lineTitle"
AT_TID_STRING
32
90
"City"
AT_TID_STRING
32
92
"Sublocation"
AT_TID_STRING
32
95
"Province/State"
AT_TID_STRING
32
100
"Country/
PrimaryLocationCode"
AT_TID_STRING
3
101
"Country/
PrimaryLocationName"
AT_TID_STRING
64
103
"OriginalTransmission
Reference"
AT_TID_STRING
32
105
"Headline"
AT_TID_STRING
256
110
"Credit"
AT_TID_STRING
32
115
"Source"
AT_TID_STRING
32
116
"CopyrightNotice"
AT_TID_STRING
128
118
"Contact"
AT_TID_STRING
128
120
"Caption/Abstract"
AT_TID_STRING
2000
122
"Writer/Editor"
AT_TID_STRING
32
125
"RasterizedCaption"
AT_TID_BYTE
7360
130
"ImageType"
AT_TID_STRING
2
131
"ImageOrientation"
AT_TID_STRING
1
135
"LanguageIdentifier"
AT_TID_STRING
3
150
"AudioType"
AT_TID_STRING
2
151
"AudioSamplingRate"
AT_TID_STRING
6
152
"AudioSamplingResolution"
AT_TID_STRING
2
153
"AudioDuration"
AT_TID_STRING
6
154
"AudioOutcue"
AT_TID_STRING
64
200
"ObjectDataPreview
FileFormat"
AT_TID_WORD
1
201
"ObjectDataPreview
FileFormatVersion"
AT_TID_WORD
1
202
"ObjectDataPreviewData"
AT_TID_BYTE
Undefined

Dataset value items description for IPTC Digital News Photo Parameter Record (Record #3)

Item Identifier
Item Name
Value Type
Max. Value Length (for String last NULL is not counted)
0
"RecordVersion"
AM_TID_TXT_UINT16
1
10
"PictureNumber"
AM_TID_RAW_DATA
16
20
"PixelsPerLine"
AM_TID_TXT_UINT16
1
30
"NumberOfLine"
AM_TID_TXT_UINT16
1
40
"PixelSizeInScanningDirection"
AM_TID_TXT_UINT16
1
50
"PixelSizePerpendicularTo
ScanningDirection"
AM_TID_TXT_UINT16
1
55
"SupplementType"
AM_TID_TXT_UINT8
1
60
"ColourRepresentation"
AM_TID_TXT_UINT8
2
64
"InterchangeColourSpace"
AM_TID_TXT_UINT8
1
65
"ColourSequence"
AM_TID_TXT_UINT8
4
66
"ICCInputColourProfile"
AM_TID_RAW_DATA
Undefined
70
"ColourCalibrationMatrixTable"
AM_TID_RAW_DATA
Undefined
80
"LookupTable"
AM_TID_RAW_DATA
131072
84
"NumberOfIndexEntries"
AM_TID_TXT_UINT16
1
85
"ColourPalette"
AM_TID_RAW_DATA
Undefined
86
"NumberOfBitsPerSample"
AM_TID_TXT_UINT8
1
90
"SamplingStructure"
AM_TID_TXT_UINT8
1
100
"ScanningDirection"
AM_TID_TXT_UINT8
1
102
"ImageRotation"
AM_TID_TXT_UINT8
1
110
"DataCompressionMethod"
AM_TID_RAW_DATA
4
120
"QuantisationMethod"
AM_TID_TXT_UINT8
1
125
"EndPoints"
AM_TID_TXT_UINT8
Undefined
130
"ExcursionTolerance"
AM_TID_TXT_UINT8
1
135
"BitsPerComponent"
AM_TID_TXT_UINT8
Undefined
140
"MaximumDensityRange"
AM_TID_TXT_UINT16
1
145
"GammaCompensatedValue"
AM_TID_TXT_UINT16
1

Dataset value items description for IPTC Pre-Object Descriptor Record (Record #7)

Item Identifier
Item Name
Value Type
Max. Value Length (for String last NULL is not counted)
10
"SizeMode"
AM_TID_TXT_UINT8
1
20
"MaxSubfileSize"
AM_TID_TXT_UINT8 or
AM_TID_TXT_UINT16 or
AM_TID_TXT_UINT32
1
90
"ObjectDataSizeAnnounced"
AM_TID_TXT_UINT8 or
AM_TID_TXT_UINT16 or
AM_TID_TXT_UINT32
1
95
"MaximumObjectDataSize"
AM_TID_TXT_UINT8 or
AM_TID_TXT_UINT16 or
AM_TID_TXT_UINT32
1

Dataset value items description for IPTC Object Record (Record #8)

Item Identifier
Item Name
Value Type
Max. Value Length (for String last NULL is not counted)
10
"Subfile"
AM_TID_RAW_DATA
Undefined

Dataset value items description for IPTC Post-Object Descriptor Record (Record #9)

Item Identifier
Item Name
Value Type
Max. Value Length (for String last NULL is not counted)
10
"ConfirmedObjectDataSize"
AM_TID_TXT_UINT8 or
AM_TID_TXT_UINT16 or
AM_TID_TXT_UINT32
1

Event required for writing IPTC metadata items

All IPTC metadata items can be written using IGMetaDataItemAdd event only.

See Also:

IPTC Metadata Item Name and ID constants.

IPTC Metadata Item Name and ID constants

IGMDTAG_NAME_IPTC_ENV_MODEL_VERSION         "ModelVersion"
IGMDTAG_NAME_IPTC_ENV_DESTINATION           "Destination"
IGMDTAG_NAME_IPTC_ENV_FILE_FORMAT           "FileFormat"
IGMDTAG_NAME_IPTC_ENV_FILE_FORMAT_VERSION   "FileFormatVersion"
IGMDTAG_NAME_IPTC_ENV_SERVICE_IDENTIFIER    "ServiceIdentifier"
IGMDTAG_NAME_IPTC_ENV_ENVELOPE_NUMBER       "EnvelopeNumber"
IGMDTAG_NAME_IPTC_ENV_PRODUCT_ID            "ProductID"
IGMDTAG_NAME_IPTC_ENV_ENVELOPE_PRIORITY     "EnvelopePriority"
IGMDTAG_NAME_IPTC_ENV_DATE_SENT             "DateSent"
IGMDTAG_NAME_IPTC_ENV_TIME_SENT             "TimeSent"
IGMDTAG_NAME_IPTC_ENV_CODED_CHARACTER_SET   "CodedCharacterSet"
IGMDTAG_NAME_IPTC_ENV_UNO                   "UNO"
IGMDTAG_NAME_IPTC_ENV_ARM_IDENTIFIER        "ARMIdentifier"
IGMDTAG_NAME_IPTC_ENV_ARM_VERSION           "ARMVersion"
IGMDTAG_NAME_IPTC_APP_RECORD_VERSION           "RecordVersion"
IGMDTAG_NAME_IPTC_APP_OBJ_TYPE_REF
"ObjectTypeReference"
IGMDTAG_NAME_IPTC_APP_OBJ_ATTRIBUTE_REF
"ObjectAttributeReference"
IGMDTAG_NAME_IPTC_APP_OBJ_NAME                   "ObjectName"
IGMDTAG_NAME_IPTC_APP_EDIT_STATUS                "EditStatus"
IGMDTAG_NAME_IPTC_APP_EDITORIAL_UPDATE
"EditorialUpdate"
IGMDTAG_NAME_IPTC_APP_URGENCY                    "Urgency"
IGMDTAG_NAME_IPTC_APP_SUBJECT_REFERENCE
"SubjectReference"
IGMDTAG_NAME_IPTC_APP_CATEGORY                   "Category"
IGMDTAG_NAME_IPTC_APP_SUPPLEMENTAL_CATEGORY
"SupplementalCategory"
IGMDTAG_NAME_IPTC_APP_FIXTURE_IDENTIFIER
"FixtureIdentifier"
IGMDTAG_NAME_IPTC_APP_KEYWORDS                   "Keywords"
IGMDTAG_NAME_IPTC_APP_CONTENT_LOCATION_CODE
"ContentLocationCode"
IGMDTAG_NAME_IPTC_APP_CONTENT_LOCATION_NAME
"ContentLocationName"
IGMDTAG_NAME_IPTC_APP_RELEASE_DATE               "ReleaseDate"
IGMDTAG_NAME_IPTC_APP_RELEASE_TIME               "ReleaseTime"
IGMDTAG_NAME_IPTC_APP_EXPIRATION_DATE
"ExpirationDate"
IGMDTAG_NAME_IPTC_APP_EXPIRATION_TIME
"ExpirationTime",
IGMDTAG_NAME_IPTC_APP_SPECIAL_INSTRUCTIONS
"SpecialInstructions"
IGMDTAG_NAME_IPTC_APP_ACTION_ADVISED             "ActionAdvised"
IGMDTAG_NAME_IPTC_APP_REFERENCE_SERVICE
"ReferenceService"
IGMDTAG_NAME_IPTC_APP_REFERENCE_DATE             "ReferenceDate"
IGMDTAG_NAME_IPTC_APP_REFERENCE_NUMBER
"ReferenceNumber"
IGMDTAG_NAME_IPTC_APP_DATE_CREATED               "DateCreated"
IGMDTAG_NAME_IPTC_APP_TIME_CREATED               "TimeCreated"
IGMDTAG_NAME_IPTC_APP_DIGITAL_CREATION_DATE
"DigitalCreationDate"
IGMDTAG_NAME_IPTC_APP_DIGITAL_CREATION_TIME
"DigitalCreationTime"
IGMDTAG_NAME_IPTC_APP_ORIGINATING_PROGRAM
"OriginatingProgram"
IGMDTAG_NAME_IPTC_APP_PROGRAM_VERSION
"ProgramVersion"
IGMDTAG_NAME_IPTC_APP_OBJECT_CYCLE               "ObjectCycle"
IGMDTAG_NAME_IPTC_APP_BY_LINE                    "By-line"
IGMDTAG_NAME_IPTC_APP_BY_LINE_TITLE              "By-lineTitle"
IGMDTAG_NAME_IPTC_APP_CITY                       "City"
IGMDTAG_NAME_IPTC_APP_SUBLOCATION                "Sublocation"
IGMDTAG_NAME_IPTC_APP_PROVINCE_STATE             "Province/
State"
IGMDTAG_NAME_IPTC_APP_COUNTRY_PRIMARY_LOC_CODE   "Country/
PrimaryLocationCode"
IGMDTAG_NAME_IPTC_APP_COUNTRY_PRIMARY_LOC_NAME   "Country/
PrimaryLocationName"
IGMDTAG_NAME_IPTC_APP_ORIGINAL_TRANSM_REF
"OriginalTransmissionReference"
IGMDTAG_NAME_IPTC_APP_HEADLINE                   "Headline"
IGMDTAG_NAME_IPTC_APP_CREDIT                     "Credit"
IGMDTAG_NAME_IPTC_APP_SOURCE                     "Source"
IGMDTAG_NAME_IPTC_APP_COPYRIGHT_NOTICE
"CopyrightNotice"
IGMDTAG_NAME_IPTC_APP_CONTACT                    "Contact"
IGMDTAG_NAME_IPTC_APP_CAPTION_ABSTRACT           "Caption/
Abstract"
IGMDTAG_NAME_IPTC_APP_WRITER_EDITOR              "Writer/Editor"
IGMDTAG_NAME_IPTC_APP_RASTERIZED_CAPTION
"RasterizedCaption"
IGMDTAG_NAME_IPTC_APP_IMAGE_TYPE                 "ImageType"
IGMDTAG_NAME_IPTC_APP_IMAGE_ORIENTATION
"ImageOrientation"
IGMDTAG_NAME_IPTC_APP_LANGUAGE_IDENTIFIER
"LanguageIdentifier"
IGMDTAG_NAME_IPTC_APP_AUDIO_TYPE                 "AudioType"
IGMDTAG_NAME_IPTC_APP_AUDIO_SAMPLING_RATE
"AudioSamplingRate"
IGMDTAG_NAME_IPTC_APP_AUDIO_SAMPLING_RESOLUTION
"AudioSamplingResolution"
IGMDTAG_NAME_IPTC_APP_AUDIO_DURATION             "AudioDuration"
IGMDTAG_NAME_IPTC_APP_AUDIO_OUTCUE               "AudioOutcue"
IGMDTAG_NAME_IPTC_APP_OBJ_DATA_PREV_FILE_FORMAT
"ObjectDataPreviewFileFormat"
IGMDTAG_NAME_IPTC_APP_OBJ_DATA_PREV_FILE_FORMAT_VER
"ObjectDataPreviewFileFormatVersion"
IGMDTAG_NAME_IPTC_APP_OBJ_DATA_PREV_DATA
"ObjectDataPreviewData"
IGMDTAG_NAME_IPTC_PHOTO_RECORD_VERSION
"RecordVersion"
IGMDTAG_NAME_IPTC_PHOTO_PICTURE_NUMBER
"PictureNumber"
IGMDTAG_NAME_IPTC_PHOTO_PIXELS_PER_LINE
"PixelsPerLine"
IGMDTAG_NAME_IPTC_PHOTO_NUMBER_OF_LINE
"NumberOfLine"
IGMDTAG_NAME_IPTC_PHOTO_PIXEL_SIZE_SCAN_DIR
"PixelSizeInScanningDirection"
IGMDTAG_NAME_IPTC_PHOTO_PIXEL_SIZE_PERP_DIR
"PixelSizePerpendicularToScanningDirection"
IGMDTAG_NAME_IPTC_PHOTO_SUPPLEMENT_TYPE
"SupplementType"
IGMDTAG_NAME_IPTC_PHOTO_COLOUR_REPRESENTATION
"ColourRepresentation"
IGMDTAG_NAME_IPTC_PHOTO_INTERCHANGE_COLOUR_SPACE
"InterchangeColourSpace"
IGMDTAG_NAME_IPTC_PHOTO_COLOUR_SEQUENCE
"ColourSequence"
IGMDTAG_NAME_IPTC_PHOTO_ICC_INPUT_COLOUR_PROFILE
"ICCInputColourProfile"
IGMDTAG_NAME_IPTC_PHOTO_COLOUR_MATRIX_TABLE
"ColourCalibrationMatrixTable"
IGMDTAG_NAME_IPTC_PHOTO_LOOKUP_TABLE               "LookupTable"
IGMDTAG_NAME_IPTC_PHOTO_NUMBER_OF_INDEX_ENTRIES
"NumberOfIndexEntries"
IGMDTAG_NAME_IPTC_PHOTO_COLOUR_PALETTE
"ColourPalette"
IGMDTAG_NAME_IPTC_PHOTO_NUMBER_OF_BITS_PER_SAMPLE
"NumberOfBitsPerSample"
IGMDTAG_NAME_IPTC_PHOTO_SAMPLING_STRUCTURE
"SamplingStructure"
IGMDTAG_NAME_IPTC_PHOTO_SCANNING_DIRECTION
"ScanningDirection"
IGMDTAG_NAME_IPTC_PHOTO_IMAGE_ROTATION
"ImageRotation"
IGMDTAG_NAME_IPTC_PHOTO_DATA_COMPRESSION_METHOD
"DataCompressionMethod"
IGMDTAG_NAME_IPTC_PHOTO_QUANTISATION_METHOD
"QuantisationMethod"
IGMDTAG_NAME_IPTC_PHOTO_END_POINTS                 "EndPoints"
IGMDTAG_NAME_IPTC_PHOTO_EXCURSION_TOLERANCE
"ExcursionTolerance"
IGMDTAG_NAME_IPTC_PHOTO_BITS_PER_COMPONENT
"BitsPerComponent"
IGMDTAG_NAME_IPTC_PHOTO_MAXIMUM_DENSITY_RANGE
"MaximumDensityRange"
IGMDTAG_NAME_IPTC_PHOTO_GAMMA_COMPENSATED_VALUE
"GammaCompensatedValue"
IGMDTAG_NAME_IPTC_PREOBJ_SIZE_MODE             "SizeMode"
IGMDTAG_NAME_IPTC_PREOBJ_MAX_SUBFILE_SIZE      "MaxSubfileSize"
IGMDTAG_NAME_IPTC_PREOBJ_OBJ_DATA_SIZE_ANN
"ObjectDataSizeAnnounced"
IGMDTAG_NAME_IPTC_PREOBJ_MAX_OBJ_DATA_SIZE
"MaximumObjectDataSize"
IGMDTAG_NAME_IPTC_OBJ_SUBFILE                  "Subfile"
IGMDTAG_NAME_IPTC_POSTOBJ_CONFIRMED_OBJ_DATA_SIZE
"ConfirmedObjectDataSize"
   IGMDTAG_ID_IPTC_FORMAT                      = 7168
   IGMDTAG_ID_IPTC_ENVELOPE_RECORD             = 1,
   IGMDTAG_ID_IPTC_APPLICATION_RECORD          = 2,
   IGMDTAG_ID_IPTC_DIG_NEWS_PHOTO_PAR_RECORD   = 3,
   IGMDTAG_ID_IPTC_PREOBJ_DESC_RECORD          = 7,
   IGMDTAG_ID_IPTC_OBJECT_RECORD               = 8,
   IGMDTAG_ID_IPTC_POSTOBJ_DESC_RECORD         = 9
   IGMDTAG_ID_IPTC_ENV_MODEL_VERSION           = 0,
   IGMDTAG_ID_IPTC_ENV_DESTINATION             = 5,
   IGMDTAG_ID_IPTC_ENV_FILE_FORMAT             = 20,
   IGMDTAG_ID_IPTC_ENV_FILE_FORMAT_VERSION     = 22,
   IGMDTAG_ID_IPTC_ENV_SERVICE_IDENTIFIER      = 30,
   IGMDTAG_ID_IPTC_ENV_ENVELOPE_NUMBER         = 40,
   IGMDTAG_ID_IPTC_ENV_PRODUCT_ID              = 50,
   IGMDTAG_ID_IPTC_ENV_ENVELOPE_PRIORITY       = 60,
   IGMDTAG_ID_IPTC_ENV_DATE_SENT               = 70,
   IGMDTAG_ID_IPTC_ENV_TIME_SENT               = 80,
   IGMDTAG_ID_IPTC_ENV_CODED_CHARACTER_SET     = 90,
   IGMDTAG_ID_IPTC_ENV_UNO                     = 100,
   IGMDTAG_ID_IPTC_ENV_ARM_IDENTIFIER          = 120,
   IGMDTAG_ID_IPTC_ENV_ARM_VERSION             = 122
   IGMDTAG_ID_IPTC_APP_RECORD_VERSION             = 0,
   IGMDTAG_ID_IPTC_APP_OBJ_TYPE_REF               = 3,
   IGMDTAG_ID_IPTC_APP_OBJ_ATTRIBUTE_REF          = 4,
   IGMDTAG_ID_IPTC_APP_OBJ_NAME                   = 5,
   IGMDTAG_ID_IPTC_APP_EDIT_STATUS                = 7,
   IGMDTAG_ID_IPTC_APP_EDITORIAL_UPDATE           = 8,
   IGMDTAG_ID_IPTC_APP_URGENCY                    = 10,
   IGMDTAG_ID_IPTC_APP_SUBJECT_REFERENCE          = 12,
   IGMDTAG_ID_IPTC_APP_CATEGORY                   = 15,
   IGMDTAG_ID_IPTC_APP_SUPPLEMENTAL_CATEGORY      = 20,
   IGMDTAG_ID_IPTC_APP_FIXTURE_IDENTIFIER         = 22,
   IGMDTAG_ID_IPTC_APP_KEYWORDS                   = 25,
   IGMDTAG_ID_IPTC_APP_CONTENT_LOCATION_CODE      = 26,
   IGMDTAG_ID_IPTC_APP_CONTENT_LOCATION_NAME      = 27,
   IGMDTAG_ID_IPTC_APP_RELEASE_DATE               = 30,
   IGMDTAG_ID_IPTC_APP_RELEASE_TIME               = 35,
   IGMDTAG_ID_IPTC_APP_EXPIRATION_DATE            = 37,
   IGMDTAG_ID_IPTC_APP_EXPIRATION_TIME            = 38,
   IGMDTAG_ID_IPTC_APP_SPECIAL_INSTRUCTIONS       = 40,
   IGMDTAG_ID_IPTC_APP_ACTION_ADVISED             = 42,
   IGMDTAG_ID_IPTC_APP_REFERENCE_SERVICE          = 45,
   IGMDTAG_ID_IPTC_APP_REFERENCE_DATE             = 47,
   IGMDTAG_ID_IPTC_APP_REFERENCE_NUMBER           = 50,
   IGMDTAG_ID_IPTC_APP_DATE_CREATED               = 55,
   IGMDTAG_ID_IPTC_APP_TIME_CREATED               = 60,
   IGMDTAG_ID_IPTC_APP_DIGITAL_CREATION_DATE      = 62,
   IGMDTAG_ID_IPTC_APP_DIGITAL_CREATION_TIME      = 63,
   IGMDTAG_ID_IPTC_APP_ORIGINATING_PROGRAM        = 65,
   IGMDTAG_ID_IPTC_APP_PROGRAM_VERSION            = 70,
   IGMDTAG_ID_IPTC_APP_OBJECT_CYCLE               = 75,
   IGMDTAG_ID_IPTC_APP_BY_LINE                    = 80,
   IGMDTAG_ID_IPTC_APP_BY_LINE_TITLE              = 85,
   IGMDTAG_ID_IPTC_APP_CITY                       = 90,
   IGMDTAG_ID_IPTC_APP_SUBLOCATION                = 92,
   IGMDTAG_ID_IPTC_APP_PROVINCE_STATE             = 95,
   IGMDTAG_ID_IPTC_APP_COUNTRY_PRIMARY_LOC_CODE   = 100,
   IGMDTAG_ID_IPTC_APP_COUNTRY_PRIMARY_LOC_NAME   = 101,
   IGMDTAG_ID_IPTC_APP_ORIGINAL_TRANSM_REF        = 103,
   IGMDTAG_ID_IPTC_APP_HEADLINE                   = 105,
   IGMDTAG_ID_IPTC_APP_CREDIT                     = 110,
   IGMDTAG_ID_IPTC_APP_SOURCE                     = 115,
   IGMDTAG_ID_IPTC_APP_COPYRIGHT_NOTICE           = 116,
   IGMDTAG_ID_IPTC_APP_CONTACT                    = 118,
   IGMDTAG_ID_IPTC_APP_CAPTION_ABSTRACT           = 120,
   IGMDTAG_ID_IPTC_APP_WRITER_EDITOR              = 122,
   IGMDTAG_ID_IPTC_APP_RASTERIZED_CAPTION         = 125,
   IGMDTAG_ID_IPTC_APP_IMAGE_TYPE                 = 130,
   IGMDTAG_ID_IPTC_APP_IMAGE_ORIENTATION          = 131,
   IGMDTAG_ID_IPTC_APP_LANGUAGE_IDENTIFIER        = 135,
   IGMDTAG_ID_IPTC_APP_AUDIO_TYPE                 = 150,
   IGMDTAG_ID_IPTC_APP_AUDIO_SAMPLING_RATE        = 151,
   IGMDTAG_ID_IPTC_APP_AUDIO_SAMPLING_RESOLUTION  = 152,
   IGMDTAG_ID_IPTC_APP_AUDIO_DURATION             = 153,
   IGMDTAG_ID_IPTC_APP_AUDIO_OUTCUE               = 154,
   IGMDTAG_ID_IPTC_APP_OBJ_DATA_PREV_FILE_FORMAT  = 200,
   IGMDTAG_ID_IPTC_APP_OBJ_DATA_PREV_FILE_FORMAT_VER = 201,
   IGMDTAG_ID_IPTC_APP_OBJ_DATA_PREV_DATA         = 202
   IGMDTAG_ID_IPTC_PHOTO_RECORD_VERSION           = 0,
   IGMDTAG_ID_IPTC_PHOTO_PICTURE_NUMBER           = 10,
   IGMDTAG_ID_IPTC_PHOTO_PIXELS_PER_LINE          = 20,
   IGMDTAG_ID_IPTC_PHOTO_NUMBER_OF_LINE           = 30,
   IGMDTAG_ID_IPTC_PHOTO_PIXEL_SIZE_SCAN_DIR      = 40,
   IGMDTAG_ID_IPTC_PHOTO_PIXEL_SIZE_PERP_DIR      = 50,
   IGMDTAG_ID_IPTC_PHOTO_SUPPLEMENT_TYPE          = 55,
   IGMDTAG_ID_IPTC_PHOTO_COLOUR_REPRESENTATION    = 60,
   IGMDTAG_ID_IPTC_PHOTO_INTERCHANGE_COLOUR_SPACE = 64,
   IGMDTAG_ID_IPTC_PHOTO_COLOUR_SEQUENCE          = 65,
   IGMDTAG_ID_IPTC_PHOTO_ICC_INPUT_COLOUR_PROFILE = 66,
   IGMDTAG_ID_IPTC_PHOTO_COLOUR_MATRIX_TABLE      = 70,
   IGMDTAG_ID_IPTC_PHOTO_LOOKUP_TABLE             = 80,
   IGMDTAG_ID_IPTC_PHOTO_NUMBER_OF_INDEX_ENTRIES  = 84,
   IGMDTAG_ID_IPTC_PHOTO_COLOUR_PALETTE           = 85,
   IGMDTAG_ID_IPTC_PHOTO_NUMBER_OF_BITS_PER_SAMPLE = 86,
   IGMDTAG_ID_IPTC_PHOTO_SAMPLING_STRUCTURE       = 90,
   IGMDTAG_ID_IPTC_PHOTO_SCANNING_DIRECTION       = 100,
   IGMDTAG_ID_IPTC_PHOTO_IMAGE_ROTATION           = 102,
   IGMDTAG_ID_IPTC_PHOTO_DATA_COMPRESSION_METHOD  = 110,
   IGMDTAG_ID_IPTC_PHOTO_QUANTISATION_METHOD      = 120,
   IGMDTAG_ID_IPTC_PHOTO_END_POINTS               = 125,
   IGMDTAG_ID_IPTC_PHOTO_EXCURSION_TOLERANCE      = 130,
   IGMDTAG_ID_IPTC_PHOTO_BITS_PER_COMPONENT       = 135,
   IGMDTAG_ID_IPTC_PHOTO_MAXIMUM_DENSITY_RANGE    = 140,
   IGMDTAG_ID_IPTC_PHOTO_GAMMA_COMPENSATED_VALUE  = 145
   IGMDTAG_ID_IPTC_PREOBJ_SIZE_MODE               = 10,
   IGMDTAG_ID_IPTC_PREOBJ_MAX_SUBFILE_SIZE        = 20,
   IGMDTAG_ID_IPTC_PREOBJ_OBJ_DATA_SIZE_ANN       = 90,
   IGMDTAG_ID_IPTC_PREOBJ_MAX_OBJ_DATA_SIZE       = 95
   IGMDTAG_ID_IPTC_OBJ_SUBFILE                     = 10
   IGMDTAG_ID_IPTC_POSTOBJ_CONFIRMED_OBJ_DATA_SIZE  = 10
   IGMDTAG_ID_IPTC_OBJTYPE_NEWS                     = 1,
   IGMDTAG_ID_IPTC_OBJTYPE_DATA                     = 2,
   IGMDTAG_ID_IPTC_OBJTYPE_ADVISORY                 = 3
   IGMDTAG_ID_IPTC_OBJATTR_CURRENT                   = 1,
   IGMDTAG_ID_IPTC_OBJATTR_ANALYSIS                  = 2,
   IGMDTAG_ID_IPTC_OBJATTR_ARCHIVE_MATERIAL          = 3,
   IGMDTAG_ID_IPTC_OBJATTR_BACKGROUND                = 4,
   IGMDTAG_ID_IPTC_OBJATTR_FEATURE                   = 5,
   IGMDTAG_ID_IPTC_OBJATTR_FORECAST                  = 6,
   IGMDTAG_ID_IPTC_OBJATTR_HISTORY                   = 7,
   IGMDTAG_ID_IPTC_OBJATTR_OBITUARY                  = 8,
   IGMDTAG_ID_IPTC_OBJATTR_OPINION                   = 9,
   IGMDTAG_ID_IPTC_OBJATTR_POLLS_SURVEYS             = 10,
   IGMDTAG_ID_IPTC_OBJATTR_PROFILE                   = 11,
   IGMDTAG_ID_IPTC_OBJATTR_RES_LISTINGS_TABLES       = 12,
   IGMDTAG_ID_IPTC_OBJATTR_SIDE_BAR_SUPPORTING_INFO  = 13,
   IGMDTAG_ID_IPTC_OBJATTR_SUMMARY                   = 14,
   IGMDTAG_ID_IPTC_OBJATTR_TRANSCRIPT_VERBATIM       = 15


PNG Non-Image Data Structure

There are 2 main PNG metadata levels:

    • PNG metadata level
    • PNG chunks levels

PNG metadata level

All items between items with Name "PNG" and Id IG_FORMAT_PNG (Type LEVEL_START and LEVEL_END) are interpreted as PNG data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.

Name
Id
Type
Value Type
Value
Value Length
Read Only
"PNG"
IG_FORMAT_PNG
LEVEL_START
0
NULL
0
TRUE
PNG chunks levels
"PNG"
IG_FORMAT_PNG
LEVEL_END
0
NULL
0
TRUE

PNG chunks levels

There are such PNG non-image chunk levels supported by ImageGear:

    • PNG header chunk metadata
    • Physical dimension chunk metadata
    • Transparency chunk metadata
    • Gamma chunk metadata
    • Primary chromaticities chunk metadata
    • sRGB chunk metadata
    • ICC profile chunk metadata
    • Background chunk metadata
    • Significant bits chunk metadata
    • Suggested palette chunk metadata
    • Palette histogram chunk metadata
    • Modified time chunk metadata
    • Text chunk metadata
    • Compressed textual data chunk metadata
    • International textual data chunk metadata
    • Calibration of pixel values chunk metadata
    • Physical scale chunk metadata
    • GIF application extension chunk metadata
    • GIF Graphic Control Extension chunk metadata
    • Image offset chunk metadata
    • The rest chunk metadata

PNG header chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"IHDR"
0x49484452
LEVEL_START
0
NULL
0
TRUE
"Width"
0x49484452
VALUE_ITEM
UINT32
1
TRUE
"Height"
0x49484452
VALUE_ITEM
UINT32
1
TRUE
"BitDepth"
0x49484452
VALUE_ITEM
UINT8
1
TRUE
"ColorType"
0x49484452
VALUE_ITEM
UINT8
1
TRUE
"CompressionType"
0x49484452
VALUE_ITEM
UINT8
1
TRUE
"FilterType"
0x49484452
VALUE_ITEM
UINT8
1
TRUE
"InterlaceType"
0x49484452
VALUE_ITEM
UINT8
1
TRUE
"IHDR"
0x49484452
LEVEL_END
0
NULL
0
TRUE

Physical dimension chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"pHYs"
0x70485973
LEVEL_START
0
NULL
0
TRUE
"XAxis"
0x70485973
VALUE_ITEM
UINT32
1
FALSE
"YAxis"
0x70485973
VALUE_ITEM
UINT32
1
FALSE
"UnitSpecifier"
0x70485973
VALUE_ITEM
UINT8
1
FALSE
"pHYs"
0x70485973
LEVEL_END
0
NULL
0
TRUE

Transparency chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"tRNS"
0x74524e53
VALUE_ITEM
UINT8 or
UINT16
Variable
FALSE

Gamma chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"gAMA"
0x67414d41
VALUE_ITEM
UINT32
1
FALSE

Primary chromaticities chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"cHRM"
0x6348524d
LEVEL_START
0
NULL
0
TRUE
"WhitePoint"
0x6348524d
LEVEL_START
0
NULL
0
TRUE
"x"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"y"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"WhitePoint"
0x6348524d
LEVEL_END
0
NULL
0
TRUE
"Red"
0x6348524d
LEVEL_START
0
NULL
0
TRUE
"x"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"y"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"Red"
0x6348524d
LEVEL_END
0
NULL
0
TRUE
"Green"
0x6348524d
LEVEL_START
0
NULL
0
TRUE
"x"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"y"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"Green"
0x6348524d
LEVEL_END
0
NULL
0
TRUE
"Blue"
0x6348524d
LEVEL_START
0
NULL
0
TRUE
"x"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"y"
0x6348524d
VALUE_ITEM
UINT32
1
FALSE
"Blue"
0x6348524d
LEVEL_END
0
NULL
0
TRUE
"cHRM"
0x6348524d
LEVEL_END
0
NULL
0
TRUE

sRGB chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"sRGB"
0x73524742
VALUE_ITEM
UINT32
1
FALSE

ICC profile chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"iCCP"
0x70485973
LEVEL_START
0
NULL
0
TRUE
"ProfileName"
0x70485973
VALUE_ITEM
STRING
Variable
FALSE
"ProfileData"
0x70485973
VALUE_ITEM
RAW_DATA
Variable
FALSE
"iCCP"
0x70485973
LEVEL_END
0
NULL
0
TRUE

Background chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"bKGD"
0x624b4744
VALUE_ITEM
UINT8 or UINT16
Variable
FALSE

Significant bits chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"sBIT"
0x73424954
VALUE_ITEM
UINT8
Variable
FALSE

Suggested palette chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"sPLT"
0x73504c54
LEVEL_START
0
NULL
0
TRUE
"PaletteName"
0x73504c54
VALUE_ITEM
STRING
Variable
TRUE
"SampleDepth"
0x73504c54
VALUE_ITEM
UINT8
1
FALSE
"PaletteEntryCount"
0x73504c54
VALUE_ITEM
UINT16
<N>
1
FALSE
Palette entry level 0
...
Palette entry level n
"sPLT"
0x70485973
LEVEL_END
0
NULL
1
FALSE

Palette entry level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"PaletteEntry"
<Entry No.>
LEVEL_START
0
NULL
0
TRUE
"Red"
<Entry No.>
VALUE_ITEM
UINT8 or UINT16
1
FALSE
"Green"
<Entry No.>
VALUE_ITEM
UINT8 or UINT16
1
FALSE
"Blue"
<Entry No.>
VALUE_ITEM
UINT8 or UINT16
1
FALSE
"Alpha"
<Entry No.>
VALUE_ITEM
UINT8 or UINT16
1
FALSE
"Frequency"
<Entry No.>
VALUE_ITEM
UINT16
1
FALSE
"PaletteEntry"
<Entry No.>
LEVEL_END
0
NULL
0
TRUE

Palette histogram chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"hIST"
0x68495354
VALUE_ITEM
UINT16
Variable
FALSE

Modified time chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"tIME"
0x74494d45
LEVEL_START
0
NULL
0
TRUE
"Year"
0x74494d45
VALUE_ITEM
UINT16
1
FALSE
"Month"
0x74494d45
VALUE_ITEM
UINT8
1
FALSE
"Day"
0x74494d45
VALUE_ITEM
UINT8
1
FALSE
"Hour"
0x74494d45
VALUE_ITEM
UINT8
1
FALSE
"Minute"
0x74494d45
VALUE_ITEM
UINT8
1
FALSE
"Second"
0x74494d45
VALUE_ITEM
UINT8
1
FALSE
"tIME"
0x74494d45
LEVEL_END
0
NULL
0
TRUE

Text chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"tEXt"
0x74455874
LEVEL_START
0
NULL
0
TRUE
"Keyword"
0x74455874
VALUE_ITEM
STRING
Variable
FALSE
"Text"
0x74455874
VALUE_ITEM
STRING
Variable
FALSE
"tEXt"
0x74455874
LEVEL_END
0
NULL
0
TRUE

Compressed textual data chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"zTXt"
0x7a545874
LEVEL_START
0
NULL
0
TRUE
"Keyword"
0x7a545874
VALUE_ITEM
STRING
Variable
FALSE
"CompressionMethod"
0x7a545874
VALUE_ITEM
UINT8
1
FALSE
"Text"
0x7a545874
VALUE_ITEM
STRING
Variable
FALSE
"zTXt"
0x7a545874
LEVEL_END
0
NULL
0
TRUE

International textual data chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"zTXt"
0x69545874
LEVEL_START
0
NULL
0
TRUE
"Keyword"
0x69545874
VALUE_ITEM
STRING
Variable
FALSE
"CompressionFlag"
0x69545874
VALUE_ITEM
BOOL
"CompressionMethod"
0x69545874
VALUE_ITEM
UINT8
1
FALSE
"LanguageTag"
0x69545874
VALUE_ITEM
STRING
"TranslatedKeyword"
0x69545874
VALUE_ITEM
RAW_DATA
"Text"
0x69545874
VALUE_ITEM
RAW_DATA
Variable
FALSE
"zTXt"
0x69545874
LEVEL_END
0
NULL
0
TRUE

Calibration of pixel values chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"pCAL"
0x7043414c
LEVEL_START
0
NULL
0
TRUE
"CalibrationName"
0x7043414c
VALUE_ITEM
STRING
Variable
FALSE
"OriginalZero(x0)"
0x7043414c
VALUE_ITEM
INT32
1
FALSE
"OriginalMax(x1)"
0x7043414c
VALUE_ITEM
INT32
1
FALSE
"EquationType"
0x7043414c
VALUE_ITEM
UINT8
1
FALSE
"NumberOfParameters"
0x7043414c
VALUE_ITEM
UINT8
<N>
Variable
FALSE
"UnitName"
0x7043414c
VALUE_ITEM
STRING
Variable
FALSE
"CalibrationParameter"
0
VALUE_ITEM
STRING
Variable
FALSE
...
"CalibrationParameter"
<N> - 1
VALUE_ITEM
STRING
Variable
FALSE
"pCAL"
0x7043414c
LEVEL_END
0
NULL
0
TRUE

Physical scale chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"sCAL"
0x7343414c
LEVEL_START
0
NULL
0
TRUE
"UnitSpecifier"
0x7343414c
VALUE_ITEM
UINT8
1
FALSE
"PixelWidth"
0x7343414c
VALUE_ITEM
STRING
Variable
FALSE
"PixelHeigt"
0x7343414c
VALUE_ITEM
STRING
Variable
FALSE
"sCAL"
0x7343414c
LEVEL_END
0
NULL
0
TRUE

GIF application extension chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"gIFx"
0x67494678
LEVEL_START
0
NULL
0
TRUE
"ApplicationIdentifier"
0x67494678
VALUE_ITEM
STRING
Variable
FALSE
"AuthenticationCode"
0x67494678
VALUE_ITEM
UINT8
1
FALSE
"ApplicationData"
0x67494678
VALUE_ITEM
RAW_DATA
Variable
FALSE
"gIFx"
0x67494678
LEVEL_END
0
NULL
0
TRUE

GIF Graphic Control Extension chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"gIFg"
0x67494674
LEVEL_START
0
NULL
0
TRUE
"DisposalMethod"
0x67494674
VALUE_ITEM
UINT8
1
FALSE
"UserInputFlag"
0x67494674
VALUE_ITEM
UINT8
1
FALSE
"DelayTime"
0x67494674
VALUE_ITEM
UINT16
1
FALSE
"gIFg"
0x67494674
LEVEL_END
0
NULL
0
TRUE

Image offset chunk metadata

Name
Id
Type
Value Type
Value
Value Length
Read Only
"oFFs"
0x6f464673
LEVEL_START
0
NULL
0
TRUE
"XPosition"
0x6f464673
VALUE_ITEM
UINT32
1
FALSE
"YPosition"
0x6f464673
VALUE_ITEM
UINT32
1
FALSE
"UnitSpecifier"
0x6f464673
VALUE_ITEM
UINT8
1
FALSE
"oFFs"
0x6f464673
LEVEL_END
0
NULL
0
TRUE

The rest chunk metadata

The rest chunk data are passed as raw data

Name
Id
Type
Value Type
Value
Value Length
Read Only
<Chunk Name>
<Chunk ID>
VALUE_ITEM
RAW_DATA
Variable
FALSE

<Chunk Name> is a string representation of the chunk type value.

<Chunk ID> is a binary representation of the chunk type value.

Event required for writing PNG metadata items

Value of these metadata items can be changed using IGMetaDataItemWrite event only:

Item Name
Item Id
Physical dimension chunk metadata
"XAxis"
0x70485973
"YAxis"
0x70485973
"UnitSpecifier"
0x70485973

The rest PNG metadata items can be written using IGMetaDataItemAdd event only.

See also PNG Metadata Item Name and ID constants.

PNG Metadata Item Name and ID constants

IGMDTAG_NAME_PNG_FORMAT             "PNG"
IGMDTAG_NAME_PNG_RESOLUTION         "pHYs"
IGMDTAG_NAME_PNG_HEADER             "IHDR"
IGMDTAG_NAME_PNG_TRANSPARENCY       "tRNS"
IGMDTAG_NAME_PNG_GAMMA              "gAMA"
IGMDTAG_NAME_PNG_CHROMATICITIES     "cHRM"
IGMDTAG_NAME_PNG_SRGB               "sRGB"
IGMDTAG_NAME_PNG_ICC_PROFILE        "iCCP"
IGMDTAG_NAME_PNG_BACKGROUND         "bKGD"
IGMDTAG_NAME_PNG_SIGNIFICANT_BITS   "sBIT"
IGMDTAG_NAME_PNG_SUGGESTED_PALETTE  "sPLT"
IGMDTAG_NAME_PNG_HISTOGRAM          "hIST"
IGMDTAG_NAME_PNG_TIME               "tIME"
IGMDTAG_NAME_PNG_TEXT               "tEXt"
IGMDTAG_NAME_PNG_COMPRESSED_TEXT    "zTXt"
IGMDTAG_NAME_PNG_INTERNATIONAL_TEXT "iTXt"
IGMDTAG_NAME_PNG_CALIBRATION        "pCAL"
IGMDTAG_NAME_PNG_PHYSICAL_SCALE     "sCAL"
IGMDTAG_NAME_PNG_GIF_APP_EXT        "gIFx"
IGMDTAG_NAME_PNG_GIF_CONTROL        "gIFg"
IGMDTAG_NAME_PNG_IMAGE_OFFSET       "oFFs"
IGMDTAG_NAME_PNG_FRACTAL_PARAMETERS "fRAc"
IGMDTAG_NAME_PNG_GIF_TEXT_EXT       "gIFt"
IGMDTAG_NAME_PNG_IHDR_WIDTH         "Width"
IGMDTAG_NAME_PNG_IHDR_HEIGHT        "Height"
IGMDTAG_NAME_PNG_IHDR_BIT_DEPTH      "BitDepth"
IGMDTAG_NAME_PNG_IHDR_COLOR_TYPE     "ColorType"
IGMDTAG_NAME_PNG_IHDR_COMPRESSION    "CompressionType"
IGMDTAG_NAME_PNG_IHDR_FILTER_TYPE    "FilterType"
IGMDTAG_NAME_PNG_IHDR_INTERLACE_TYPE "InterlaceType"
IGMDTAG_NAME_PNG_PHYS_X_AXIS         "XAxis"
IGMDTAG_NAME_PNG_PHYS_Y_AXIS         "YAxis"
IGMDTAG_NAME_PNG_PHYS_UNIT           "UnitSpecifier"
IGMDTAG_NAME_PNG_ICCP_NAME           "ProfileName"
IGMDTAG_NAME_PNG_ICCP_DATA           "ProfileData"
IGMDTAG_NAME_PNG_CHRM_WHITE          "WhitePoint"
IGMDTAG_NAME_PNG_CHRM_RED            "Red"
IGMDTAG_NAME_PNG_CHRM_GREEN          "Green"
IGMDTAG_NAME_PNG_CHRM_BLUE           "Blue"
IGMDTAG_NAME_PNG_CHRM_X              "x"
IGMDTAG_NAME_PNG_CHRM_Y              "y"
IGMDTAG_NAME_PNG_TEXT_KEYWORD        "Keyword"
IGMDTAG_NAME_PNG_TEXT_TEXT           "Text"
IGMDTAG_NAME_PNG_CTXT_KEYWORD        "Keyword"
IGMDTAG_NAME_PNG_CTXT_COMPR_METHOD   "CompressionMethod"
IGMDTAG_NAME_PNG_CTXT_TEXT           "Text"
IGMDTAG_NAME_PNG_ITXT_KEYWORD        "Keyword"
IGMDTAG_NAME_PNG_ITXT_COMPR_FLAG     "CompressionFlag"
IGMDTAG_NAME_PNG_ITXT_COMPR_METHOD   "CompressionMethod"
IGMDTAG_NAME_PNG_ITXT_LANGUAGE       "LanguageTag"
IGMDTAG_NAME_PNG_ITXT_TRANSL_KEYWORD "TranslatedKeyword"
IGMDTAG_NAME_PNG_ITXT_TEXT           "Text"
IGMDTAG_NAME_PNG_SPLT_NAME          "PaletteName"
IGMDTAG_NAME_PNG_SPLT_DEPTH         "SampleDepth"
IGMDTAG_NAME_PNG_SPLT_ENTRY_COUNT   "PaletteEntryCount"
IGMDTAG_NAME_PNG_SPLT_ENTRY         "PaletteEntry"
IGMDTAG_NAME_PNG_SPLT_RED           "Red"
IGMDTAG_NAME_PNG_SPLT_GREEN         "Green"
IGMDTAG_NAME_PNG_SPLT_BLUE          "Blue"
IGMDTAG_NAME_PNG_SPLT_ALPHA         "Alpha"
IGMDTAG_NAME_PNG_SPLT_FREQUENCY     "Frequency"
IGMDTAG_NAME_PNG_TIME_YEAR          "Year"
IGMDTAG_NAME_PNG_TIME_MONTH         "Month"
IGMDTAG_NAME_PNG_TIME_DAY           "Day"
IGMDTAG_NAME_PNG_TIME_HOUR          "Hour"
IGMDTAG_NAME_PNG_TIME_MINUTE        "Minute"
IGMDTAG_NAME_PNG_TIME_SECOND        "Second"
IGMDTAG_NAME_PNG_OFFS_X_POSITION    "XPosition"
IGMDTAG_NAME_PNG_OFFS_Y_POSITION    "YPosition"
IGMDTAG_NAME_PNG_OFFS_UNIT          "UnitSpecifier"
IGMDTAG_NAME_PNG_PCAL_NAME          "CalibrationName"
IGMDTAG_NAME_PNG_PCAL_X0            "OriginalZero(x0)"
IGMDTAG_NAME_PNG_PCAL_X1            "OriginalMax(x1)"
IGMDTAG_NAME_PNG_PCAL_EQUATION      "EquationType"
IGMDTAG_NAME_PNG_PCAL_PAR_COUNT     "NumberOfParameters"
IGMDTAG_NAME_PNG_PCAL_UNIT          "UnitName"
IGMDTAG_NAME_PNG_PCAL_PARAMETER     "CalibrationParameter"
IGMDTAG_NAME_PNG_SCAL_UNIT          "UnitSpecifier"
IGMDTAG_NAME_PNG_SCAL_WIDTH         "PixelWidth"
IGMDTAG_NAME_PNG_SCAL_HEIGHT          "PixelHeigt"
IGMDTAG_NAME_PNG_GIFG_DISPOSAL_METHOD "DisposalMethod"
IGMDTAG_NAME_PNG_GIFG_USER_INPUT_FLAG "UserInputFlag"
IGMDTAG_NAME_PNG_GIFG_DELAY_TIME      "DelayTime"
IGMDTAG_NAME_PNG_GIFX_APP_ID          "ApplicationIdentifier"
IGMDTAG_NAME_PNG_GIFX_AUTHENTICATION  "AuthenticationCode"
IGMDTAG_NAME_PNG_GIFX_APP_DATA        "ApplicationData"
 IGMDTAG_ID_PNG_FORMAT                 = IG_FORMAT_PNG,
 IGMDTAG_ID_PNG_HEADER                 = 0x49484452,
 IGMDTAG_ID_PNG_TRANSPARENCY           = 0x74524e53,
 IGMDTAG_ID_PNG_GAMMA                  = 0x67414d41,
 IGMDTAG_ID_PNG_CHROMATICITIES         = 0x6348524d,
 IGMDTAG_ID_PNG_SRGB                   = 0x73524742,
 IGMDTAG_ID_PNG_ICC_PROFILE            = 0x69434350,
 IGMDTAG_ID_PNG_BACKGROUND             = 0x624b4744,
 IGMDTAG_ID_PNG_SIGNIFICANT_BITS       = 0x73424954,
 IGMDTAG_ID_PNG_SUGGESTED_PALETTE      = 0x73504c54,
 IGMDTAG_ID_PNG_HISTOGRAM              = 0x68495354,
 IGMDTAG_ID_PNG_TIME                   = 0x74494d45,
 IGMDTAG_ID_PNG_TEXT                   = 0x74455874,
 IGMDTAG_ID_PNG_COMPRESSED_TEXT        = 0x7a545874,
 IGMDTAG_ID_PNG_INTERNATIONAL_TEXT     = 0x69545874,
 IGMDTAG_ID_PNG_CALIBRATION            = 0x7043414c,
 IGMDTAG_ID_PNG_PHYSICAL_SCALE         = 0x7343414c,
 IGMDTAG_ID_PNG_GIF_APP_EXT            = 0x67494678,
 IGMDTAG_ID_PNG_GIF_CONTROL            = 0x67494667,
 IGMDTAG_ID_PNG_IMAGE_OFFSET           = 0x6f464673,
 IGMDTAG_ID_PNG_FRACTAL_PARAMETERS     = 0x66524163,
 IGMDTAG_ID_PNG_GIF_TEXT_EXT           = 0x67494674,
 IGMDTAG_ID_PNG_RESOLUTION             = 0x70485973


GIF Non-image Data Structure

GIF file format is complex and has non-image data of different levels that can be stored before and after an image data. The GIF metadata design allows to read/write any GIF non-image data and prevents from misunderstanding with GIF extensions storing order.

The following metadata are always saved before an image data:

    • GIF Logical Screen Descriptor level
    • GIF Image Descriptor level
    • GIF Global Color Table level
    • GIF Local Color Table level

The metadata of GIF extensions that are inside GIF Extensions After Image level (between items with Name "AfterImageExtensions" and Id 0xFFF (Type LEVEL_START and LEVEL_END)) are saved after an image data.

All other GIF Extensions Metadata are saved before an image data.

NOTE: You can work with GIF metadata only when the ImageGear GIF/TIFF-LZW Component is attached to the core ImageGear module.

GIF metadata level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"GIF"
IG_FORMAT_GIF
LEVEL_START
0
NULL
0
TRUE
GIF header level
GIF Logical Screen Descriptor level
GIF Image Descriptor level
optional Global and/or Local Color Tables and
optional GIF Extensions levels (extensions before image)
"GIF"
IG_FORMAT_GIF
LEVEL_END
0
NULL
0
TRUE

All items between items with Name "GIF" and Id IG_FORMAT_GIF (Type LEVEL_START and LEVEL_END) are interpreted as GIF data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.

GIF header level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"GIFHeader"
0x10
LEVEL_START
0
NULL
0
TRUE
"Signature"
0x101
VALUE_ITEM
STRING
"GIF"
3
TRUE
"Version"
0x102
VALUE_ITEM
STRING
3
TRUE
"GIFHeader"
0x10
LEVEL_END
0
NULL
0
TRUE

GIF Logical Screen Descriptor level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"LogicalScreenDescriptor"
0x20
LEVEL_START
0
NULL
0
TRUE
"LogicalScreenWidth"
0x201
VALUE_ITEM
UINT16
1
FALSE
"LogicalScreenHeight"
0x202
VALUE_ITEM
UINT16
1
FALSE
"Fields"
0x205
LEVEL_START
0
NULL
0
TRUE
"GlobalColorTableFlag"
0x206
VALUE_ITEM
BOOL
1
FALSE
"ColorResolution"
0x207
VALUE_ITEM
UINT8
1
FALSE
"SortFlag"
0x208
VALUE_ITEM
BOOL
1
FALSE
"GlobalColorTableSize"
0x209
VALUE_ITEM
UINT8
1
FALSE
"Fields"
0x205
LEVEL_END
0
NULL
0
TRUE
"BackgroundColorIndex"
0x203
VALUE_ITEM
UINT8
FALSE
"PixelAspectRatio"
0x204
VALUE_ITEM
UINT8
FALSE
"LogicalScreenDescriptor"
0x20
LEVEL_END
0
NULL
0
TRUE

GIF Global Color Table level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"GlobalColorTable"
0x30
VALUE_ITEM
RAW_DATA
Variable
TRUE

GIF Image Descriptor level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"ImageDescriptor"
0x2C
LEVEL_START
0
NULL
0
TRUE
"ImageLeftPosi tion"
0x2C1
VALUE_ITEM
UINT16
1
FALSE
"ImageTopPosition"
0x2C2
VALUE_ITEM
UINT16
1
FALSE
"ImageWidth"
0x2C3
VALUE_ITEM
1
FALSE
"ImageHeight"
0x2C4
VALUE_ITEM
1
FALSE
"Fields"
0x2C5
LEVEL_START
0
NULL
0
TRUE
"LocalColorTableFlag"
0x2C6
VALUE_ITEM
BOOL
1
FALSE
"InterlaceFlag"
0x2C7
VALUE_ITEM
BOOL
1
FALSE
"SortFlag"
0x2C8
VALUE_ITEM
BOOL
1
FALSE
"LocalColorTableSize"
0x2C9
VALUE_ITEM
UINT8
1
FALSE
"Fields"
0x2C5
LEVEL_END
0
NULL
0
TRUE
"ImageDescriptor"
0x2C
LEVEL_END
0
NULL
0
TRUE

GIF Local Color Table level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"LocalColorTable"
0x40
VALUE_ITEM
RAW_DATA
Variable
TRUE

GIF Extensions Metadata

GIF Graphic Control Extension level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"GraphicControlExtension"
0xF9
LEVEL_START
0
NULL
0
TRUE
"Fields"
0xF91
LEVEL_START
0
NULL
0
TRUE
"DisposalMethod"
0xF92
VALUE_ITEM
UINT8
1
FALSE
"UserInputFlag"
0xF93
VALUE_ITEM
BOOL
1
FALSE
"TransparentColorFlag"
0xF94
VALUE_ITEM
BOOL
1
FALSE
"Fields"
0xF91
LEVEL_END
0
NULL
0
TRUE
"DelayTime"
0xF95
VALUE_ITEM
UINT16
1
FALSE
"TransparentColorIndex"
0xF96
VALUE_ITEM
UINT8
1
FALSE
"GraphicControlExtension"
0xF9
LEVEL_END
0
NULL
0
TRUE

GIF Comment Extension level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"CommentExtension"
0xFE
VALUE_ITEM
STRING
Variable
TRUE

GIF Application Extension level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"ApplicationExtension"
0xFF
LEVEL_START
0
NULL
0
TRUE
"ApplicationIdentifier"
0xFF1
VALUE_ITEM
STRING
8
FALSE
"Appl.AuthenticationCode"
0xFF2
VALUE_ITEM
UINT8
4
FALSE
"ApplicationData"
0xFF3
VALUE_ITEM
RAW_DATA
Variable
FALSE
"ApplicationExtension"
0xFF
LEVEL_END
0
NULL
0
TRUE

GIF Plain Text Extension level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"PlainTextExtension"
0x01
LEVEL_START
0
NULL
0
TRUE
"TextGridLeftPosition"
0x11
VALUE_ITEM
UINT16
1
FALSE
"TextGridTopPosition"
0x12
VALUE_ITEM
UINT16
1
FALSE
"TextGridWidth"
0x13
VALUE_ITEM
UINT16
1
FALSE
"TextGridHeight"
0x14
VALUE_ITEM
UINT16
1
FALSE
"CharacterCellWidth"
0x15
VALUE_ITEM
UINT8
1
FALSE
"CharacterCellHeight"
0x16
VALUE_ITEM
UINT8
1
FALSE
"TextForegroundColorIndex"
0x17
VALUE_ITEM
UINT8
1
FALSE
"TextBackgroundColorIndex"
0x18
VALUE_ITEM
UINT8
1
FALSE
"PlainTextData"
0x19
VALUE_ITEM
STRING
Variable
FALSE
"PlainTextExtension"
0x01
LEVEL_END
0
NULL
0
TRUE

GIF Extensions After Image level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"AfterImageExtensions"
0xFFF
LEVEL_START
0
NULL
0
TRUE
One or more GIF extension levels
"AfterImageExtensions"
0xFFF
LEVEL_END
0
NULL
0
TRUE

Event required for writing GIF metadata items

The GIF Logical Screen Descriptor level and GIF Image Descriptor level metadata items can be written using IGMetaDataItemWrite event.

Other GIF metadata can be written using IGMetaDataItemAdd event.

GIF Metadata Item Name and ID constants

#define IGMDTAG_NAME_GIF_FORMAT "GIF"
#define IGMDTAG_NAME_GIF_HEADER "GIFHeader"
#define IGMDTAG_NAME_GIF_HDR_SIGNATURE "Signature"
#define IGMDTAG_NAME_GIF_HDR_VERSION "Version"
#define IGMDTAG_NAME_GIF_SCREEN_DESCRIPTOR
"LogicalScreenDescriptor"
#define IGMDTAG_NAME_GIF_SCR_SCREEN_WIDTH "LogicalScreenWidth"
#define IGMDTAG_NAME_GIF_SCR_SCREEN_HEIGHT
"LogicalScreenHeight"
#define IGMDTAG_NAME_GIF_SCR_BACKGROUND_COLOR
"BackgroundColorIndex"
#define IGMDTAG_NAME_GIF_SCR_ASPECT_RATIO "PixelAspectRatio"
#define IGMDTAG_NAME_GIF_SCR_FIELDS "Fields"
#define IGMDTAG_NAME_GIF_SCR_FLD_GL_COLOR_TABLE
"GlobalColorTableFlag"
#define IGMDTAG_NAME_GIF_SCR_FLD_COLOR_RES "ColorResolution"
#define IGMDTAG_NAME_GIF_SCR_FLD_SORT "SortFlag"
#define IGMDTAG_NAME_GIF_SCR_FLD_SIZE "GlobalColorTableSize"
#define IGMDTAG_NAME_GIF_GLOBAL_COLOR_TABLE "GlobalColorTable"
#define IGMDTAG_NAME_GIF_IMAGE_DESCRIPTOR "ImageDescriptor"
#define IGMDTAG_NAME_GIF_IMG_LEFT_POSITION "ImageLeftPosition"
#define IGMDTAG_NAME_GIF_IMG_TOP_POSITION "ImageTopPosition"
#define IGMDTAG_NAME_GIF_IMG_IMAGE_WIDTH "ImageWidth"
#define IGMDTAG_NAME_GIF_IMG_IMAGE_HEIGHT "ImageHeight"
#define IGMDTAG_NAME_GIF_IMG_FIELDS "Fields"
#define IGMDTAG_NAME_GIF_IMG_FLD_LOC_COLOR_TABLE
"LocalColorTableFlag"
#define IGMDTAG_NAME_GIF_IMG_FLD_INTERLACE "InterlaceFlag"
#define IGMDTAG_NAME_GIF_IMG_FLD_SORT "SortFlag"
#define IGMDTAG_NAME_GIF_IMG_FLD_SIZE "LocalColorTableSize"
#define IGMDTAG_NAME_GIF_LOCAL_COLOR_TABLE "LocalColorTable"
#define IGMDTAG_NAME_GIF_GRAPHIC_CONTROL_EXT
"GraphicControlExtension"
#define IGMDTAG_NAME_GIF_GCE_FIELDS "Fields"
#define IGMDTAG_NAME_GIF_GCE_FLD_DISPOSAL_METHOD
"DisposalMethod"
#define IGMDTAG_NAME_GIF_GCE_FLD_USER_INPUT "UserInputFlag"
#define IGMDTAG_NAME_GIF_GCE_FLD_TRANSPARENT
"TransparentColorFlag"
#define IGMDTAG_NAME_GIF_GCE_DELAY_TIME "DelayTime"
#define IGMDTAG_NAME_GIF_GCE_TRANSPARENT_COLOR
"TransparentColorIndex"
#define IGMDTAG_NAME_GIF_COMMENT_EXTENSION "CommentExtension"
#define IGMDTAG_NAME_GIF_PLAIN_TEXT_EXTENSION
"PlainTextExtension"
#define IGMDTAG_NAME_GIF_TXT_GRID_LEFT "TextGridLeftPosition"
#define IGMDTAG_NAME_GIF_TXT_GRID_TOP "TextGridTopPosition"
#define IGMDTAG_NAME_GIF_TXT_GRID_WIDTH "TextGridWidth"
#define IGMDTAG_NAME_GIF_TXT_GRID_HEIGHT "TextGridHeight"
#define IGMDTAG_NAME_GIF_TXT_CELL_WIDTH "CharacterCellWidth"
#define IGMDTAG_NAME_GIF_TXT_CELL_HEIGHT "CharacterCellHeight"
#define IGMDTAG_NAME_GIF_TXT_FOREGROUND_COLOR
"TextForegroundColorIndex"
#define IGMDTAG_NAME_GIF_TXT_BACKGROUND_COLOR
"TextBackgroundColorIndex"
#define IGMDTAG_NAME_GIF_TXT_TEXT_DATA "PlainTextData"
#define IGMDTAG_NAME_GIF_APP_EXTENSION "ApplicationExtension"
#define IGMDTAG_NAME_GIF_APP_IDENTIFIER "ApplicationIdentifier"
#define IGMDTAG_NAME_GIF_APP_AUTH_CODE
"Appl.AuthenticationCode"
#define IGMDTAG_NAME_GIF_APP_DATA "ApplicationData"
#define IGMDTAG_NAME_GIF_AFTER_IMAGE_EXT "AfterImageExtensions"
IGMDTAG_ID_GIF_FORMAT = IG_FORMAT_GIF,
IGMDTAG_ID_GIF_HEADER = 0x10,
IGMDTAG_ID_GIF_HDR_SIGNATURE = 0x101,
IGMDTAG_ID_GIF_HDR_VERSION = 0x102,
IGMDTAG_ID_GIF_SCREEN_DESCRIPTOR = 0x20,
IGMDTAG_ID_GIF_SCR_SCREEN_WIDTH = 0x201,
IGMDTAG_ID_GIF_SCR_SCREEN_HEIGHT = 0x202,
IGMDTAG_ID_GIF_SCR_BACKGROUND_COLOR = 0x203,
IGMDTAG_ID_GIF_SCR_ASPECT_RATIO = 0x204,
IGMDTAG_ID_GIF_SCR_FIELDS = 0x205,
IGMDTAG_ID_GIF_SCR_FLD_GL_COLOR_TABLE = 0x206,
IGMDTAG_ID_GIF_SCR_FLD_COLOR_RES = 0x207,
IGMDTAG_ID_GIF_SCR_FLD_SORT = 0x208,
IGMDTAG_ID_GIF_SCR_FLD_SIZE = 0x209,
IGMDTAG_ID_GIF_GLOBAL_COLOR_TABLE = 0x30,
IGMDTAG_ID_GIF_IMAGE_DESCRIPTOR = 0x2C,
IGMDTAG_ID_GIF_IMG_LEFT_POSITION = 0x2C1,
IGMDTAG_ID_GIF_IMG_TOP_POSITION = 0x2C2,
IGMDTAG_ID_GIF_IMG_IMAGE_WIDTH = 0x2C3,
IGMDTAG_ID_GIF_IMG_IMAGE_HEIGHT = 0x2C4,
IGMDTAG_ID_GIF_IMG_FIELDS = 0x2C5,
IGMDTAG_ID_GIF_IMG_FLD_LOC_COLOR_TABLE = 0x2C6,
IGMDTAG_ID_GIF_IMG_FLD_INTERLACE = 0x2C7,
IGMDTAG_ID_GIF_IMG_FLD_SORT = 0x2C8,
IGMDTAG_ID_GIF_IMG_FLD_SIZE = 0x2C9,
IGMDTAG_ID_GIF_LOCAL_COLOR_TABLE = 0x40,
IGMDTAG_ID_GIF_GRAPHIC_CONTROL_EXT = 0xF9,
IGMDTAG_ID_GIF_GCE_FIELDS = 0xF91,
IGMDTAG_ID_GIF_GCE_FLD_DISPOSAL_METHOD = 0xF92,
IGMDTAG_ID_GIF_GCE_FLD_USER_INPUT = 0xF93,
IGMDTAG_ID_GIF_GCE_FLD_TRANSPARENT = 0xF94,
IGMDTAG_ID_GIF_GCE_DELAY_TIME = 0xF95,
IGMDTAG_ID_GIF_GCE_TRANSPARENT_COLOR = 0xF96,
IGMDTAG_ID_GIF_COMMENT_EXTENSION = 0xFE,
IGMDTAG_ID_GIF_PLAIN_TEXT_EXTENSION = 0x01,
IGMDTAG_ID_GIF_TXT_GRID_LEFT = 0x11,
IGMDTAG_ID_GIF_TXT_GRID_TOP = 0x12,
IGMDTAG_ID_GIF_TXT_GRID_WIDTH = 0x13,
IGMDTAG_ID_GIF_TXT_GRID_HEIGHT = 0x14,
IGMDTAG_ID_GIF_TXT_CELL_WIDTH = 0x15,
IGMDTAG_ID_GIF_TXT_CELL_HEIGHT = 0x16,
IGMDTAG_ID_GIF_TXT_FOREGROUND_COLOR = 0x17,
IGMDTAG_ID_GIF_TXT_BACKGROUND_COLOR = 0x18,
IGMDTAG_ID_GIF_TXT_TEXT_DATA = 0x19,
IGMDTAG_ID_GIF_APP_EXTENSION = 0xFF,
IGMDTAG_ID_GIF_APP_IDENTIFIER = 0xFF1,
IGMDTAG_ID_GIF_APP_AUTH_CODE = 0xFF2,
IGMDTAG_ID_GIF_APP_DATA = 0xFF3,
IGMDTAG_ID_GIF_AFTER_IMAGE_EXT = 0xFFF


DCRAW Non-Image Data Structure

  • Common level
  • Format-specific level
  • Statistics

DCRAW level

Name
Id
Type
Value Type
Value
Value Length
Read Only
"Common"
IGMDTAG_ID_DCRAW_COMMON
LEVEL_START
0
NULL
0
TRUE
"EXIF"
IG_FORMAT_EXIF_TIFF
LEVEL_START
0
NULL
0
TRUE
"TIFF"
IG_FORMAT_TIF
LEVEL_START
0
NULL
0
TRUE
"CIFF"
IG_FORMAT_CIFF
LEVEL_START
0
NULL
0
TRUE
"Statistics"
IGMDTAG_ID_DCRAW_STATISTICS
LEVEL_START
0
NULL
0
TRUE

Common level

The Common sub-tree contains values that are common or useful for all raw files.

All values in the Common sub-tree have Type = VALUE_ITEM and are Read Only.

Name
Id
Description
AsShotNeutral
IGMDTAG_ID_DCRAW_ASSHOTNEUTRAL
Specifies the selected white balance at time of capture, encoded as the coordinates of a perfectly neutral color in linear reference space values.
BaselineExposure
IGMDTAG_ID_DCRAW_BASELINEEXPOSURE
Specifies baseline exposure of the camera, in EV units. Application may use this value to adjust exposure compensation for particular camera model.
BitsPerSample
IGMDTAG_ID_DCRAW_BITSPERSAMPLE
Bits per sample in the original raw image (before reconstruction)
BlackLevelRepeatDim
IGMDTAG_ID_DCRAW_BLACKLEVELREPEATDIM
This tag specifies repeat pattern size for the "BlackLevel" tag.
CalibrationIlluminant1
IGMDTAG_ID_DCRAW_CALIBRATIONILLUMINANT1
The illuminant used for ColorMatrix1 color conversion matrix. Allowed values are the same as allowed values for LightSource EXIF tag (see Exif specification).
CalibrationIlluminant2
IGMDTAG_ID_DCRAW_CALIBRATIONILLUMINANT1
The illuminant used for ColorMatrix2 color conversion matrix. Allowed values are the same as allowed values for LightSource EXIF tag (see Exif specification).
CFAPattern
IGMDTAG_ID_DCRAW_CFAPATTERN
This tag encodes the actual color filter array geometric pattern of the image sensor used to capture the single sensor color image.
CFARepeatPatternDim
IGMDTAG_ID_DCRAW_CFAREPEATPATTERNDIM
This tag encodes the number of pixels horizontally and vertically that are needed to uniquely define the repeat pattern of the color filter array.
ColorMatrix1
IGMDTAG_ID_DCRAW_COLORMATRIX1
Conversion matrix from XYZ to camera colorspace, for illuminant specified by CalibrationIlluminant1 tag. Matrix is stored in row scan order.
ColorMatrix2
IGMDTAG_ID_DCRAW_COLORMATRIX2
Conversion matrix from XYZ to camera colorspace, for illuminant specified by CalibrationIlluminant2 tag. Matrix is stored in row scan order.
ColorPlanes
IGMDTAG_ID_DCRAW_COLORPLANES
Number of colors in the CFA pattern
ImageHeight
IGMDTAG_ID_DCRAW_IMAGEHEIGHT
Image height after that masked pixels were trimmed out
ImageWidth
IGMDTAG_ID_DCRAW_IMAGEWIDTH
Image width after that masked pixels were trimmed out
Make
IGMDTAG_ID_DCRAW_MAKE
Name of the camera manufacturer
Model
IGMDTAG_ID_DCRAW_MODEL
Name of the camera model
PhotometricInterpretation
IGMDTAG_ID_DCRAW_PHOTOMETRICINTERPRETATION
TIF_PHOTO_CFA, TIF_PHOTO_RGB
RawHeight
IGMDTAG_ID_DCRAW_RAWHEIGHT
Raw Image Height, including masked pixels
RawLeft
IGMDTAG_ID_DCRAW_RAWLEFT
X coordinate of first column of non-masked pixels
RawTop
IGMDTAG_ID_DCRAW_RAWTOP
Y coordinate of first row of non-masked pixels
RawWidth
IGMDTAG_ID_DCRAW_RAWWIDTH
Raw Image Width, including masked pixels
SamplesPerPixel
IGMDTAG_ID_DCRAW_SAMPLESPERPIXEL
Number of samples per pixel in the original image, before reconstruction
TimeStamp
IGMDTAG_ID_DCRAW_TIMESTAMP
Time stamp
UniqueCameraModel
IGMDTAG_ID_DCRAW_UNIQUECAMERAMODEL
Unique, non-localized name for the camera model that created the image in the raw file.
WhiteLevel
IGMDTAG_ID_DCRAW_WHITELEVEL
Image pixel value that corresponds to fully saturated encoding level.

Format-specific level

This level includes format-specific metadata that is found in the image (EXIF, TIFF or CIFF). See corresponding sections for structure of metadata for these formats.

Statistics

This section contains data which is collected during image loading, rather than obtained from image's header or metadata. Only image loading functions, such as IG_fltr_load_file generate this section. Header reading functions, such as IG_info_get, do not generate it.

For some cameras ImageGear uses predefined values for BlackLevel, so they are not calculated from pixel data. In this case, ImageGear also places BlackLevel tag to Statistics section, rather than in Common section, for uniformity reasons.

The following tags can be present in the Statistics section:

Name
ID
Description
BlackLevelRepeatDim
IGMDTAG_ID_DCRAW_BLACKLEVELREPEATDIM
This tag specifies repeat pattern size for the "BlackLevel" tag.
BlackLevel
IGMDTAG_ID_DCRAW_BLACKLEVEL
This tag specifies the zero light (a.k.a. thermal black or black current) encoding level. It is calculated during image loading by averaging pixel values in the masked areas of the image.


XMP Non-Image Data Structure

ImageGear support XMP metadata in the following image file formats:

  • TIFF: Read, Write
  • EXIF-TIFF: Read, Write
  • JFIF-JPEG: Read, Write
  • EXIF-JPEG: Read, Write
  • PSD: Read

In TIFF and EXIF-TIFF formats, XMP metadata is located in the main IFD.

In JFIF-JPEG and EXIF-JPEG formats, XMP metadata is located in one of the App1 segments. Note that EXIF metadata is also located in an App1 segment.

In PSD format, XMP metadata is located in the Photoshop Resources tree.

XMP metadata tree structure:

  • XMP Root level
  • XMP Schema level
  • XMP Namespace level
  • XMP Property Collection level
  • XMP Simple Property level
  • XMP Array level
  • XMP Array Items level
  • XMP Language Alternative Property level
  • XMP Structure level
  • XMP Structure Items level
  • XMP Qualifiers level
  • XMP Qualifier level

XMP Root level

Name
Id
Type
Level Type
Value Type
<Schema namespace URI 1>
ImGearXMPTagIDs.Description
Tree
XMP Schema
N/A
<Schema namespace URI 1>
ImGearXMPTagIDs.Description
Tree
XMP Schema
N/A
...

XMP Schema level

Name
Id
Type
Level Type
Value Type
About
ImGearXMPTagIDs.About
Leaf
N/A
String
Namespace
ImGearXMPCommonTagIDs. Namespace
Tree
XMP Namespace
N/A
Properties
ImGearXMPCommonTagIDs.
Tree
XMP Property Collection
N/A

XMP Namespace level

Name
Id
Type
Level Type
Value Type
Prefix
ImGearXMPTagIDs.Prefix
Leaf
N/A
String
URI
ImGearXMPTagIDs.URI
Leaf
N/A
String

XMP Property Collection level

Name
Id
Type
Level Type
Value Type
<Property 1 name>
ImGearXMPTagIDs.Property
Tree
XMP Simple Property / XMP Array / XMP Structure
N/A
<Property 2 name>
ImGearXMPTagIDs.Property
Tree
XMP Simple Property, XMP Array/Structure property
N/A
...

XMP Simple Property level

Name
Id
Type
Level Type
Value Type
Value
ImGearXMPropertyTagIDs.Value
Leaf
N/A
<Value type>
Qualifiers
ImGearXMPropertyTagIDs.Qualifiers
Tree
XMP Qualifiers collection
N/A

XMP Array level

Name
Id
Type
Level Type
Value Type
Bag / Seq / Alt
ImGearXMPropertyTagIDs.Bag / ImGearXMPropertyTagIDs.Seq / ImGearXMPropertyTagIDs.Alt
Tree
XMP Array items level
N/A

XMP Array Items level

Name
Id
Type
Level Type
Value Type
Item
ImGearXMPropertyTagIDs.Item
Tree
XMP Simple Property / XMP Language Alternative Property / XMP Structure
<N/A>
Item
ImGearXMPropertyTagIDs.Item
Tree
XMP Simple Property / XMP Language Alternative Property / XMP Structure
<N/A>
...

XMP Language Alternative Property level

Name
Id
Type
Level Type
Value Type
Value
ImGearXMPropertyTagIDs.Value
Leaf
N/A
<Value type>
Lang
ImGearXMPropertyTagIDs.Lang
Leaf
N/A
String

XMP Structure level

Name
Id
Type
Level Type
Value Type
Struct
ImGearXMPropertyTagIDs.Struct
Tree
XMP Structure items level
N/A

XMP Structure Items level

Name
Id
Type
Level Type
Value Type
<Field 1 name 1>
ImGearXMPropertyTagIDs.Property
Tree
XMP Simple Property
<N/A>
<Field 2 name>
ImGearXMPropertyTagIDs. Property
Tree
XMP Simple Property
<N/A>
...

XMP Qualifiers level

Name
Id
Type
Level Type
Value Type
<Qualifier 1 name>
ImGearXMPropertyTagIDs. Qualifier
Tree
XMP Qualifier
<N/A>
<Qualifier 2 name>
ImGearXMPropertyTagIDs. Qualifier
Tree
XMP Qualifier
<N/A>
...

XMP Qualifier level

Name
Id
Type
Level Type
Value Type
Value
ImGearXMPCommonTagIDs.
Value
Leaf
N/A
<Value type>


JPEG2000 Component Metadata

ImageGear JPEG2K Component allows you to work with non-image data stored in supported file formats. It provides metadata tags that make possible manipulating with such kinds of non-image information:

  • XML & IPR information,
  • alpha channels mapping,
  • chroma keys,
  • composition layers,
  • format type information,
  • Type of compression (loss, lossless).

JP2 Metadata Tags

There are the following metadata tags you can use to work with JP2 files:

    • "XML"
    • "IPR"
    • "Format"
    • "CompressionType"
    • "AlphaMapping",
    • "Alpha1", "Alpha2", "Alpha3", "Alpha4",

JPX Metadata Tags

There are the following metadata tags you can use to work with JPX files:

    • "XML"
    • "IPR"
    • "ComposedLayersQty",
    • "Chroma",
    • "AlphaMapping",
    • "Alpha1", "Alpha2", "Alpha3", "Alpha4",

MJ2 Metadata Tags

There are the following metadata tags you can use to work with MJ2 files:

    • "AlphaMapping",
    • Alpha1,
    • Alpha2,
    • Alpha3

See "Alpha1", "Alpha2", "Alpha3", "Alpha4"

JPEG2000 Metadata Tags reference

NOTE: Value of these tags below can be changed using LPAFT_IG_METAD_ITEM_SET_CB callback only

"AlphaMapping"

This tag establishes the relationship, if any, between color channels and alpha (and/or pre-multiplied) alpha channels. Each element of array specifies number of alpha channel associated with regular (color) channel. Zero or negative value means absence of alpha mapping for particular color channel. For example:

"AlphaMapping" with {1, 1, 1, -1} as value means that all red, green and blue channels of image are mapped to single (first) alpha channel, which available under 0-index for current image through ImageGear API. {-1, 2, 1, -1} value means availability of two different alpha channels for green and blue channels and absence of alpha channel for red channel. Second alpha (located in "Alpha2") is mapped to green color channel and first is mapped to

Addinional information about available alpha channels can be accessed through "Alpha1", "Alpha2", "Alpha3" and "Alpha4" tags

"Alpha1", "Alpha2", "Alpha3", "Alpha4"

Each of these tags represents information about alpha channels. Valid value for each tag is array with three integer elements. First element represents index of codestream (-1 or non-negative value), in which alpha channel is (or "should be" in case of write) resided. Second - index of component in which alpha is stored (-1 or non-negative value). Last element specifies whether alpha is regular (0) or pre-multiplied (1). For example:

"Alpha1" with {0, 3, 0} as value means that first alpha channel is regular and located in fourth component of the first codestream. {1, 0, 1} value represents pre-multiplied alpha in first component of second codestream in JPX layer.

NOTE: For JP2 and MJ2 file formats value of the first element (codestream index) is restricted to {-1, 0} set. Only for JPX files it's allowed to store alpha channels in separate codestream.

"Chroma"

This tag contains array of values each of which is treated as fully-transparent for particular channel. Negative value of any element means absence of chroma-key.

"ComposedLayersQty"

This tag specifies number of composed layers involved into loaded composition. It appears only for images loaded by JPX filter with value of LOAD_COMPOSITION control parameter set to TRUE.

"XML"

This tag serves for getting and setting some specific information written in XML language. Please note that only JPEG2000 format is able to store XML data. It must be set as a text string ended with "\0".

"IPR"

This tag serves for getting and setting IPR (Intellectual Property Rights) information. The IPR metadata defines metadata to either protect the rights of the owner of the image or provide further information to request permission to use it. It is important for developers and users to properly protect the rights of the owner of the image data.

Please note that only JPEG2000 format is able to store IPR data. It must be set as a text string ended with "\0".

"Format"

This tag serves for getting format of JPEG2K file. Its possible values are:

    • IG_JPEG2K_FORMAT_CODESTREAM =0,
    • IG_JPEG2K_FORMAT_JP2 =1

"CompressionType"

This tag serves for getting a compression type of JPEG2K image. Its possible values are:

    • IG_JPEG2K_TYPE_LOSSY = 0,
    • IG_JPEG2K_TYPE_LOSSLESS = 1

JPEG2K sets one of these values depending on the type of the image. This tag is not used in JPEG2K writing.


Appendix C: Recognition Component Specifications

Appendix C: Recognition Component Specifications

This Appendix provides you with detailed specifications of ImageGear Recognition component characters, codepages, languages lists, modules, etc.1

1Portions of this document are excerpted from ScanSoft's OmniPage Capture SDK 12.5 reference materials. Copyright (c) 2004 ScanSoft, Inc. All rights reserved. ScanSoft is a trademark or registered trademark of ScanSoft, Inc. in the United States and other countries.


Characters and Code Pages

The following tables list all the characters handled by the recognition engine, arranged in filter categories. The letters are in alphabetical order. You cannot extend the recognition engine's capability beyond these characters (approx. 500 in total).

The first columns present the character names and their UNICODE value. The next columns show the character in ASCII (437), Roman-8, ANSI (1252), Greek-Elot, Greek-Memotek and WordPerfect code pages.

Some API functions need character strings stated in UNICODE values.

"MIS" in the tables means that the character is missing from the Code Page.

NUMBERS (Digits)

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Digit Zero
0x0030
0
0
0
0
0
0x0030
Digit One
0x0031
1
1
1
1
1
0x0031
Digit Two
0x0032
2
2
2
2
2
0x0032
Digit Three
0x0033
3
3
3
3
3
0x0033
Digit Four
0x0034
4
4
4
4
4
0x0034
Digit Five
0x0035
5
5
5
5
5
0x0035
Digit Six
0x0036
6
6
6
6
6
0x0036
Digit Seven
0x0037
7
7
7
7
7
0x0037
Digit Eight
0x0038
8
8
8
8
8
0x0038
Digit Nine
0x0039
9
9
9
9
9
0x0039

LATIN CHARACTERS (Upper case)

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Cap. A Diaeresis
0x00c4
142
216
196
MIS
MIS
0x011e
Cap. A Acute
0x00c1
MIS
224
193
MIS
MIS
0x011a
Cap. A Ring
0x00c5
143
208
197
MIS
MIS
0x0122
Cap. A Circumflex
0x00c2
MIS
162
194
MIS
MIS
0x011c
Cap. A Grave
0x00c0
MIS
161
192
MIS
MIS
0x0120
Cap. A Tilde (Portuguese)
0x00c3
MIS
225
195
MIS
MIS
0x014c
Cap. A Breve (Romanian)
0x0102
MIS
MIS
MIS
MIS
MIS
MIS
Cap. A Ogonok (Polish, Lith...)
0x0104
MIS
MIS
MIS
MIS
MIS
0x015e
Cap. A Macron (Latvian)
0x0100
MIS
MIS
MIS
MIS
MIS
0x015c
Cap. AE
0x00c6
146
211
198
MIS
MIS
0x0124
Cap. A
0x0041
A
A
A
A
A
0x0041
Cap. B
0x0042
B
B
B
B
B
0x0042
Cap. C Acute
0x0106
MIS
MIS
MIS
MIS
MIS
0x0160
Cap. C Circumflex (Esperanto)
0x0108
MIS
MIS
MIS
MIS
MIS
0x0164
Cap. C Hacek
0x010c
MIS
MIS
MIS
MIS
MIS
0x0162
Cap. C Dot (Maltese)
0x010a
MIS
MIS
MIS
MIS
MIS
0x0166
Cap. C Cedilla
0x00c7
128
180
199
MIS
MIS
0x0126
Cap. C
0x0043
C
C
C
C
C
0x0043
Cap. D Hacek (Czech, Slovak)
0x010e
MIS
MIS
MIS
MIS
MIS
0x0168
Cap. D Stroke (Croatian)
0x0110
MIS
MIS
MIS
MIS
MIS
0X014e
Cap. D
0x0044
D
D
D
D
D
0x0044
Cap. ETH (Icelandic, Faroese)
0x00d0
MIS
227
208
MIS
MIS
0x0156
Cap. E Acute
0x00c9
144
220
201
MIS
MIS
0x0128
Cap. E Diaeresis
0x00cb
MIS
165
203
MIS
MIS
0x012c
Cap. E Circumflex
0x00ca
MIS
164
202
MIS
MIS
0x012a
Cap. E Grave
0x00c8
MIS
163
200
MIS
MIS
0x012e
Cap. E Hacek
0x011a
MIS
MIS
MIS
MIS
MIS
0x016a
Cap. E Dot (Lithuanian)
0x0116
MIS
MIS
MIS
MIS
MIS
0x016c
Cap. E Ogonok (Polish, Lith...)
0x0118
MIS
MIS
MIS
MIS
MIS
0x0170
Cap. E Macron (Latvian)
0x0112
MIS
MIS
MIS
MIS
MIS
0x016e
Cap. E
0x0045
E
E
E
E
E
0x0045
Cap. F
0x0046
F
F
F
F
F
0x0046
Cap. G Circumflex (Esperanto)
0x011c
MIS
MIS
MIS
MIS
MIS
0x017a
Cap. G Breve (Turkish)
0x011e
MIS
MIS
MIS
MIS
MIS
0x0176
Cap. G Dot (Maltese)
0x0120
MIS
MIS
MIS
MIS
MIS
0x017c
Cap. G Cedilla (Latv. + Lapp)
0x0122
MIS
MIS
MIS
MIS
MIS
0x0178
Cap. G
0x0047
G
G
G
G
G
0x0047
Cap. H Circumflex (Esperanto)
0x0124
MIS
MIS
MIS
MIS
MIS
0x017e
Cap. H Bar (Maltese)
0x0126
MIS
MIS
MIS
MIS
MIS
0x0180
Cap. H
0x0048
H
H
H
H
H
0x0048
Cap. I Diaeresis
0x00cf
MIS
167
207
MIS
MIS
0x0134
Cap. I Grave
0x00cc
MIS
230
204
MIS
MIS
0x0136
Cap. I Circumflex
0x00ce
MIS
166
206
MIS
MIS
0x0132
Cap. I Acute
0x00cd
MIS
229
205
MIS
MIS
0x0130
Cap. I Tilde (Eskimo, Kikuyu)
0x0128
MIS
MIS
MIS
MIS
MIS
0x0188
Cap. I Dot (Turkish)
0x0130
MIS
MIS
MIS
MIS
MIS
0x0182
Cap. I Ogonok (Lithuanian)
0x012e
MIS
MIS
MIS
MIS
MIS
0x0186
Cap. I Macron (Latvian...)
0x012a
MIS
MIS
MIS
MIS
MIS
0x0184
Cap. I Hacek
0x012c
MIS
MIS
MIS
MIS
MIS
MIS
Cap. I
0x0049
I
I
I
I
I
0x0049
Cap. J Circumflex (Esperanto)
0x0134
MIS
MIS
MIS
MIS
MIS
0x018c
Cap. J
0x004a
J
J
J
J
J
0x004a
Cap. K Cedilla (Latvian)
0x0136
MIS
MIS
MIS
MIS
MIS
0x018e
Cap. K
0x004b
K
K
K
K
K
0x004b
Cap. L Acute (Slovak)
0x0139
MIS
MIS
MIS
MIS
MIS
0x0190
Cap. L Hacek (Slovak)
0x013d
MIS
MIS
MIS
MIS
MIS
0x0192
Cap. L Slash (Polish...)
0x0141
MIS
MIS
MIS
MIS
MIS
0x0198
Cap. L Cedilla (Latvian)
0x013b
MIS
MIS
MIS
MIS
MIS
0x0194
Cap. L
0x004c
L
L
L
L
L
0x004c
Cap. M
0x004d
M
M
M
M
M
0x004d
Cap. N Tilde
0x00d1
165
182
209
MIS
MIS
0x0138
Cap. N Acute (Polish...)
0x0143
MIS
MIS
MIS
MIS
MIS
0x019a
Cap. N Hacek (Czech, Slovak)
0x0147
MIS
MIS
MIS
MIS
MIS
0x019e
Cap. N Cedilla (Latvian)
0x0145
MIS
MIS
MIS
MIS
MIS
0x01a0
Cap. ENG (Lappish)
0x014a
MIS
MIS
MIS
MIS
MIS
0x01d2
Cap. N
0x004e
N
N
N
N
N
0x004e
Cap. O Diaeresis
0x00d6
153
218
214
MIS
MIS
0x013e
Cap. O Acute
0x00d3
MIS
231
211
MIS
MIS
0x013a
Cap. O Circumflex
0x00d4
MIS
223
212
MIS
MIS
0x013c
Cap. O Grave
0x00d2
MIS
232
210
MIS
MIS
0x0140
Cap. O Tilde (Estonian, Port.)
0x00d5
MIS
233
213
MIS
MIS
0x0152
Cap. O Double Acute(Hungarian)
0x0150
MIS
MIS
MIS
MIS
MIS
0x01a2
Cap. O Macron (Latvian)
0x014c
MIS
MIS
MIS
MIS
MIS
0x01a4
Cap. O Breve (Latin)
0x014e
MIS
MIS
MIS
MIS
MIS
MIS
Cap. O Slash (Danish, Nor. ...)
0x00d8
MIS
210
216
MIS
MIS
0x0150
Cap. O E (French)
0x0152
MIS
MIS
140
MIS
MIS
0x01a6
Cap. O
0x004f
O
O
O
O
O
0x004f
Cap. P
0x0050
P
P
P
P
P
0x0050
Cap. Q
0x0051
Q
Q
Q
Q
Q
0x0051
Cap. R Acute (Slovak, Basque...)
0x0154
MIS
MIS
MIS
MIS
MIS
0x01a8
Cap. R Hacek (Czech...)
0x0158
MIS
MIS
MIS
MIS
MIS
0x01aa
Cap. R Cedilla (Latvian)
0x0156
MIS
MIS
MIS
MIS
MIS
0x01ac
Cap. R
0x0052
R
R
R
R
R
0x0052
Cap. S Hacek
0x0160
MIS
235
138
MIS
MIS
0x01b0
Cap. S Acute (Polish...)
0x015a
MIS
MIS
MIS
MIS
MIS
0x01ae
Cap. S Circumflex (Esperanto)
0x015c
MIS
MIS
MIS
MIS
MIS
0x01b4
Cap. S Cedilla (Turkish, Rom. ...)
0x015e
MIS
MIS
MIS
MIS
MIS
0x01b2
Cap. S
0x0053
S
S
S
S
S
0x0053
Cap. T Hacek (Czech, Slovak)
0x0164
MIS
MIS
MIS
MIS
MIS
0x01b6
Cap. T Cedilla (Romanian)
0x0162
MIS
MIS
MIS
MIS
MIS
0x01b8
Cap. T THORN (Icelandic)
0x00de
MIS
240
222
MIS
MIS
MIS
Cap. T Bar (Lappish)
0x0166
MIS
MIS
MIS
MIS
MIS
0x01ba
Cap. T
0x0054
T
T
T
T
T
0x0054
Cap. U Diaeresis
0x00dc
154
219
220
MIS
MIS
0x0146
Cap. U Acute
0x00da
MIS
237
218
MIS
MIS
0x0142
Cap. U Circumflex
0x00db
MIS
174
219
MIS
MIS
0x0144
Cap. U Grave
0x00d9
MIS
173
217
MIS
MIS
0x0148
Cap. U Tilde
0x0168
MIS
MIS
MIS
MIS
MIS
0x01c6
Cap. U Double Acute(Hungarian)
0x0170
MIS
MIS
MIS
MIS
MIS
0x01be
Cap. U Breve (Latin, Esperanto)
0x016c
MIS
MIS
MIS
MIS
MIS
0x01bc
Cap. U Ring (Czech)
0x016e
MIS
MIS
MIS
MIS
MIS
0x01c4
Cap. U Macron (Lith.+Latv. ...)
0x016a
MIS
MIS
MIS
MIS
MIS
0x01c0
Cap. U Ogonok (Lithuanian)
0x0172
MIS
MIS
MIS
MIS
MIS
0x01c2
Cap. U
0x0055
U
U
U
U
U
0x0055
Cap. V
0x0056
V
V
V
V
V
0x0056
Cap. W Circumflex (Welsh)
0x0174
MIS
MIS
MIS
MIS
MIS
0x01c8
Cap. W
0x0057
W
W
W
W
W
0x0057
Cap. X
0x0058
X
X
X
X
X
0x0058
Cap. Y Acute
0x00dd
MIS
177
221
MIS
MIS
0x0154
Cap. Y Diaeresis (French)
0x0178
MIS
238
159
MIS
MIS
0x014a
Cap. Y Circumflex (Welsh)
0x0176
MIS
MIS
MIS
MIS
MIS
0x01ca
Cap. Y
0x0059
Y
Y
Y
Y
Y
0x0059
Cap. Z Acute (Sorbian)
0x0179
MIS
MIS
MIS
MIS
MIS
0x01cc
Cap. Z Hacek
0x017d
MIS
MIS
MIS
MIS
MIS
0x01ce
Cap. Z Dot (Polish, Maltese)
0x017b
MIS
MIS
MIS
MIS
MIS
0x01d0
Cap. Z
0x005a
Z
Z
Z
Z
Z
0x005a

LATIN CHARACTERS (Lower case)

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Sml. A Diaeresis
0x00e4
132
204
228
MIS
MIS
0x011f
Sml. A Acute
0x00e1
160
196
225
MIS
MIS
0x011b
Sml. A Ring
0x00e5
134
212
229
MIS
MIS
0x0123
Sml. A Circumflex
0x00e2
131
192
226
MIS
MIS
0x011d
Sml. A Grave
0x00e0
133
200
224
MIS
MIS
0x0121
Sml. A Tilde
0x00e3
MIS
226
227
MIS
MIS
0x014d
Sml. A Feminine Ord. Ind. (Sp...)
0x00aa
166
249
170
MIS
MIS
0x040f
Sml. A Breve
0x0103
MIS
MIS
MIS
MIS
MIS
0x015b
Sml. A Ogonok
0x0105
MIS
MIS
MIS
MIS
MIS
0x015f
Sml. A Macron
0x0101
MIS
MIS
MIS
MIS
MIS
0x015d
Sml. AE
0x00e6
145
215
230
MIS
MIS
0x0125
Sml. A
0x0061
a
a
a
a
a
0x0061
Sml. B
0x0062
b
b
b
b
b
0x0062
Sml. C Acute
0x0107
MIS
MIS
MIS
MIS
MIS
0x0161
Sml. C Circumflex
0x0109
MIS
MIS
MIS
MIS
MIS
0x0165
Sml. C Hacek
0x010d
MIS
MIS
MIS
MIS
MIS
0x0163
Sml. C Dot
0x010b
MIS
MIS
MIS
MIS
MIS
0x0167
Sml. C Cedilla
0x00e7
135
181
231
MIS
MIS
0x0127
Sml. C
0x0063
c
c
c
c
c
0x0063
Sml. D Hacek
0x010f
MIS
MIS
MIS
MIS
MIS
0x0169
Sml. D Stroke
0x0111
MIS
MIS
MIS
MIS
MIS
0X0145
Sml. D
0x0064
d
d
d
d
d
0x0064
Sml. ETH
0x00f0
MIS
228
240
MIS
MIS
0x0157
Sml. E Acute
0x00e9
130
197
233
MIS
MIS
0x0129
Sml. E Diaeresis
0x00eb
137
205
235
MIS
MIS
0x012d
Sml. E Circumflex
0x00ea
136
193
234
MIS
MIS
0x012b
Sml. E Grave
0x00e8
138
201
232
MIS
MIS
0x012f
Sml. E Hacek
0x011b
MIS
MIS
MIS
MIS
MIS
0x016b
Sml. E Dot
0x0117
MIS
MIS
MIS
MIS
MIS
0x016d
Sml. E Ogonok
0x0119
MIS
MIS
MIS
MIS
MIS
0x0171
Sml. E Macron
0x0113
MIS
MIS
MIS
MIS
MIS
0x016f
Sml. E
0x0065
e
e
e
e
e
0x0065
Sml. F
0x0066
f
f
f
f
f
0x0066
Sml. G Circumflex
0x011d
MIS
MIS
MIS
MIS
MIS
0x017b
Sml. G Breve
0x011f
MIS
MIS
MIS
MIS
MIS
0x0177
Sml. G Dot
0x0121
MIS
MIS
MIS
MIS
MIS
0x017d
Sml. G Cedilla
0x0123
MIS
MIS
MIS
MIS
MIS
0x0179
Sml. G
0x0067
g
g
g
g
g
0x0067
Sml. H Circumflex
0x0125
MIS
MIS
MIS
MIS
MIS
0x017f
Sml. H Bar
0x0127
MIS
MIS
MIS
MIS
MIS
0x0181
Sml. H
0x0068
h
h
h
h
h
0x0068
Sml. I Diaeresis
0x00ef
139
221
239
MIS
MIS
0x0135
Sml. I Grave
0x00ec
141
217
236
MIS
MIS
0x0137
Sml. I Circumflex
0x00ee
140
209
238
MIS
MIS
0x0133
Sml. I Acute
0x00ed
161
213
237
MIS
MIS
0x0131
Sml. I Tilde
0x0129
MIS
MIS
MIS
MIS
MIS
0x0189
Sml. I Ogonok
0x012f
MIS
MIS
MIS
MIS
MIS
0x0187
Sml. I Macron
0x012b
MIS
MIS
MIS
MIS
MIS
0x0185
Sml. I Hacek
0x012d
MIS
MIS
MIS
MIS
MIS
MIS
Sml. Dotless I
0x0131
MIS
MIS
MIS
MIS
MIS
0x0118
Sml. I
0x0069
i
i
i
i
i
0x0069
Sml. J
0x006a
j
j
j
j
j
0x006a
Sml. J Circumflex
0x0135
MIS
MIS
MIS
MIS
MIS
0x018d
Sml. K Cedilla
0x0137
MIS
MIS
MIS
MIS
MIS
0x018f
Sml. K
0x006b
k
k
k
k
k
0x006b
Sml. L Acute
0x013a
MIS
MIS
MIS
MIS
MIS
0x0191
Sml. L Hacek
0x013e
MIS
MIS
MIS
MIS
MIS
0x0193
Sml. L Slash
0x0142
MIS
MIS
MIS
MIS
MIS
0x0199
Sml. L Cedilla
0x013c
MIS
MIS
MIS
MIS
MIS
0x0195
Sml. L
0x006c
l
l
l
l
l
0x006c
Sml. M
0x006d
m
m
m
m
m
0x006d
Sml. N Tilde
0x00f1
164
183
241
MIS
MIS
0x0139
Sml. N Acute
0x0144
MIS
MIS
MIS
MIS
MIS
0x019b
Sml. N Hacek
0x0148
MIS
MIS
MIS
MIS
MIS
0x019f
Sml. N Cedilla
0x0146
MIS
MIS
MIS
MIS
MIS
0x019d
Sml. ENG
0x014b
MIS
MIS
MIS
MIS
MIS
0x01d3
Sml. N
0x006e
n
n
n
n
n
0x006e
Sml. O Diaeresis
0x00f6
148
206
246
MIS
MIS
0x013f
Sml. O Acute
0x00f3
162
198
243
MIS
MIS
0x013b
Sml. O Circumflex
0x00f4
147
194
244
MIS
MIS
0x013d
Sml. O Grave
0x00f2
149
202
242
MIS
MIS
0x0141
Sml. O Tilde
0x00f5
MIS
234
245
MIS
MIS
0x0153
Sml. O Masculine Ord. Ind.(Sp...)
0x00ba
167
250
186
MIS
MIS
0x0410
Sml. O Double Acute
0x0151
MIS
MIS
MIS
MIS
MIS
0x01a3
Sml. O Macron
0x014d
MIS
MIS
MIS
MIS
MIS
0x01a5
Sml. O Breve
0x014f
MIS
MIS
MIS
MIS
MIS
MIS
Sml. O Slash
0x00f8
MIS
214
248
MIS
MIS
0x0151
Sml. O E
0x0153
MIS
MIS
156
MIS
MIS
0x01a7
Sml. O
0x006f
o
o
o
o
o
0x006f
Sml. P
0x0070
p
p
p
p
p
0x0070
Sml. Q
0x0071
q
q
q
q
q
0x0071
Sml. R Acute
0x0155
MIS
MIS
MIS
MIS
MIS
0x01a9
Sml. R Hacek
0x0159
MIS
MIS
MIS
MIS
MIS
0x01ab
Sml. R Cedilla
0x0157
MIS
MIS
MIS
MIS
MIS
0x01ad
Sml. R
0x0072
r
r
r
r
r
0x0072
Sml. S Hacek
0x0161
MIS
236
154
MIS
MIS
0x01b1
Sml. S Acute
0x015b
MIS
MIS
MIS
MIS
MIS
0x01af
Sml. S Circumflex
0x015d
MIS
MIS
MIS
MIS
MIS
0x01b5
Sml. S Cedilla
0x015f
MIS
MIS
MIS
MIS
MIS
0x01b3
Sharp SS (German)
0x00df
225
222
223
169
153
0x0117
Sml. S
0x0073
s
s
s
s
s
0x0073
Sml. T Hacek
0x0165
MIS
MIS
MIS
MIS
MIS
0x01b7
Sml. T Cedilla
0x0163
MIS
MIS
MIS
MIS
MIS
0x01b9
Sml. T THORN
0x00fe
MIS
241
254
MIS
MIS
MIS
Sml. T Bar
0x0167
MIS
MIS
MIS
MIS
MIS
0x01bb
Sml. T
0x0074
t
t
t
t
t
0x0074
Sml. U Diaeresis
0x00fc
129
207
252
MIS
MIS
0x0147
Sml. U Acute
0x00fa
163
199
250
MIS
MIS
0x0143
Sml. U Circumflex
0x00fb
150
195
251
MIS
MIS
0x0145
Sml. U Grave
0x00f9
151
203
249
MIS
MIS
0x014b
Sml. U Tilde
0x0169
MIS
MIS
MIS
MIS
MIS
0x01c7
Sml. U Double Acute
0x0171
MIS
MIS
MIS
MIS
MIS
0x01bf
Sml. U Breve
0x016d
MIS
MIS
MIS
MIS
MIS
0x01bd
Sml. U Ring
0x016f
MIS
MIS
MIS
MIS
MIS
0x01bb
Sml. U Macron
0x016b
MIS
MIS
MIS
MIS
MIS
0x01c1
Sml. U Ogonok
0x0173
MIS
MIS
MIS
MIS
MIS
0x01c3
Sml. U
0x0075
u
u
u
u
u
0x0075
Sml. V
0x0076
v
v
v
v
v
0x0076
Sml. W Circumflex
0x0175
MIS
MIS
MIS
MIS
MIS
0x01c9
Sml. W
0x0077
w
w
w
w
w
0x0077
Sml. X
0x0078
x
x
x
x
x
0x0078
Sml. Y Acute
0x00fd
MIS
178
253
MIS
MIS
0x0155
Sml. Y Diaeresis
0x00ff
152
239
255
MIS
MIS
0x014b
Sml. Y Circumflex
0x0177
MIS
MIS
MIS
MIS
MIS
0x01cb
Sml. Y
0x0079
y
y
y
y
y
0x0079
Sml. Z Acute
0x017a
MIS
MIS
MIS
MIS
MIS
0x01cd
Sml. Z Hacek
0x017e
MIS
MIS
MIS
MIS
MIS
0x01cf
Sml. Z Dot
0x017c
MIS
MIS
MIS
MIS
MIS
0x01d1
Sml. Z
0x007a
z
z
z
z
z
0x007a

CYRILLIC CHARACTERS (Lower case)

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Cyr. Sml. A
0x0430
MIS
MIS
MIS
MIS
MIS
0x0a01
Cyr. Sml. YA
0x044f
MIS
MIS
MIS
MIS
MIS
0x0a41
Cyr. Sml. BE
0x0431
MIS
MIS
MIS
MIS
MIS
0x0a03
Cyr. Sml. VE
0x0432
MIS
MIS
MIS
MIS
MIS
0x0a05
Cyr. Sml. GHE
0x0433
MIS
MIS
MIS
MIS
MIS
0x0a07
Cyr. Sml.GHEWITHUPTURN
0x0491
MIS
MIS
MIS
MIS
MIS
0x0a43
Cyr. Sml. GJE
0x0453
MIS
MIS
MIS
MIS
MIS
0x0a47
Cyr. Sml. DE
0x0434
MIS
MIS
MIS
MIS
MIS
0x0a09
Cyr. Sml. DJE
0x0452
MIS
MIS
MIS
MIS
MIS
0x0a45
Cyr. Sml. IE
0x0435
MIS
MIS
MIS
MIS
MIS
0x0a0b
Cyr. Sml. IO
0x0451
MIS
MIS
MIS
MIS
MIS
0x0a0d
Cyr. Sml. UKRAINIANIE
0x0454
MIS
MIS
MIS
MIS
MIS
0x0a49
Cyr. Sml. ZHE
0x0436
MIS
MIS
MIS
MIS
MIS
0x0a0f
Cyr. Sml. ZE
0x0437
MIS
MIS
MIS
MIS
MIS
0x0a11
Cyr. Sml. I
0x0438
MIS
MIS
MIS
MIS
MIS
0x0a13
Cyr. Sml. SHORTI
0x0439
MIS
MIS
MIS
MIS
MIS
0x0a15
Cyr. Sml. YI
0x0457
MIS
MIS
MIS
MIS
MIS
0x0a4f
Cyr. Sml.BYELORUSSIANUKRI
0x0456
MIS
MIS
MIS
MIS
MIS
0x0a4d
Cyr. Sml. YERU
0x044b
MIS
MIS
MIS
MIS
MIS
0x0a39
Cyr. Sml. KA
0x043a
MIS
MIS
MIS
MIS
MIS
0x0a17
Cyr. Sml. KJE
0x045c
MIS
MIS
MIS
MIS
MIS
0x0a59
Cyr. Sml. EL
0x043b
MIS
MIS
MIS
MIS
MIS
0x0a19
Cyr. Sml. LJE
0x0459
MIS
MIS
MIS
MIS
MIS
0x0a53
Cyr. Sml. EM
0x043c
MIS
MIS
MIS
MIS
MIS
0x0a1b
Cyr. Sml. EN
0x043d
MIS
MIS
MIS
MIS
MIS
0x0a1d
Cyr. Sml. NJE
0x045a
MIS
MIS
MIS
MIS
MIS
0x0a55
Cyr. Sml. O
0x043e
MIS
MIS
MIS
MIS
MIS
0x0a1f
Cyr. Sml. PE
0x043f
MIS
MIS
MIS
MIS
MIS
0x0a21
Cyr. Sml. ER
0x0440
MIS
MIS
MIS
MIS
MIS
0x0a23
Cyr. Sml. ES
0x0441
MIS
MIS
MIS
MIS
MIS
0x0a25
Cyr. Sml. TE
0x0442
MIS
MIS
MIS
MIS
MIS
0x0a27
Cyr. Sml. TSHE
0x045b
MIS
MIS
MIS
MIS
MIS
0x0a57
Cyr. Sml. U
0x0443
MIS
MIS
MIS
MIS
MIS
0x0a29
Cyr. Sml. SHORTU
0x045e
MIS
MIS
MIS
MIS
MIS
0x0a5b
Cyr. Sml. YU
0x044e
MIS
MIS
MIS
MIS
MIS
0x0a3f
Cyr. Sml. EF
0x0444
MIS
MIS
MIS
MIS
MIS
0x0a2b
Cyr. Sml. HA
0x0445
MIS
MIS
MIS
MIS
MIS
0x0a2d
Cyr. Sml. TSE
0x0446
MIS
MIS
MIS
MIS
MIS
0x0a2f
Cyr. Sml. DZHE
0x045f
MIS
MIS
MIS
MIS
MIS
0x0a5d
Cyr. Sml. CHE
0x0447
MIS
MIS
MIS
MIS
MIS
0x0a31
Cyr. Sml. SHA
0x0448
MIS
MIS
MIS
MIS
MIS
0x0a33
Cyr. Sml. SHCHA
0x0449
MIS
MIS
MIS
MIS
MIS
0x0a35
Cyr. Sml. DZE
0x0455
MIS
MIS
MIS
MIS
MIS
0x0a4b
Cyr. Sml. HARDSIGN
0x044a
MIS
MIS
MIS
MIS
MIS
0x0a37
Cyr. Sml. JE
0x0458
MIS
MIS
MIS
MIS
MIS
0x0a51
Cyr. Sml. SOFTSIGN
0x044c
MIS
MIS
MIS
MIS
MIS
0x0a3b
Cyr. Sml. E
0x044d
MIS
MIS
MIS
MIS
MIS
0x0a3d

GREEK CHARACTERS (Upper case)

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Cap. ALPHA TONOS (A)
0x0386
MIS
224
193
MIS
234
0x08c8
Cap. ALPHA
0x0391
A
A
A
144
128
0x0800
Cap. BETA
0x0392
B
B
B
145
129
0x0802
Cap. GAMMA
0x0393
226
MIS
MIS
146
130
0x0806
Cap. DELTA
0x0394
MIS
MIS
MIS
147
131
0x0808
Cap. EPSILON TONOS (E)
0x0388
144
220
201
MIS
235
0x08c9
Cap. EPSILON
0x0395
E
E
E
148
132
0x080a
Cap. ZETA
0x0396
Z
Z
Z
149
133
0x080c
Cap. ETA TONOS(H)
0x0389
MIS
MIS
MIS
MIS
236
0x08ca
Cap. ETA
0x0397
H
H
H
150
134
0x080e
Cap. THETA
0x0398
233
MIS
MIS
151
135
0x0810
Cap. IOTA TONOS (I)
0x038a
MIS
229
205
MIS
237
0x08cb
Cap. IOTA DIAERESIS
0x03AA
MIS
MIS
MIS
MIS
MIS
MIS
Cap. IOTA
0x0399
I
I
I
152
136
0x0812
Cap. KAPPA
0x039a
K
K
K
153
137
0x0814
Cap. LAMBDA
0x039b
MIS
MIS
MIS
154
138
0x0816
Cap. MU
0x039c
M
M
M
155
139
0x0818
Cap. NU
0x039d
N
N
N
156
140
0x081a
Cap. XI
0x039e
MIS
MIS
MIS
157
141
0x081c
Cap. OMICRON TONOS (O)
0x038c
MIS
231
211
MIS
238
0x08cc
Cap. OMICRON
0x039f
O
O
O
158
142
0x081e
Cap. PI
0x03a0
MIS
MIS
182
159
143
0x0820
Cap. RHO
0x03a1
P
P
P
160
144
0x0822
Cap. SIGMA
0x03a3
228
MIS
MIS
161
145
0x0824
Cap. TAU
0x03a4
T
T
T
162
146
0x0828
Cap. UPSILON TONOS (Y)
0x038e
MIS
177
221
MIS
239
0x08cd
Cap. UPSILON DIAERESIS
0x03ab
MIS
MIS
MIS
MIS
MIS
MIS
Cap. UPSILON
0x03a5
Y
Y
Y
163
147
0x082a
Cap. PHI
0x03a6
232
MIS
MIS
164
148
0x082c
Cap. CHI
0x03a7
X
X
X
165
149
0x082e
Cap. PSI
0x03a8
MIS
MIS
MIS
166
150
0x0830
Cap. OMEGA TONOS (e)
0x038f
MIS
MIS
MIS
MIS
240
0x01ce
Cap. OMEGA
0x03a9
234
MIS
MIS
167
151
0x0832

GREEK CHARACTERS (Lower case)

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Sml. ALPHA TONOS
0x03ac
MIS
MIS
MIS
193
225
0x0866
Sml. ALPHA
0x03b1
224
MIS
MIS
168
152
0x0801
Sml. BETA
0x03b2
MIS
MIS
MIS
169
153
0x0803
Sml. GAMMA
0x03b3
MIS
MIS
MIS
170
154
0x0807
Sml. DELTA
0x03b4
235
MIS
MIS
171
155
0x0809
Sml. EPSILON TONOS
0x03ad
MIS
MIS
MIS
194
226
0x0878
Sml. EPSILON
0x03b5
MIS
MIS
MIS
172
156
0x080b
Sml. ZETA
0x03b6
MIS
MIS
MIS
173
157
0x080d
Sml. ETA TONOS
0x03ae
MIS
MIS
MIS
196
227
0x0881
Sml. ETA
0x03b7
MIS
MIS
MIS
174
158
0x080f
Sml. THETA
0x03b8
MIS
MIS
MIS
175
159
0x0811
Sml. IOTA TONOS
0x03af
MIS
MIS
MIS
195
229
0x0893
Sml. IOTA Diaeresis
0x03ca
MIS
MIS
MIS
209
228
0x0899
Sml. IOTA Diaeresis TONOS
0x0390
MIS
MIS
MIS
MIS
MIS
0x0891
Sml. IOTA
0x03b9
MIS
MIS
MIS
176
160
0x0813
Sml. KAPPA
0x03ba
MIS
MIS
MIS
177
161
0x0815
Sml. LAMBDA
0x03bb
MIS
MIS
MIS
178
162
0x0817
Sml. MU
0x03bc
230
243
181
179
163
0x0819
Sml. NU
0x03bd
MIS
MIS
MIS
180
164
0x081b
Sml. XI
0x03be
MIS
MIS
MIS
181
165
0x081d
Sml. OMIK TONOS
0x03cc
162
198
243
197
230
0x089f
Sml. OMICRON
0x03bf
o
o
o
182
166
0x081f
Sml. PI
0x03c0
227
MIS
MIS
183
167
0x0821
Sml. RHO
0x03c1
MIS
MIS
MIS
184
168
0x0823
Sml. SIGMA
0x03c3
229
MIS
MIS
185
169
0x0825
Sml. TAU
0x03c4
231
MIS
MIS
186
171
0x0829
Sml. UPSILON TONOS
0x03cd
163
199
250
198
231
0x08a0
Sml. UPSILON Diaeresis
0x03cb
129
207
252
212
232
0x08a8
Sml. UPSILON Diar.TONOS
0x03b0
MIS
MIS
MIS
MIS
MIS
0x08a4
Sml. UPSILON
0x03c5
u
u
u
187
172
0x082b
Sml. PHI
0x03c6
MIS
MIS
MIS
188
173
0x082d
Sml. CHI
0x03c7
MIS
MIS
MIS
189
174
0x082f
Sml. PSI
0x03c8
MIS
MIS
MIS
190
175
0x0831
Sml. OMEGA TONOS
0x03ce
MIS
MIS
MIS
199
233
0x08b4
Sml. OMEGA
0x03c9
MIS
MIS
MIS
191
224
0x0833
Sml. EVANGEL
0x03c2
MIS
MIS
MIS
192
170
0x0827

PUNCTUATION CHARACTERS

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Apostrophe-Quote
0x0027
'
'
'
`
`
0x0027
Closing Curly Bracket
0x007d
}
}
}
}
}
0x007d
Closing Parenthesis
0x0029
)
)
)
)
)
0x0029
Closing Square Bracket
0x005d
]
]
]
]
]
0x005d
Colon
0x003a
:
:
:
:
:
0x003a
Comma
0x002c
,
,
,
,
,
0x002c
Double Quotation Mark Left
0x201c
MIS
MIS
"
MIS
MIS
0x043e
Double Quotation Mark Right
0x201d
MIS
MIS
"
MIS
MIS
0x043d
Em Dash
0x2014
-
-
-
-
-
0x0422
En Dash
0x2013
-
-
-
MIS
MIS
0x0421
Exclamation Mark
0x0021
!
!
!
!
!
0x0021
Hyphen-Minus
0x002d
-
-
-
-
-
0x002d
Inverted Exclamation Mark (Sp.)
0x00a1
?
?
?
MIS
MIS
0x0407
Inverted Question Mark (Sp.)
0x00bf
?
?
?
MIS
MIS
0x0408
Left Single Quotation Mark
0x2018
`
`
`
MIS
MIS
0x041b
Right Single Quotation Mark
0x2019
'
'
'
MIS
MIS
0x041c
Low Dbl. Comma Quot. Mark
0x201e
"
"
"
"
"
0x043f
Low Single Comma Quot. Mark
0x201a
‚
‚
‚
MIS
MIS
0x010c
Opening Curly Bracket
0x007b
{
{
{
{
{
0x007b
Opening Parenthesis
0x0028
(
(
(
(
(
0x0028
Opening Square Bracket
0x005b
[
[
[
[
[
0x005b
Period (full stop)
0x002e
.
.
.
.
.
0x002e
Question Mark
0x003f
?
?
?
?
?
0x003f
Quotation Mark
0x0022
"
"
"
"
"
0x0022
Semicolon
0x003b
;
;
;
;
;
0x003b
Left Pointing Single Guillemet
0x2039
<
<
<
<
<
0x0441
Right Pointing Single Guillemet
0x203a
>
>
>
>
>
0x0441
Soft Hyphen
0x20ad
-
-
-
-
-
0x002d
Spacing Grave
0x0060
`
`
`
`
`
0x0060

MISCELLANEOUS CHARACTERS

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
Acute
0x00b4
MIS
?
?
MIS
MIS
0x0106
Ampersand
0x0026
&
&
&
&
&
0x0026
Asterisk
0x002a
*
*
*
*
*
0x002a
Backslash
0x005c
\
\
\
\
\
0x005c
Bullet
0x2022
·
·
·
MIS
·
0x0400
Broken Bar
0x00a6
¦
¦
¦
MIS
MIS
0x007c
Cedilla
0x00b8
MIS
MIS
?
MIS
MIS
0x0111
Cent Sign
0x00a2
?
?
?
MIS
MIS
0x0413
Circumflex
0x02c6
MIS
?
?
MIS
MIs
0x0103
Commercial At
0x0040
@
@
@
@
@
0x0040
Copyright Sign
0x00a9
MIS
MIS
©
MIS
MIS
0x0417
Currency Sign
0x00a4
MIS
¤
¤
MIS
MIS
0x0418
Dagger
0x2020
MIS
MIS
†
MIS
MIS
0x0431
Degree Sign
0x00b0
°
°
°
MIS
MIS
0x0410
Diaresis
0x00a8
MIS
?
?
MIS
MIS
0x0107
Dollar Sign
0x0024
$
$
$
$
$
0x0024
Double Dagger
0x2021
MIS
MIS
‡
MIS
MIS
0x0432
Equals Sign
0x003d
=
=
=
=
=
0x003d
Euro Sign
0x20ac
MIS
MIS
ˆ
MIS
MIS
0x209c
Greater-Than Sign
0x003e
>
>
>
>
>
0x003e
Horizontal Ellipsis
0x2026
MIS
MIS
...
MIS
MIS
0x0438
Left Pointing Guillemet
0x00ab
«
«
«
MIS
MIS
0x0409
Less-Than Sign
0x003c
<
<
<
<
<
0x003c
Macron
0x00af
MIS
?
?
MIS
MIS
0x0108
Math Division Sign
0x00f7
?
MIS
?
MIS
MIS
0x0608
Math Multipication Sign
0x00d7
MIS
MIS
?
MIS
MIS
0x0627
Micron
0x00b5
µ
µ
µ
MIS
MIS
0x0625
Midddle Dot
0x00b7
·
·
·
MIS
MIS
0x010e
Not Sign
0x00ac
¬
MIS
¬
MIS
MIs
0x0614
Number Sign
0x0023
#
#
#
#
#
0x0023
Per Mille Sign
0x2030
MIS
MIS
‰
MIS
MIS
0x044b
Percent Sign
0x0025
%
%
%
%
%
0x0025
Pilcrow Sign
0x00b6
¶
¶
¶
MIS
MIS
0x0405
Plus Sign
0x002b
+
+
+
+
+
0x002b
Plus-OR-Minus Sign
0x00b1
±
±
±
±
±
0x0601
Pound Sign
0x00a3
?
?
?
MIS
MIS
0x040b
Registered Trade Mark Sign
0x00ae
MIS
MIS
®
MIS
MIS
0x0416
Right Pointing Guillemet
0x00bb
»
»
»
MIS
MIS
0x040a
Section Sign
0x00a7
§
§
§
MIS
MIS
0x0406
Slash
0x002f
/
/
/
/
/
0x002f
Sml. Script F
0x0192
?
?
?
MIS
MIS
0x040e
Sml. Tilde
0x02dc
MIS
?
?
MIS
MIS
0x0102
Space
0x0020
0x0020
Spacing Circumflex
0x005e
^
^
^
^
^
0x005e
Spacing Underscore
0x005f
_
_
_
_
_
0x005f
Superscript One
0x00b9
MIS
MIS
?
MIS
MIS
0x044e
Superscript Three
0x00b3
MIS
MIS
?
MIS
MIS
0x041a
Superscript Two
0x00b2
?
MIS
?
MIS
MIS
0x0414
Tilde
0x007e
~
~
~
~
~
0x007e
Trade Mark Sign
0x2122
MIS
MIS
™
MIS
MIS
0x0429
Vertical Bar
0x007c
|
|
|
|
|
0x007c
Vulgar Fraction Three Quarter
0x00be
MIS
?
?
MIS
MIS
0x0419
Vulgar Fraction One Half
0x00bd
?
?
?
MIS
MIS
0x0411
Vulgar Fraction One Quarter
0x00bc
?
?
?
MIS
MIS
0x0412
Yen Sign
0x00a5
?
?
?
MIS
MIS
0x040c

OCR SPECIAL CHARACTERS*

Name of the Character
UNICODE
ASCII
Roman
ANSI
Elot
Memotek
WP
OCR Amount Of Check
0x2447
MIS
MIS
MIS
MIS
MIS
MIS
OCR Belt Buckle
0x2444
MIS
MIS
MIS
MIS
MIS
MIS
OCR Bow Tie
0x2445
MIS
MIS
MIS
MIS
MIS
MIS
OCR Branch Bank
0x2446
MIS
MIS
MIS
MIS
MIS
MIS
OCR Chair
0x2441
MIS
MIS
MIS
MIS
MIS
MIS
OCR Customer Account Number
0x2449
MIS
MIS
MIS
MIS
MIS
MIS
OCR Dash
0x2448
MIS
MIS
MIS
MIS
MIS
MIS
OCR Double Backslash
0x244a
MIS
MIS
MIS
MIS
MIS
MIS
OCR Fork
0x2442
MIS
MIS
MIS
MIS
MIS
MIS
OCR Hook
0x2440
MIS
MIS
MIS
MIS
MIS
MIS
OCR Inverted Fork
0x2443
MIS
MIS
MIS
MIS
MIS
MIS


Code Page List

The following table summarizes all the Code Pages supported by the Recognition component. One of these must be specified as the Code Page of the final output document.

CODE PAGE NAME
WIDTH
SUPPL. INFORMATION
Windows ANSI
8-bit
Code Page 1252
Windows Greek
8-bit
Code Page 1253
Windows Eastern
8-bit
Code Page 1250
Windows Turkish
8-bit
Code Page 1254
Windows Baltic
8-bit
Code Page 1257
Windows Cyrillic
8-bit
Code Page 1251
Windows Esperant
8-bit
Non Standard Win
Windows OCR/MICR
8-bit
Non Standard Win
Windows E13B
8-bit
Non Standard Win
Code Page 437
8-bit
DOS Latin US
Greek-ELOT
8-bit
DOS Greek
Greek-MEMOTEK
8-bit
DOS Greek
Code Page 850
8-bit
DOS Latin 1
Code Page 852
8-bit
DOS Latin 2
Code Page 860
8-bit
DOS Portuguese
Code Page 863
8-bit
DOS French-Canadian
Code Page 865
8-bit
DOS Nordic
Code Page 866
8-bit
DOS Cyrillic CIS
CWI Magyar
8-bit
DOS Hungarian
Magyar Ventura
8-bit
DOS Hungarian
IVKAM C-S
8-bit
Czech & Slovak
Mazowia Polish
8-bit
DOS Polish
Sloven & Croat
8-bit
7 bits used
Turkish
8-bit
DOS Turkish
Icelandic
8-bit
DOS Icelandic
Macintosh
8-bit
Mac Western
Mac INSO Latin 2
8-bit
MAC CE
Mac Central EU
8-bit
PT 202
Mac Primus CE u
8-bit
MAC CE
Maltese
8-bit
Malta; 7 bits used
Unicode
16-bit
multilingual
WordPerfect
16-bit
multilingual
Roman 8
8-bit
For HP printers


Output Text Format List

The following table summarizes the output text formats available in the Recognition component. One of these can be specified as the format for the final output document.

NAME OF THE OUTPUT FORMAT
DESCRIPTION
"Text - Standard"
Text output with line break after each line. If table is present, its cells are positioned by TABs
"Text - Smart"
Text output with line break after each line. Left margin is taken into account (with SPACEs) If a table is present; its cells are positioned by SPACEs.
"Text - Stripped"
Text output with line break after each paragraph. If table is present, its cells are separated by TABs.
"Text - Plain"
Text output with line break after each line. Left and Upper margins are is taken into account (with SPACEs and NEWLINEs) If table is present, its cells are positioned by TABs.
"Text - Comma Delimited"
Comma delimited text output. Line/cell contents are surrounded by quotes (""). The default delimiter (comma) can be overwritten (see the REC_OUT.ini file)
"Text - Tab Delimited"
TAB separated text output. Line/cell contents are surrounded by quotes ("")
"Rec ASCII (Formatted)"
Text output, layout retention with mimicked SPACEs. Line/cell contents are surrounded by quotes ("")
"Rec ASCII (Standard)"
Text output allowing quick text conversion. Kept for compatibility reasons.
"Rec ASCII (StandardEx)"
Text output allowing quick text conversion. Line break after each line and after each zone. Kept for compatibility reasons.
"General Word Processor"
Text output allowing quick text conversion. Line break after each paragraph. Kept for compatibility reasons.
"HTML 3.2"
HTML output.HTML 3.2 is useful to export with PARTFORMAT. The output files support both IE and Netscape.
"HTML 4.0"
HTML output.HTML 4.0 can set the exact position/size of objects, use this output format with the FULLFORMAT option.
"Word 97, 2000, XP"
Microsoft Word 97, Word 2000 and Word XP output format.
"Excel 97, 2000"
Microsoft Excel 97 and Excel 2000 output format.
"WordPerfect 8"
WordPerfect 8 format.
"Rich Text Format"
Quick conversion to Rich Text Format.
"PowerPoint 97 (RTF)"
Rich Text Format for PowerPoint 97
"Publisher 98 (RTF)"
Rich Text Format for Publisher 98
"WordPad (RTF)"
Rich Text Format for WordPad
"RTF Word 2000"
Rich Text Format for Word 2000
"RTF Word 97"
Rich Text Format for Word 97
"RTF Word 6.0/95"
Rich Text Format for Word 6.0/95
"Open eBook 1.0"
Open eBook 1.0 format
"XML"
XML output format conforming with ScanSoft's schema file
SSDOC-SCHEMA2.xmlhttp:\\www.scansoft.com/omnipage/xml/SSDOC-SCHEMA2.xml
"2G Type 2"
Binary output of the recognition with a 16-byte long structure for each recognized character.2G Type 2 structure output
"2G Type 3"
Binary output of the recognition with a 16-byte long structure for each recognized character.2G Type 3 structure output


Language Dictionary List

The following table lists the languages available in the Recognition component's checking subsystem for spell checking. One of these can be specified as the spelling language, if desired.

SPELLING LANGUAGE
LANGUAGE DICTIONARY FILE
Catalan
R_CAT.DAT
Czech
R_CZH.DAT
Danish
R_DAN.DAT
Dutch
R_DUT.DAT
English
R_ENG.DAT
Finnish
R_FIN.DAT
French
R_FRE.DAT
German
R_GER.DAT
Greek
R_GRE.DAT
Hungarian
R_HUN.DAT*
Italian
R_ITA.DAT
Norwegian
R_NOR.DAT
Polish
R_POL.DAT*
Portuguese
R_POR.DAT
Russian
R_RUS.DAT
Slovenian
R_SLN.DMD
Spanish
R_SPA.DAT
Swedish
R_SWE.DAT


Vertical Dictionary List

The following table lists all the Vertical dictionaries available with the Recognition component.

PROFESSION
LANGUAGE
VERTICAL DICTIONARY FILE
Medical
Dutch
MEDICAL_DUT.DMD
Medical
English
MEDICAL_ENG.DMD
Medical
French
MEDICAL_FRE.DMD
Medical
German
MEDICAL_GER.DMD
Legal
Dutch
LEGAL_DUT.DMD
Legal
English
LEGAL_ENG.DMD
Legal
French
LEGAL_FRE.DMD
Legal
German
LEGAL_GER.DMD


Specifications for the recognition modules

Introduction

ImageGear Recognition component has multiple recognition modules, which can be applied on a per-zone basis. This allows a wide range of different types of textual and non-textual data to be recognized, even if they all appear on the same page. For each zone, the application can assign any module available in the configuration, or the choice of module can be left to the recognition engine.

NOTE: There is a general limitation of 22.75 inches in width and height for all OCR modules in ImageGear recognition engine.


Filling method - Recognition module combinations

When the value RM_AUTO is used, either by default or explicitly, the recognition engine takes care of recognition module selection for any filling method.

When setting specific values for filling methods and recognition modules, it is the programmer's responsibility to specify a valid recognition module-filling method pair. Any incorrectly set zone will have no recognition result.

The following table shows which modules are considered by the automatic recognition module selection, called up by the RM_AUTO value. The order of the recognition modules in the second column shows the priority order for the automatic recognition module selection.

Filling method
Permissible Recognition modules
FM_OMNIFONT
RM_OMNIFONT_PLUS3W, RM_OMNIFONT_PLUS2W, RM_OMNIFONT_MOR, RM_OMNIFONT_FRX, RM_OMNIFONT_MTX
FM_DRAFTDOT9
RM_DOT, RM_OMNIFONT_MTX
FM_BARCODE
RM_BAR
FM_OMR
RM_OMR
FM_HANDPRINT
RM_HNR, RM_RER
FM_DRAFTDOT24
RM_OMNIFONT_MOR, RM_OMNIFONT_MTX
FM_OCRA
RM_OMNIFONT_MOR, RM_OMNIFONT_MTX, RM_MAT
FM_OCRB
RM_OMNIFONT_MOR, RM_OMNIFONT_MTX, RM_MAT
FM_MICR
RM_MAT
FM_BARCODE2D
RM_BAR2D
FM_DOTDIGIT
RM_MAT
FM_DASHDIGIT
RM_MAT
FM_NO_OCR
-


Recognition modules and the widest available character set

The correct assignment of a recognition module and a filling method to a zone should mean that the recognition module is able to satisfactorily process the contents of that zone. But it does not guarantee that the recognition module will be able to process every possible character. The characters supported by the Recognition component are listed in Characters and Code Pages. Most recognition modules recognize only a subset of these. Even if we restrict the Character Set to a limited Language Environment e.g. selecting the German language, the recognition module may not be able to process all the enabled characters. E.g. HNR module is able to process hand printed numerals but does not recognize letters. Automatic recognition module selection takes Character Set support of modules into consideration. Selecting a recognition module directly, it is the programmer's responsibility to select a recognition module capable of supporting the widest character set enabled in the zone. Otherwise this zone may have an incomplete recognition result. The precise character and language support for each module is given in the appropriate recognition module specifications.


Recognition modules and filters

Narrowing the Character Set has two effects:

  • it influences the automatic recognition module selection
  • it may increase accuracy.

Narrowing the Character Set has two effects:

  • it influences the automatic recognition module selection
  • it may increase accuracy.

The filtering system allows the Language environment to be narrowed, by enabling only certain character classes, and also by enabling individual characters. A filter is built up from filter elements, as detailed under CHR_FILTER.

Each filter element name tells which character class is enabled, e.g. FILTER_ALL means no filtering. Not all recognition modules interpret all filter elements. Precise information appears in the sub-heading for each module.

Applying a filter may not always enable the same number of characters.

E.g. FILTER_MISCELLANEOUS can enable only those miscellaneous characters supported by the recognition module assigned to the zone.


Recognition modules and the trade-off settings

Three accuracy/speed trade-off settings can be specified on page or document level: TO_ACCURATE, TO_BALANCED and TO_FAST. Five recognition modules can interpret these. Precise information appears in the sub-heading for each module.


Recognition modules and the checking subsystem

The checking subsystem has two basic services. It can flag unacceptable recognition results without changing them or it can be permitted to modify recognition results using checking subsystem feedback. The available acceptance rules can come from the following:

  • Language and/or Vertical dictionaries,
  • User dictionaries containing precise entries and/or required patterns,
  • User-written checking functions.

These three sources may be combined freely. The checking subsystem and each of its three parts can be enabled or disabled on a per-zone basis.

The integrator should try to match the particular parts of the checking subsystem to the contents and recognition modules of individual zones, e.g. allowing checking changes with a language dictionary enabled will be either pointless or even harmful for the modules BAR, OMR and HNR, since it could change their numerical solutions to letters.


BAR bar code recognition module

  • Module name: BAR
  • Module identifier: IG_REC_RECOGNITION_MODULE_BAR
  • Filling methods supported: IG_REC_FILLING_METHOD_BARCODE
  • Filters supported: ignores all filter settings
  • Trade-off supported: none
  • Knowledge base file: none
  • CSS-based correction: none
  • Training supported: no

Application areas

Recognition of one-dimensional bar codes.

Supported basic bar code types

  • Codabar (on by default),
  • Code 128 (on by default),
  • Code 39 (on by default),
  • EAN 8/13 (on by default),
  • ITF (2 of 5 interleaved) (on by default),
  • Postnet (off by default),
  • UPC (off by default)
  • UCC Code 128 (off by default).

Conditions

One zone can include only one bar code.

Postnet and any other type are mutually exclusive.

Similarly, the EAN and UPC types are mutually exclusive.

The thickness of bar code lines and the distance between them should be at least 3 pixels (that is a minimum line thickness of 0.25 mm (0.01 inch) in the case of 300 dpi resolution).

No parallel non-bar code lines of similar dimensions should be located less than 6 mm (0.25 inch) from the bar code.

The position of the bar code can be in any direction (except the Postnet code, where the maximum allowable skew of the bar code is 10°)

One zone can include only one bar code.

Though the zone can contain other pixel elements beside the bar code itself (the program is able to detect the bar code inside the zone), the preferred method of zoning is to define a zone, which entirely covers the bar code but does not include any other elements.

Output

The output is a string of digits giving the bar code value, plus optionally other checksum or start/stop digits. The precise input/output choices are:

  • Codabar,
  • Codabar with start-stop char transmit,
  • Code 128,
  • Code 39,
  • Code 39 with check digit control,
  • Code 39 with start-stop char transmit,
  • Code 39 full ASCII mode,
  • EAN 8/13,
  • EAN/UPC with 2 & 5 digit supplement,
  • ITF (2 of 5 interleaved),
  • ITF with check digit control,
  • Postnet,
  • UPC-A,
  • UPC-E 6 digit
  • UCC Code 128.

The maximum length of the coded information is 64 characters, except for ITF which supports up to 128 characters.

In structured data output (IGRecPage.Characters), the character size and confidence data for each recognized character present bar code-level information, i.e. these values will be identical for all characters deriving from the bar code.


BAR2D bar code recognition module

  • Module name: BAR2D
  • Module identifier: IG_REC_RECOGNITION_MODULE_BAR2D
  • Filling methods supported: IG_REC_FILLING_METHOD_BARCODE2D, IG_REC_FILLING_METHOD_BARCODE
  • Filters supported: ignores all filter settings
  • Trade-off supported: IG_REC_TRADEOFF_MODE_FAST, IG_REC_TRADEOFF_MODE_BALANCED, IG_REC_TRADEOFF_MODE_ACCURATE
  • Knowledge base file: none
  • CSS-based correction: none
  • Training supported: no

Application areas

This recognition module recognizes one-dimensional and two-dimensional bar codes, provided that the BAR and BAR2D modules are properly licensed.

Supported one-dimensional bar code types

  • Codabar (on by default),
  • Code 128 (on by default),
  • Code 93 (on by default),
  • EAN 8/13 (on by default),
  • ITF (2 of 5 interleaved) (on by default),
  • Postnet (off by default),
  • UPC (off by default)
  • UCC Code 128 (off by default).
  • Code 2 of 5
  • Code 39

Supported two-dimensional bar code types

PDF-417 2D code

Conditions

By default, one zone can include up to ten bar codes.

The zone can contain other elements besides the bar code. The program is able to detect the bar code(s) inside a zone. If, however, there are many other objects (text, figures, etc.) in the zone, recognition will be slower and these other elements in the zone won't be recognized.

One-dimensional bar codes cannot be enabled together with 2-dimensional ones inside a single zone.

The two-dimensional PDF 417 bar code type is capable of storing 200 characters per square inch, up to 2000 characters in one code. It is used for document level indexing, form layout definition and encoding form data content.

Output

If there is no recognition result in the zone, then no valid or fragmented bar code was found in the zone.

If the recognition result for the zone is one or more rejected characters, then every rejection symbol represents a bar code fragment or one recognized with an incorrect checksum.

In structured data output (either Page.CharacterArray or Page.Characters properties), the character size (width, height) and confidence data (err) information for each recognized character present bar code-level information, i.e. these values will be identical for all characters deriving from the bar code.

The output for 1D barcodes is a string of digits giving the bar code value, plus optionally other checksum or start/stop digits. The precise input/output choices for 1D bar codes are:

  • Codabar,
  • Codabar with start-stop char transmit,
  • Code 128,
  • Code 39,
  • Code 39 with check digit control,
  • Code 39 with start-stop char transmit,
  • Code 39 full ASCII mode,
  • EAN 8/13,
  • EAN/UPC with 2 & 5 digit supplement,
  • ITF (2 of 5 interleaved),
  • ITF with check digit control,
  • Postnet,
  • UPC-A,
  • UPC-E 6 digit
  • UCC Code 128.
  • Code 2 of 5
  • Code 93


DOT 9-pin draft dot-matrix recognition module

    • Module name:DOT
    • Module identifier:IG_REC_RECOGNITION_MODULE_DOT
    • Filling methods supported:IG_REC_FILLING_METHOD_DRAFTDOT9
    • Filters supported: all filter elements
    • Trade-off supported: none
    • Knowledge base file: TUDAS.FA
    • CSS-based correction: none
    • Training supported: yes

Application areas

This module is designed for ONLY draft-quality 9-pin dot-matrix texts. For NLQ or LQ texts, the IG_REC_RECOGNITION_MODULE_OMNIFONT_PLUS2W, IG_REC_RECOGNITION_MODULE_OMNIFONT_PLUS3W, IG_REC_RECOGNITION_MODULE_OMNIFONT_MTX or IG_REC_RECOGNITION_MODULE_OMNIFONT_MOR modules are likely to give better results.

Range of characters

This module supports 76 languages, of which 14 has dictionary support: Catalan, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Italian, Norwegian, Portuguese, Spanish and Swedish. It can read multiple languages.

It can read 18 of the 29 punctuation characters. (The Low Double Comma Quotation Mark is missing). It supports 24 of the 55 miscellaneous characters. (Some missing ones are: the Euro Sign, the Small Script F, the Copyright Sign, Registered Trade Mark Sign and the Degree Sign.)

The following table lists all accented letters this module can recognize. The range of uppercase ones supported by this module is limited, since in 9-pin dot-matrix text, there is difficulty in printing these letters. Those with lowercase support only are listed separately:

Upper & Lowercase
Lowercase only
Cap.&Small A Acute (A')
Small A Circumflex (a^)
Cap.&Small AE (Ae)
Small A Macron (a-)
Cap.&Small A Ring (Ao)
Small A Grave (a`)
Cap.&Small A Umlaut (A:)
Small E Umlaut (e:)
Cap.&Small A Tilde (A~)
Small E Circumflex (e^)
Cap.&Small C Cedilla (C,)
Small E Grave (e`)
Cap.&Small E Acute (E')
Small I Umlaut (I:)
Cap.&Small I Acute (I')
Small I Circumflex (I^)
Cap.&Small N Tilde (N~)
Small I Grave (I`)
Cap.&Small O Double Acute (O")
Small O Circumflex (O^)
Cap.&Small O Acute (O'
Small O Macron (O-)
Cap.&Small O Umlaut (O:)
Small O Grave (O`)
Cap.&Small O Tilde (O~)
Small S Hacek (Sv)
Cap.&Small O Slash (O/)
Small U Circumflex (U^)
Cap.&Small AE(OE)
Small U Grave (U`)
Cap.&Small U Double Acute (U")
Cap.&Small U Acute (U')
Cap.&Small U Umlaut (U:)

Accuracy issues

This module does not interpret the recognition trade-off setting and cannot be trained.

Character attributes

Since this module recognizes draft dot-matrix texts, character attributes are not applicable. Expanded characters are not recognized, condensed printout can be, but the accuracy is liable to be low.

Conditions

This module is used if it is directly specified in a zone structure.

If IG_REC_FILLING_METHOD_DRAFTDOT9 filling method is set together with IG_REC_RECOGNITION_MODULE_AUTO, IG_REC_RECOGNITION_MODULE_OMNIFONT_MTX is used, provided that all characters (or languages or filters) validated for the zone are supported by it. If any are not supported, this module is used.

It can generate confidence data on recognized characters and can interpret all filter values.


FRX multi-lingual omnifont recognition module

  • Module name: FRX
  • Module identifier: IG_REC_RECOGNITION_MODULE_OMNIFONT_FRX
  • Filling methods supported: IG_REC_FILLING_METHOD_OMNIFONT
  • Filters supported: ignores all filter settings
  • Trade-off supported: none
  • Knowledge base files: none
  • CSS-based correction: none
  • Training supported: yes

Application areas

This module recognizes machine printed text; i.e. from printed publications, laser or ink-jet printers and electric typewriters. Output from mechanical typewriters in good condition may also be acceptable. It should also be used for letter or near letter quality (NLQ, LQ) output from dot-matrix printers.

Range of characters

This module supports the recognition of Latin, Greek and Cyrillic alphabets with enough accented letters to recognize the 54 languages (Languages and modules)

The characters are listed in category and alphanumeric order, together with their Code Page values, in Characters and Code Pages.

Multi-lingual language support

The language support of this module is based on the module's internal code pages, which contain characters from a related group of languages. The internal code pages of this module are American/European, Baltic, Central-European, Cyrillic, Greek and Turkish.

The module supports multi-language selection for recognition, though it may not recognize languages from different language groups properly.

Character attributes

The omnifont recognition module can detect and transmit character attributes: bold, italic or underlined text (or any combination of them). It can also detect and transmit character size, and can classify font types into three broad categories: serif, sans serif and monospaced.


HNR handprinted numeral recognition module

  • Module name: HNR
  • Module identifier: IG_REC_RECOGNITION_MODULE_HNR
  • Filling methods supported: IG_REC_FILLING_METHOD_HANDPRINT
  • Filters supported: IG_REC_CHARSET_FILTER_ALL, IG_REC_CHARSET_FILTER_DIGIT, IG_REC_CHARSET_FILTER_PUNCTUATION and IG_REC_CHARSET_FILTER_MISCELLANEOUS
  • Trade-off supported: IG_REC_TRADEOFF_MODE_FAST, IG_REC_TRADEOFF_MODE_ACCURATE (includes IG_REC_TRADEOFF_MODE_BALANCED)
  • Knowledge base file: KEZIRSTR.TBS
  • CSS-based correction: supported
  • Training supported: no

Application areas

This recognition module can be used for recognition of handprinted numerals and four additional signs. If further handprinted characters are to be recognized, the use of the IG_REC_RECOGNITION_MODULE_RER recognition module is recommended.

Range of characters

This recognition module can recognize the following handprinted characters:

  • the digits (0-9),
  • the Plus Sign (+)
  • the Minus Sign (-)
  • the Period or Full-stop (.)
  • the Comma (,).

The filter IG_REC_CHARSET_FILTER_DIGIT can be used to exclude the last four characters. The filters IG_REC_CHARSET_FILTER_PUNCTUATION and IG_REC_CHARSET_FILTER_MISCELLANEOUS function, other filters have no effect.

Accuracy issues

The functioning of the module can be influenced with the following parameters:

Recognition trade-off settings:

  • The page-level trade-off value IG_REC_TRADEOFF_MODE_FAST is respected, while IG_REC_TRADEOFF_MODE_ACCURATE and IG_REC_TRADEOFF_MODE_BALANCED are merged to a single value.

Writing style:

IG_REC_HNR_STYLE_EURO
lets you specify European styled numbers,
IG_REC_HNR_STYLE_US
lets you specify North-American styled numbers.

Character box flag:

  • This lets you pass information to the recognition module on the positions of characters to be recognized, which is likely to improve accuracy. If a zero value is given, the recognition module will determine the positions automatically.

Space inclusion flag:

  • This lets you set whether spaces detected between the recognized characters should be transmitted or not.

Conditions

For successful recognition, the characters should not touch each other. Each character can be zoned individually or a zone may contain several lines of characters. Each character must have a height of 30-180 pixels. Well-formed numbers written in pen are best recognized. Pencil and felt-tip pens give poorer results. When reading from pre-printed forms, dropout colored boxes can be useful to encourage respondents to write numbers of even size and spacing. But then, they mustn't use a pen with the dropout color!

Optimum box size for such cases is 5 x 6 mm separated by 3 mm.

Maximum number of characters in a zone: 3000.

Maximum number of lines in a zone: 40.

Maximum number of characters in a line: 600.

Output

This can consist of the digits, the four additional characters, rejection symbols and, if requested, spaces.

The HNR module can benefit from the checking subsystem to improve recognition accuracy, by encouraging output to conform to the systems' pre-defined requirements. But note that spell checking from a language dictionary should be disabled. For zones whose contents are known to be limited in some way, a set of permitted numerical strings or patterns pre-defined in a User dictionary, or some other user-written checking could be very useful.


MAT matrix matching recognition module

  • Module name: MAT
  • Module identifier: IG_REC_RECOGNITION_MODULE_MAT
  • Filling methods supported: IG_REC_FILLING_METHOD_OCRA, IG_REC_FILLING_METHOD_OCRB, IG_REC_FILLING_METHOD_MICR, IG_REC_FILLING_METHOD_DOTDIGIT, IG_REC_FILLING_METHOD_DASHDIGIT
  • Filters supported: all elements except IG_REC_CHARSET_FILTER_LOWERCASE
  • Trade-off supported: none
  • Knowledge base file: SFOCR.TUD
  • CSS-based correction: supported
  • Training supported: no

Application areas

This module is designed to read certain groups of fixed-font characters specially designed for OCR or imaging applications, in which no two characters have similar shapes. Each character group has its own filling method. Application areas are in banking, check or waybill handling, product distribution and document validation, where high accuracy can be vital. It also handles some non-fixed print styles.

Range of characters

IG_REC_FILLING_METHOD_OCRA

OCR-A. Uppercase English letters (26), digits, some punctuation (see Characters (punctuation / miscellaneous) and modules) and 3 special OCR-A symbols:

  • OCR Chair,
  • OCR Hook,
  • OCR Fork.

IG_REC_FILLING_METHOD_OCRB

OCR-B. Uppercase English letters (26), digits and some punctuation.

IG_REC_FILLING_METHOD_MICR

MICR (E-13B). Digits plus some punctuation and 4 special MICR symbols:

  • OCR Branch Bank,
  • OCR Amount of Check,
  • OCR Dash,
  • OCR Customer Account Number.

IG_REC_FILLING_METHOD_DOTDIGIT

Ten digits only and the period. Commas are also read, but converted to periods. Though this is in theory a fixed-font, many variants of it are used.

IG_REC_FILLING_METHOD_DASHDIGIT

Ten digits only and the period. Commas are also read, but converted to periods. Though this is in theory a fixed-font, many variants of it are used.

Accuracy issues

When this module is handling fixed fonts, well printed on a firm surface, with a limited number of possible characters, it should provide high accuracy recognition. This can be further enhanced by use of regular expressions (UD-checking) or user-written checking available through the checking subsystem. This module doesn't interpret the page-level recognition trade-off settings. This recognition is fairly tolerant of differing resolution settings. The dot- and dash-digit symbols are typically printed onto product containers, which may be curved or molded; furthermore many different standards are used. For high accuracy here, the texts to be read should be found on flat surfaces (on packing documents rather than product containers).

Conditions

This module supports the checking subsystem fully, and also all filter elements (however, IG_REC_CHARSET_FILTER_LOWERCASE will have no effect). Characters should be at least 4 x 8 pixels large and should not be touching. IG_REC_FILLING_METHOD_OCRA and IG_REC_FILLING_METHOD_OCRB support both single and multi-line zones, the other filling methods (IG_REC_FILLING_METHOD_MICR, IG_REC_FILLING_METHOD_DOTDIGIT and IG_REC_FILLING_METHOD_DASHDIGIT) do not: each line must be zoned separately.

MICR strings found on checks are usually single-line only.

Zones with IG_REC_FILLING_METHOD_OCRA or IG_REC_FILLING_METHOD_OCRB filling method can have either single or multi-line content. By default, for these types of zones, the MAT recognition modules assume multi-line content.


MOR multi-lingual omnifont recognition module

  • Module name: MOR
  • Module identifier: IG_REC_RECOGNITION_MODULE_OMNIFONT_MOR
  • Filling methods supported: IG_REC_FILLING_METHOD_OMNIFONT, IG_REC_FILLING_METHOD_DRAFTDOT24, IG_REC_FILLING_METHOD_OCRA, IG_REC_FILLING_METHOD_OCRB
  • Filters supported: all filter elements
  • Trade-off supported: IG_REC_TRADEOFF_MODE_FAST, IG_REC_TRADEOFF_MODE_BALANCED, IG_REC_TRADEOFF_MODE_ACCURATE
  • Knowledge base files: RECOGN.BCT and RECOGN24.BCT
  • CSS-based correction: supported
  • Training supported: yes
NOTE: This module can safely handle A3 size (11.69" x 16.54") both portrait and landscape images with 300 dpi resolution.

Application areas

This module recognizes machine printed text; i.e. from printed publications, laser or ink-jet printers and electric typewriters. Output from mechanical typewriters in good condition may also be acceptable. It should also be used for letter or near letter quality (NLQ, LQ) output from dot-matrix printers. There are two ways of modifying incoming images to make them more suitable for this omnifont recognition module:

Standard mode Fax output. (200 x 100 dpi). This switch doubles the pixels in the image's vertical direction. Faxes sent in Fine Mode (200 x 200 dpi) are preferable; then this switch shouldn't be used.

Draft 24-pin dot-matrix output. Use the IG_REC_FILLING_METHOD_DRAFTDOT24 filling method to have the character contours smoothed. Again, NLQ or LQ quality output can usually be better recognized without using IG_REC_FILLING_METHOD_DRAFTDOT24.

This module can safely handle A3 size (11.69" x 16.54") both portrait and landscape images with 300 dpi resolution.

The max. number of zones defined on an image that this module can handle is 500.

Range of characters

This module can recognize about 500 characters, termed ENGine's Total Character Set. It includes the letters of the Latin, Greek and Cyrillic alphabets with enough accented letters to recognize the 114 Languages supported by the ENGine

The set is classified as follows:

Non-accented
Accented
Latin alphabet upper case letters
26
89
Latin alphabet lower case letters
26
91
Digits
10
Punctuation
29
Miscellaneous (maths symbols etc.)
55
Cyrillic upper case letters
33
14
Cyrillic lower case letters
33
14
Greek upper case letters
24
9
Greek lower case letters
25
11
OCR (OCR-A / MICR) characters
3

The characters are listed in category and alphanumeric order, together with their Code Page values, in Characters and Code Pages. These are the character categories used by the filter elements. The pre-trained OCR characters are: OCR Chair, OCR Hook, OCR Fork.

Character attributes

The omnifont recognition module can detect and transmit character attributes: bold, italic or underlined text (or any combination of them). It can also detect and transmit character size, and can classify font types into three broad categories: serif, sans serif and monospaced.

Speed/Accuracy choices

The multi-lingual omnifont recognition module basically uses contour analysis, but can supplement this with an innovative form of pattern matching not requiring enormous pre-stored shape libraries.

This module interprets all three page-level recognition trade-off settings: IG_REC_TRADEOFF_MODE_ACCURATE, IG_REC_TRADEOFF_MODE_BALANCED and IG_REC_TRADEOFF_MODE_FAST.

The module is tightly integrated with the checking subsystem, giving a total of five speed/accuracy choices.

  • Level 1: IG_REC_TRADEOFF_MODE_FAST without checking.

Fastest. The module reads text once and uses feature extraction only. Even this setting can give excellent accuracy on high-quality documents. Recommended also when accuracy is not a big issue (e.g. when OCR is only to allow fuzzy keyword searching in a document retrieval system) or for high-volume work when processing speed is most important.

  • Level 2: IG_REC_TRADEOFF_MODE_FAST with checking.

The recognition module reads text only once, with feature extraction, but sends words containing suspect or reject characters to a checker, together with its first and second guesses for unsure characters. The checker tries to find solutions based only on those characters. It also tries to repair other typical OCR faults (e.g. di9its embedded in words) and will flag all non-dictionary words it was unable to solve. Recommended e.g. when a Language dictionary is available and the texts are mono-lingual and liable to contain normal language (if not, a User dictionary could be employed).

  • Level 3: IG_REC_TRADEOFF_MODE_BALANCED without checking.

Two-pass recognition. During the first pass with feature extraction, the program builds up a library of sample characters and ligatured character pairs from the page, whose recognition was very sure. During the second reading pass it stops on all reject and unsure characters, consults its library and uses pattern matching to try and find solutions. That's why the second pass is not very useful for pages with very little text - the library is too small. Recommended for multi-lingual documents or when a checker is not available.

(-14% errors + 15% time compared to IG_REC_TRADEOFF_MODE_FAST without checking)

  • Level 4: IG_REC_TRADEOFF_MODE_BALANCED with checking.

Two-pass recognition. Reading is a combination of the two processes used in levels 2 and 3. More accurate but processing will take more time.

(-24.5% errors + 28% time compared to IG_REC_TRADEOFF_MODE_FAST without checking)

  • Level 5: IG_REC_TRADEOFF_MODE_ACCURATE with checking compulsory.

Most accurate but slowest. Designed for use on very degraded mono-lingual documents or when maximum accuracy is very important. It involves two-pass recognition with Adaptive Cell Analysis. This is used to get a bigger library for the pattern matching: uniformly highly degraded documents typically can't yield enough surely recognized characters to form a useful library. With ACA recognition, characters with somewhat lower certainty are accepted, provided they fall within words accepted by the checking subsystem. This allows the pattern matching to work more successfully.

(-27.5% errors + 62% time compared to IG_REC_TRADEOFF_MODE_FAST without checking)

NOTE: Accuracy and time data was measured on an English magazine sample collection, 986 pages, 3.6 million characters.

MTX omnifont recognition module

  • Module name: MTX
  • Module identifier: IG_REC_RECOGNITION_MODULE_OMNIFONT_MTX
  • Filling methods supported: IG_REC_FILLING_METHOD_OMNIFONT, IG_REC_FILLING_METHOD_DRAFTDOT9, IG_REC_FILLING_METHOD_DRAFTDOT24, IG_REC_FILLING_METHOD_OCRA, IG_REC_FILLING_METHOD_OCRB
  • Filters supported: IG_REC_CHARSET_FILTER_ALL, IG_REC_CHARSET_FILTER_DIGIT and IG_REC_CHARSET_FILTER_ALPHA
  • Trade-off supported: IG_REC_TRADEOFF_MODE_FAST, IG_REC_TRADEOFF_MODE_ACCURATE (includes IG_REC_TRADEOFF_MODE_BALANCED)
  • Knowledge base file: N / A
  • CSS-based correction: language dictionary only
  • Training supported: yes

Application areas

This recognition module recognizes machine printed text; i.e. from printed publications, laser or ink-jet printers and electric typewriters. Output from mechanical typewriters in good condition may also be acceptable. It should also be used for Letter or Near Letter Quality output from dot-matrix printers, and can also be used for Draft Quality.

Only images with the following resolution ranges are supported: 90-110, 160-240, 280-320, 400, 600.

This module does not process images larger than 6600 pixels in either width or height, that is it can safely handle A3 size (11.69" x 16.54") both portrait and landscape images with 300 dpi resolution. At larger resolution the supported image size is smaller.

The max. number of zones defined on an image that this module can handle is 64.

Range of characters

This module supports the characters of the following languages

Language
Language identifier

English

IG_REC_RECOGNITION_LANGUAGE_ENG

French

IG_REC_RECOGNITION_LANGUAGE_FRE

Spanish

IG_REC_RECOGNITION_LANGUAGE_SPA

Italian

IG_REC_RECOGNITION_LANGUAGE_ITA

German

IG_REC_RECOGNITION_LANGUAGE_GER

Norwegian

IG_REC_RECOGNITION_LANGUAGE_NOR

Portuguese

IG_REC_RECOGNITION_LANGUAGE_POR

Danish

IG_REC_RECOGNITION_LANGUAGE_DAN

Dutch

IG_REC_RECOGNITION_LANGUAGE_DUT

Finnish

IG_REC_RECOGNITION_LANGUAGE_FIN

Swedish

IG_REC_RECOGNITION_LANGUAGE_SWE

Brazilian

IG_REC_RECOGNITION_LANGUAGE_BRA

Any of these languages can be combined.

Accuracy issues

This module is influenced by the page-level trade-off setting, but reduces the three settings to two: IG_REC_TRADEOFF_MODE_FAST is respected, while IG_REC_TRADEOFF_MODE_BALANCED and IG_REC_TRADEOFF_MODE_ACCURATE merge to one value.

Character attributes

The omnifont recognition module can detect and transmit character attributes: bold, italic or underlined text (or any combination of them). It can also detect and transmit character size, and can classify font types into three broad categories: serif, sans serif and monospaced.


MTX omnifont recognition module

  • Module name: MTX
  • Module identifier: RM_OMNIFONT_MTX
  • Filling methods supported: FM_OMNIFONT, FM_DRAFTDOT9, FM_DRAFTDOT24, FM_OCRA, FM_OCRB
  • Filters supported: FILTER_ALL, FILTER_DIGIT and FILTER_ALPHA
  • Trade-off supported: TO_FAST, TO_ACCURATE (includes TO_BALANCED)
  • Knowledge base file: N / A
  • CSS-based correction: language dictionary only
  • RM-spec file support: none
  • Training supported: yes
NOTE: Only images with the following resolution ranges are supported: 90-110, 160-240, 280-320, 400, 600. This module does not process images larger than 6600 pixels in either width or height, that is it can safely handle A3 size (11.69" x 16.54") both portrait and landscape images with 300 dpi resolution. At larger resolution the supported image size is smaller.

Application areas

This recognition module recognizes machine printed text; i.e. from printed publications, laser or ink-jet printers and electric typewriters. Output from mechanical typewriters in good condition may also be acceptable. It should also be used for Letter or Near Letter Quality output from dot-matrix printers, and can also be used for Draft Quality.

Only images with the following resolution ranges are supported: 90-110, 160-240, 280-320, 400, 600.

This module does not process images larger than 6600 pixels in either width or height, that is it can safely handle A3 size (11.69" x 16.54") both portrait and landscape images with 300 dpi resolution. At larger resolution the supported image size is smaller.

The max. number of zones defined on an image that this module can handle is 64.

Range of characters

This module supports the characters of the following languages

Language
Language identifier
English
LANG_ENG
French
LANG_FRE
Spanish
LANG_SPA
Italian
LANG_ITA
German
LANG_GER
Norwegian
LANG_NOR
Portuguese
LANG_POR
Danish
LANG_DAN
Dutch
LANG_DUT
Finnish
LANG_FIN
Swedish
LANG_SWE
Brazilian
LANG_BRA

Any of these languages can be combined.

Accuracy issues

This module is influenced by the page-level trade-off setting, but reduces the three settings to two: TO_FAST is respected, while TO_BALANCED and TO_ACCURATE merge to one value.

Character attributes

The omnifont recognition module can detect and transmit character attributes: bold, italic or underlined text (or any combination of them). It can also detect and transmit character size, and can classify font types into three broad categories: serif, sans serif and monospaced.


OMR optical mark recognition module

  • Module name: OMR
  • Module identifier: IG_REC_RECOGNITION_MODULE_OMR
  • Filling methods supported: IG_REC_FILLING_METHOD_OMR
  • Filters supported: ignores all filter settings
  • Trade-off supported: none
  • Knowledge base file: none
  • CSS-based correction: none
  • Training supported: no

Application areas

This recognition module is used for recognizing optical marks (checkmarks). Typical application areas are in questionnaires, ballot papers, educational tests and reporting or ordering sheets, where the documents to be processed are form-like and filled by respondents, usually by hand.

Accuracy issues

Checkmark zones are bounded by printed frames, which are visible on the input document, but may be visible or invisible in the image passed to the recognition module, due to the use of dropout colors during scanning. The accuracy of this module can be improved by

  • specifying in advance how the module will handle frame detection (frames visible, frames invisible, auto-detect)
  • specifying the "marking sensitivity" of the module, i.e. how strongly an OMR zone must be marked to count as filled. There are four choices.

The values "frames visible" and "frames invisible" give higher accuracy than "auto-detect". This recognition module is not influenced by the recognition trade-off setting.

See also the topic "Instructions to respondents" below.

Conditions

The frame can be a rectangle, a circle, an ellipse, etc.; it can be shaded. It may be visible or invisible in the image sent for recognition. The dimension of the frame should be at least 45-50 pixels in each direction, that is 3.5 to 4 mm (0.2 inch) in the case of 300 dpi resolution.

  • If there is a frame visible in the image:

it can be filled in by any shape such as an X, a tick, non-solid hatching, horizontal or vertical lines, etc.). The recommended filling shape is an X or a tick. A small number of contiguous black pixels falling within the checkmark area will lead to a value "filled". The recommended scanner brightness setting is slightly darker than 50%.

  • If there is no frame visible in the image:

it should be filled so that the checkmark shape could not be mixed with a frame or half-frame, i.e. no lines parallel to the invisible zone borders. The filling shape should be a clear X or a tick.

This module has been tested on an image with more than 1300 OMR zones.

Output

An OMR (optical mark) zone is unique in that its output always consists of precisely one digit. The output generated for checkmark zones is always zero (0) for unchecked and one (1) for checked ones.

The safest way to link the output values with the checkboxes, which generated them, is through the structured data output ((either Page.CharacterArray or Page.Characters properties)), which contains the zone number and the coordinates (zone, left, top, width, height). This can also help prevent checkmark data being confused with bar code values or other non-checkmark data coming from the same page.

If a page contains mainly or only checkmark data, the output converters "Text - Tab Delimited", "Text - Comma Delimited" or the "Excel 97, 2000" can be used to load the data into a spreadsheet program for further analysis and presentation.

Instructions to respondents

OMR processing requires a high degree of accuracy. The two-value detection is inherently accurate; three-value detection is more difficult. Good document design and clear instructions to respondents are very important in getting high accuracy. Printing model samples of ideally filled and filled-in-error checkboxes in the instructions is recommended. Respondents should be urged to fill in the document with a dark blue or black pen. Pencils are to be avoided, as are pens with an ink color close to a dropout color on the scanner to be used.


PLUS2W and PLUS3W omnifont recognition modules

  • Module name: PLUS2W and PLUS3W
  • Module identifier: IG_REC_RECOGNITION_MODULE_OMNIFONT_PLUS2W and IG_REC_RECOGNITION_MODULE_OMNIFONT_PLUS3W
  • Filling methods supported: IG_REC_FILLING_METHOD_OMNIFONT
  • Filters supported: IG_REC_CHARSET_FILTER_ALL, IG_REC_CHARSET_FILTER_DIGIT and IG_REC_CHARSET_FILTER_ALPHA
  • Trade-off supported: IG_REC_TRADEOFF_MODE_FAST, IG_REC_TRADEOFF_MODE_BALANCED, IG_REC_TRADEOFF_MODE_ACCURATE
  • Knowledge base file: RECOGN.BCT, RECOGN24.BCT and OURDICT.DAT
  • CSS-based correction: supported
  • Training supported: yes

Application areas

This recognition module recognizes machine printed text; i.e. from printed publications, laser or ink-jet printers and electric typewriters. Output from mechanical typewriters in good condition may also be acceptable.

Range of characters

This module supports the same set of characters as the OMNIFONT_MOR module.

Accuracy issues

The PLUS2W and PLUS3W modules use voting technology to provide improved recognition result.

The PLUS2W module combines the results from the MOR and MTX modules.

The PLUS3W module combines the results from the MOR, MTX and FRX modules.

With any of these two voting modules, the accuracy is considerably better, but the recognition may need significantly more time than any single module.

Suspicious marking

With these modules, the suspicious character and word marking feature is different from that used in MOR, MTX or FRX.

These modules do not mark characters as suspicious if all the voting modules provided the same recognition result, even if in any of them they were suspiciously recognized. Consequently, the number of words marked as non-dictionary, may be less.

Character attributes

The omnifont recognition module can detect and transmit character attributes: bold, italic or underlined text (or any combination of them). It can also detect and transmit character size, and can classify font types into three broad categories: serif, sans serif and monospaced.


RER handprinted recognition module

  • Module name: RER
  • Module identifier: IG_REC_RECOGNITION_MODULE_RER
  • Filling methods supported: IG_REC_FILLING_METHOD_HANDPRINT
  • Filters supported: all filter elements
  • Trade-off supported: IG_REC_TRADEOFF_MODE_ACCURATE, IG_REC_TRADEOFF_MODE_FAST (includes IG_REC_TRADEOFF_MODE_BALANCED)
  • Knowledge base file: HAND.REC
  • CSS-based correction: none
  • Training supported: no

Application areas

This recognition module can be used for recognition of handprinted alphanumerical characters, i.e. upper and lower case letters, the digits and some others. Although it can be used to read flowing text, its main application area is in form-like situations, where the form designer has great control over the content and maybe length of handprinted information given in each zone.

Range of characters

This module can differentiate 159 characters. These are the digits, 28 punctuation and miscellaneous characters (listed below), letters of the English alphabet plus all accented characters necessary for 98 languages. Fifteen languages have dictionary support: Catalan, Czech, Danish, Dutch, English, Finnish, French, German, Hungarian, Italian, Norwegian, Polish, Portuguese, Spanish and Swedish. Other supported languages include Croatian (with one limitation), Estonian, Gaelic, Indonesian, Latvian, Lithuanian, Slovak, Slovenian, Swahili, Tagalog, Turkish and Welsh (the last two with minor limitations). Cyrillic languages and Greek are not supported. In Hungarian the lower case characters "Small I Acute", "Small O Acute" and the "Small U Acute" are not supported, in effect limiting recognition to upper case characters. These languages can be freely combined, but then dictionary support is not available.

The following punctuation characters can be recognized:

  • !Exclamation Mark
  • ?Question Mark
  • `Apostrophe-Quote
  • "Quotation Mark
  • :Semicolon
  • ,Comma
  • :Colon
  • .Period (Full-stop)
  • -Hyphen-Minus
  • (Opening Parenthesis
  • )Closing Parenthesis
  • [Opening Square Bracket
  • ]Closing Square Bracket
  • {Opening Curly Bracket
  • }Closing Curly Bracket

The following miscellaneous characters can be recognized:

  • # Number Sign
  • % Percent Sign
  • @ Commercial At
  • & Ampersand
  • | Vertical Bar
  • $ Dollar Sign
  • * Asterisk
  • + Plus Sign
  • = Equals Sign
  • _ Spacing Underscore
  • / Slash
  • \ Backslash
  • < Less-Than Sign
  • > Greater-Than Sign

Note that language-specific knowledge base files are also distributed as listed in the table below. These files have names in form HAND??.REC, whereas the double question mark within the filename is to be replaced by a country code as follows:

Code
Language(s) / Territory
AL
Albanian
AT
Austrian, German
BE
Belgian, Dutch, French, German
CH
Swiss, French, German, Italian
CS
Czech, Slovakian
CZ
Czech
DE
German
DK
Danish
EE
Estonian
ES
Spanish
EU
West-European
FI
Finnish
FR
French
HU
Hungarian
IE
Irish, English, Gaelic Irish
IT
Italian
LT
Lithuanian
NL
Dutch
PL
Polish
SE
Swedish
SF
Suomi Finnish
SL
Slovenian
SK
Slovakian
TR
Turkish
US
USA

Using language-specific knowledge base file(s) may improve accuracy.

There is a separate folder on the Capture SDK CD-ROM root (RER_KBFILES) that contains these language-specific knowledge base files. They are not copied onto you computer during the installation; therefore the required one(s) should be simply copied into the ENGine Binary directory before initiating the ENGine. Although the system automatically identifies which knowledge base file is needed for a given language, recognition speed can be improved by minimizing the number of knowledge base files in the ENGine Binary directory.

Accuracy issues

Handprint is much harder to recognize accurately than machine generated text, and success depends very heavily on character quality.

The use of structured forms to limit the possible range of characters, together with zone-level filters and individual character validation can significantly improve accuracy. This recognition module can apply all the ENGine's possible filter elements to the 159-member character set it supports.

Handprinted forms are usually filled by different respondents and this is liable to lower accuracy. If respondents can be given clear filling instructions (e.g. a print model to follow) and be motivated to print clearly, success will be higher.

If the handprint contains numbers only, using the HNR module is likely to give better results than the RER module filtered for numbers only.

The functioning of the module can be influenced by the page-level trade-off settings: IG_REC_TRADEOFF_MODE_ACCURATE is respected, while IG_REC_TRADEOFF_MODE_FAST and IG_REC_TRADEOFF_MODE_BALANCED are merged.

Conditions

For successful recognition, the characters should not touch each other. Each character can be zoned individually or a zone may contain one or more lines of characters. Each character must have a height of 30-180 pixels. Well formed characters written in pen are best recognized. Pencil and felt-tip pens give poorer results. When reading from pre-printed forms, dropout colored boxes can be useful to encourage respondents to write characters of even size and spacing. But then, they mustn't use a pen with the dropout color.

Maximum number of characters in a line: 200.

Number of lines in a zone: No restriction.


Appendix D: TWAIN Scanning Capabilities

Appendix D: TWAIN Scanning Capabilities

This Appendix represents TWAIN scanning capabilities that are most oftenly used for the TWAIN scanning processes:

  • CAP_DUPLEXENABLED
  • CAP_PAPERDETECTABLE
  • CAP_FEEDERENABLED
  • CAP_FEEDERLOADED
  • CAP_XFERCOUNT
  • ICAP_BITDEPTH
  • ICAP_BITORDER
  • ICAP_BRIGHTNESS
  • ICAP_COMPRESSION
  • ICAP_CONTRAST
  • ICAP_HIGHLIGHT
  • ICAP_IMAGEFILEFORMAT
  • ICAP_MINIMUMHEIGHT
  • ICAP_MINIMUMWIDTH
  • ICAP_PIXELFLAVOR
  • ICAP_PIXELTYPE
  • ICAP_SHADOW
  • ICAP_UNITS
  • ICAP_XFERMECH
  • ICAP_XRESOLUTION
  • ICAP_XSCALING
  • ICAP_YRESOLUTION
  • ICAP_YSCALING


CAP_DUPLEXENABLED

Group: TWAIN Capabilities

Data type: TW_BOOL

Purpose:

The user can set the duplex option to be TRUE or FALSE. If TRUE, the scanner scans both sides of a paper; otherwise, the scanner will scan only one side of the image.

Valid Values: TRUE, FALSE

Default Value: FALSE

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CAP_PAPERDETECTABLE

Group: TWAIN Capabilities

Data type: TW_BOOL

Purpose:

This capability determines whether the device has a paper sensor that can detect documents on the ADF or Flatbed.

If the source returns FALSE, the application should not rely on values such as CAP_FEEDERLOADED, and continue as if the paper is loaded.

Valid Values: TRUE, FALSE

Default Value: TRUE

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CAP_FEEDERENABLED

Group: TWAIN Capabilities

Data type: TW_BOOL

Purpose:

The application should set this capability to TRUE before using other capabilities relating to an ADF, such as CAP_FEEDERLOADED.

ImageGear will set this capability to TRUE prior to initiating a multi-page-capable image acquisition. Therefore, the application does not need to set this capability unless it needs to work with other ADF-related capabilities prior to acquisition.

Valid Values: TRUE, FALSE

Default Value: TRUE

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CAP_FEEDERLOADED

Group: TWAIN Capabilities

Data type: TW_BOOL

Purpose:

This capability indicates whether or not documents are loaded in an ADF. CAP_FEEDERENABLED must equal TRUE to use this capability. CAP_PAPERDETECTABLE can be checked to see if the device is capable of returning feeder status.

Valid Values: TRUE, FALSE

Default Value: No default

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CAP_XFERCOUNT

Group: TWAIN Capabilities

Data type: TW_INT16

Purpose:

The application is willing to accept this number of images.

Set this capability to the number of images you are willing to transfer per session. Common values are:

  • 1 - Application wishes to transfer only one image this session
  • -1 - Application is willing to transfer multiple images

ImageGear sets this capability prior to acquiring images based on the API call used to initiate image acquisition. You should not set this capability. If you do, it will not affect the number of pages scanned by ImageGear.

Valid Values:

-1 to 2^15

Default Value:

-1


ICAP_BITDEPTH

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Specifies the pixel bit depths for the Current value of ICAP_PIXELTYPE. For example, when using ICAP_PIXELTYPE = TWPT_GRAY, this capability specifies whether this is 8-bit gray or 4-bit gray.

This depth applies to all the data channels (for instance, the R, G, and B channels will all have this same bit depth for RGB data). A bit depth of 8 for RGB indicates 8 bits per channel, resulting in 24-bit RGB. Therefore, for 24-bit RGB, this capability should be set to 8, not 24.

Valid Values: >=1

Default Value: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ICAP_BITORDER

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Specifies how the bytes in an image are filled by the Source. TWBO_MSBFIRST indicates that the leftmost bit in the byte (usually bit 7) is the byte's Most Significant Bit.

Valid Values:

  • TWBO_LSBFIRST = 0
  • TWBO_MSBFIRST = 1

Default Value:

TWBO_MSBFIRST


ICAP_BRIGHTNESS

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

The brightness values available within the Source.

The application can use this capability to inquire, set, or restrict the values for BRIGHTNESS used in the Source.

Valid Values:

-1000 to +1000

Default Value:

0


ICAP_COMPRESSION

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Allows the application and Source to identify which compression schemes they have in common for Buffered Memory and File transfers.

Since only certain file formats support compression, this capability must be negotiated after setting the desired file format with ICAP_IMAGEFILEFORMAT.

  • TWCP_NONE - All Sources must support this
  • TWCP_PACKBITS - Macintosh PackBits format (can be used with TIFF or PICT)
  • TWCP_GROUP31D
  • TWCP_GROUP31DEOL
  • TWCP_GROUP32D
  • TWCP_GROUP4 - Are all from the CCITT specification (now ITU), intended for document images (can be used with TIFF)
  • TWCP_JPEG - Intended for the compression of color photographs (can be used with TIFF, JFIF or SPIFF)
  • TWCP_LZW - A compression licensed by UNISYS (can be used with TIFF)
  • TWCP_JBIG - Intended for bitonal and grayscale document images (can be used with TIFF or SPIFF)
  • TWCP_PNG - This compression can only be used if ICAP_IMAGEFILEFORMAT is set to TWFF_PNG
  • TWCP_RLE4
  • TWCP_RLE8
  • TWCP_BITFIELDS - These compressions can only be used if ICAP_IMAGEFILEFORMAT is set to TWFF_BMP

Applications must not assume that a Source can provide compressed Buffered Memory or File transfers, because many cannot. The application should use MSG_SET on a TW_ONEVALUE container to specify the compression type for future transfers.

Valid Values:

  • TWCP_NONE = 0
  • TWCP_PACKBITS = 1
  • TWCP_GROUP31D = 2
  • TWCP_GROUP31DEOL = 3
  • TWCP_GROUP32D = 4
  • TWCP_GROUP4 = 5
  • TWCP_JPEG = 6
  • TWCP_LZW = 7
  • TWCP_JBIG = 8
  • TWCP_PNG = 9
  • TWCP_RLE4 = 10
  • TWCP_RLE8 = 11
  • TWCP_BITFIELDS = 12

Default Value:

TWCP_NONE


ICAP_CONTRAST

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

The contrast values available within the Source.

The application can use this capability to inquire, set or restrict the values for CONTRAST used in the Source.

Valid Values:

-1000 to +1000

Default Value: 0

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ICAP_HIGHLIGHT

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

Specifies which value in an image should be interpreted as the lightest "highlight." All values "lighter" than this value will be clipped to this value. Whether lighter values are smaller or larger can be determined by examining the Current value of ICAP_PIXELFLAVOR.

Valid Values:

0 to 255

Default Value:

255


ICAP_IMAGEFILEFORMAT

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Informs the application which file formats the Source can generate (MSG_GET). Tells the Source which file formats the application can handle (MSG_SET).

  • TWFF_TIFF - Used for document imaging
  • TWFF_PICT - Native Macintosh format
  • TWFF_BMP - Native Microsoft format
  • TWFF_XBM - Used for document imaging
  • TWFF_JFIF - Wrapper for JPEG images
  • TWFF_FPX - FlashPix, used with digital cameras
  • TWFF_TIFFMULTI - Multi-page TIFF files
  • TWFF_PNG - An image format standard intended for use on the web, replaces GIF
  • TWFF_SPIFF - A standard from JPEG, intended to replace JFIF, also supports JBIG
  • TWFF_EXIF - File format for use with digital cameras.

Use this ICAP to determine which formats are available for file transfers, and set the context for other capability negotiations such as ICAP_COMPRESSION. Be sure to use the DG_CONTROL / DAT_SETUPFILEXFER / MSG_SET or the DG_CONTROL / DAT_SETUPFILEXFER2 / MSG_SET operation to specify the format to be used for a particular acquisition.

Valid Values:

  • TWFF_TIFF = 0
  • TWFF_PICT = 1
  • TWFF_BMP = 2
  • TWFF_XBM = 3
  • TWFF_JFIF = 4
  • TWFF_FPX = 5
  • TWFF_TIFFMULTI = 6
  • TWFF_PNG = 7
  • TWFF_SPIFF = 8
  • TWFF_EXIF = 9

Default Value:

TWFF_BMP


ICAP_MINIMUMHEIGHT

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

Allows the source to define the minimum height (Y-axis) that the source can acquire.

Valid Values:

0 to 32767 (in ICAP_UNITS)

Default Value:

N/A


ICAP_MINIMUMWIDTH

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

Allows the source to define the minimum width (X-axis) that the source can acquire.

Valid Values:

0 to 32767 (in ICAP_UNITS)

Default Value:

N/A


ICAP_PIXELFLAVOR

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Sense of the pixel whose numeric value is zero (minimum data value). For example, consider a black and white image:

If ICAP_PIXELTYPE is TWPT_BW then
If ICAP_PIXELFLAVOR is TWPF_CHOCOLATE
then Black = 0
Else if ICAP_PIXELFLAVOR is TWPF_VANILLA
then White = 0

Sources may prefer a different value depending on ICAP_PIXELTYPE. Set ICAP_PIXELTYPE and do a MSG_GETDEFAULT to determine the Source's preferences.

Valid Values:

  • TWPF_CHOCOLATE = 0
  • TWPF_VANILLA = 1

Default Value:

TWPF_CHOCOLATE


ICAP_PIXELTYPE

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Specifies the type of pixel data that a Source is capable of acquiring (for example, black and white, gray, RGB, etc.).

  • MSG_GET - returns a list of all pixel types available from the Source.
  • MSG_SET on a TW_ENUMERATION structure - requests that the Source restrict the available pixel types to the enumerated list.
  • MSG_SET on a TW_ONEVALUE container - specifies the only pixel type the application can accept.

If the application plans to transfer data through any mechanism other than Native and cannot handle all possible ICAP_PIXELTYPE, it must support negotiation of this ICAP.

Valid Values:

  • TWPT_BW = 0
  • TWPT_GRAY = 1
  • TWPT_RGB = 2
  • TWPT_PALETTE = 3
  • TWPT_CMY = 4
  • TWPT_CMYK = 5
  • TWPT_YUV = 6
  • TWPT_YUVK = 7
  • TWPT_CIEXYZ = 8

Default Value:

N/A


ICAP_SHADOW

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

Specifies which value in an image should be interpreted as the darkest "shadow." All values "darker" than this value will be clipped to this value.

Whether darker values are smaller or larger can be determined by examining the Current value of ICAP_PIXELFLAVOR.

Valid Values:

0 to 255

Default Value:

0


ICAP_UNITS

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Unless a quantity is dimensionless or uses a specified unit of measure, ICAP_UNITS determines the unit of measure for all quantities.

Applications should be able to handle TWUN_PIXELS, if they want to support data transfers from "dimensionless" devices such as digital cameras.

Valid Values:

  • TWUN_INCHES = 0
  • TWUN_CENTIMETERS = 1
  • TWUN_PICAS = 2
  • TWUN_POINTS = 3
  • TWUN_TWIPS = 4
  • TWUN_PIXELS = 5

Default Value:

TWUN_INCHES


ICAP_XFERMECH

Group: TWAIN Capabilities

Data type: TW_UINT16

Purpose:

Allows the application and Source to identify which transfer mechanisms they have in common.

The current setting of ICAP_XFERMECH must match the constant used by the application to specify the transfer mechanism when starting the transfer using the triplet: DG_IMAGE /DAT_IMAGExxxxXFER / MSG_GET.

ImageGear will transfer images according to the transfer mechanism an application selects via this capability.

Valid Values:

  • TWSX_NATIVE = 0
  • TWSX_FILE = 1
  • TWSX_MEMORY = 2
  • TWSX_FILE2 = 3

Default Value:

TWSX_NATIVE


ICAP_XRESOLUTION

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

All the X-axis resolutions the Source can provide.

Measured in units of pixels per unit as defined by ICAP_UNITS (pixels per TWUN_PIXELS yields dimensionless data). That is, when the units are TWUN_PIXELS, both ICAP_XRESOLUTION and ICAP_YRESOLUTION shall report 1 pixel/pixel. Some data sources like to report the actual number of pixels that the device reports, but that response is more appropriate in ICAP_PHYSICALHEIGHT and ICAP_PHYSICALWIDTH.

Setting this value will restrict the various resolutions that will be available to the user during acquisition. Applications will want to ensure that the values set for this ICAP match those set for ICAP_YRESOLUTION.

Valid Values:

>0

Default Value:

N/A


ICAP_XSCALING

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

All the X-axis scaling values available. A value of `1.0' is equivalent to 100% scaling.

NOTE: Do not use values less than or equal to zero.

Applications will want to ensure that the values set for this ICAP match those set for ICAP_YSCALING. There are no units inherent with this data as it is normalized to 1.0 being "unscaled."

Valid Values:

> 0

Default Value:

1.0


ICAP_YRESOLUTION

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

All the Y-axis resolutions the Source can provide.

Measured in units of pixels per unit as defined by ICAP_UNITS (pixels per TWUN_PIXELS yields dimensionless data). That is, when the units are TWUN_PIXELS, both ICAP_XRESOLUTION and ICAP_YRESOLUTION shall report 1 pixel/pixel. Some data sources like to report the actual number of pixels that the device reports, but that response is more appropriate in ICAP_PHYSICALHEIGHT and ICAP_PHYSICALWIDTH.

Setting this value will restrict the various resolutions that will be available to the user during acquisition.

Applications will want to ensure that the values set for this ICAP match those set for ICAP_XRESOLUTION.

Valid Values:

> 0

Default Value:

N/A


ICAP_YSCALING

Group: TWAIN Capabilities

Data type: TW_FIX32

Purpose:

All the Y-axis scaling values available. A value of `1.0' is equivalent to 100% scaling.

NOTE: Do not use values less than or equal to zero.

There are no units inherent with this data as it is normalized to 1.0 being "unscaled."

Applications will want to ensure that the values set for this ICAP match those set for ICAP_XSCALING.

Valid Values:

> 0

Default Value:

1.0


SOFTWARE LICENSE AGREEMENT

SOFTWARE LICENSE AGREEMENT

YOUR INSTALLATION, USE AND DISTRIBUTION OF THIS SOFTWARE PRODUCT ("THE PRODUCT") SIGNIFIES YOUR ACCEPTANCE OF THE TERMS OF THIS LICENSING AGREEMENT BETWEEN YOU ("LICENSEE") AND ACCUSOFT CORPORATION, A DELAWARE CORPORATION WITH ITS PRINCIPAL PLACE OF BUSINESS AT 71 LYMAN STREET, NORTHBOROUGH, MASSACHUSETTS 01532 ("ACCUSOFT")

Article 1: Definitions.

Section 1.0. Defined Terms. Terms defined in this Article 1 shall have the meanings given below. Defined terms may be used in the singular or plural.

Section 1.1. "Agreement" means this Software License Agreement, which includes this Agreement's terms and conditions, Order Forms, Schedules, Exhibits, Addenda, and Amendments, if any, which are incorporated in, and form an integral part of, this Agreement.

Section 1.2. "Application" means only the software application program or programs developed by Licensee (and all versions and releases thereof) that contain a copy of, and is linked to, the Product's Distributable Files.

Section 1.3. "Business Day" means a day or part of a day when AccuSoft is open for business, excluding Saturdays, Sundays, official United States federal holidays, Commonwealth of Massachusetts state holidays, and AccuSoft holidays.

Section 1.4. "Confidential information" means any data or information, oral or written, that relates to either party's (or, if either party is bound to protect the confidentiality of any other person's information, such other person's) past, present, or future research, development or business activities, including any unannounced product(s) and service(s), and including any information relating to services, developments, inventions, processes, plans, financial information, customer lists, forecasts, and projections, including the terms of this Agreement.

Section 1.5. "Develop" or "Development" means the development of one or more Applications by Licensee that contain a copy of the Product's Distributable Files.

Section 1.6. "Distributable File" means those files contained in the Product that may be distributed with Licensee's Application, as defined in Section 1.2. The list of Distributable Files for each Product is identified in the documentation that accompanies each Product.

Section 1.7. "Distribute" or "Distribution" means the distributing, deploying, selling, reselling, leasing, renting, licensing, lending or any other act whereby Licensee distributes the Application to an End User, whether such End User is internal or external to Licensee.

(a) "External Distribution" means that the Application containing the product is distributed for any reason other than internal distribution.

(b) "Internal Distribution" means that the Application containing the Product is not distributed for either commercial use or for sale (or resale), and is for use by End Users who are employees, interns, or contract employees of Licensee.

Section 1.8. "Distribution Method" means the method by which Licensee's End User accesses the Distributable Files. A Distribution Method may include one or more of the following:

(a) "Client/Server" means the End User is permitted to install the Distributable File on a Server specifically designated to host the Application from which a fixed number of Named or Concurrent Users can access the Application at any one time.

(b) "Concurrent User" means the End User is permitted to have (i) a fixed number of simultaneous individual users who are authorized to use the Application, or (ii) a multiple number of individual users who can sequentially use the Application on one single computer or workstation (i.e. a "kiosk model").

(c) "Named User" means the End User is permitted to have only one single, named individual user who is authorized to use one copy of the Application on a single personal computer.

(d) "Server" means the End User is permitted to install the Distributable File on a networked processor specifically designated to process one or more instances of the Application by (i) individual users via a single computer or workstation, (ii) non-user computers for automated tasks (a "Process Machine") (for example, batch imaging conversion processing, printer server processing, etc.), or (iii) a client applet server accessible via a web browser (a "Web Server").

Section 1.9. "End User" means the person or entity to which Licensee distributes the Application for use in the ordinary course of its business, and not for re-distribution or resale by such person or entity.

Section 1.10. "Installation" means the act of installing the Product on any system.

Section 1.11. "Licensing Fees" mean the fees identified in the Order Form that are mutually agreed to by AccuSoft and Licensee.

Section 1.12. "Order Form" means the order form, or other such document prescribed by AccuSoft, that details the Product(s), quantities, fees, and term of this Agreement and is executed by both parties.

Section 1.13. "Product" means the software product or products, including any accompanying documentation, identified in the Order Form and licensed by AccuSoft under this Agreement.

Section 1.14. "Supplier" means any software product or products, including any accompanying documentation, licensed by AccuSoft for use and distribution in the Product.

Section 1.15. "Term" means the period of time of this Agreement, as identified in the Order Form.

Article 2: Scope of License.

Section 2.1. Evaluation License. If the Product installed by Licensee is for evaluation purposes only, AccuSoft grants Licensee a license solely for the purpose of sampling and evaluating such Product for the timeframe specified in the evaluation period. No other rights, including but not limited to the rights stated in Sections 2.2 and 2.3, are applicable to evaluation copies of the product.

Section 2.2. Development License. Subject to the terms and conditions set forth in this Agreement, AccuSoft grants Licensee a non-exclusive, non-transferable, worldwide license to use the Product on a single machine, and incorporate all or portions of the Distributable Files into one or more Applications for Distribution by Licensee. Unless otherwise agreed to in writing by the parties, no more than one developer is authorized to use one single Product, and the Product is not to be used concurrently or on a site-wide basis, via a server or other networked connection. Licensee may make one copy of the Product for backup or archive purposes. If Licensee desires to have more than one developer use the Product, Licensee must purchase additional development licenses from AccuSoft.

Section 2.3. Distribution License. Subject to the terms and conditions set forth in this Agreement, AccuSoft grants Licensee a non-exclusive, non-transferable, worldwide license to distribute to End Users (either directly or indirectly) a copy of one or more distributable files in any applications developed pursuant to Section 2.2 by the Distribution Method identified on the Order Form during the Term of the Agreement. The Licensing Fee for a Distribution License will vary depending on the type or subtype of Distribution Method and the quantities licensed. If Licensee distributes more licenses than it has pre-purchased, as identified on the Order Form, Licensee's purchase of such additional licenses shall be subject to the terms and conditions set forth in Article 3 of this Agreement.

Section 2.4. Licensee shall distribute the Distributable Files in object code form only. No license or other right is granted to Licensee with respect to any of the Product's source code. Licensee shall not alter, modify, disassemble, decompile or reverse engineer the Product in any way or manner.

Section 2.5. Licensee shall distribute the Application to its resellers, OEMs, or other distribution channels only pursuant to a written agreement that binds the resellers, OEMs, or other distribution channels to comply with the terms and conditions of Articles 2 and 5 of this Agreement.

Section 2.6. Licensee shall distribute the Application to its End Users only pursuant to a written agreement that prohibits the End User from Distributing, creating, copying, duplicating, re-distributing, disassembling, decompiling, reverse engineering, or sublicensing the Product, and shall use its best efforts to ensure the same.

Section 2.7. Licensee may distribute the Application only if the Application:

(a) operates solely on the hardware and operating system(s) for which the Product is intended to be used;

(b) does not extend access to the Product's application programming interface (API);

(c) includes within the executable object files of all copies of the Product, including all Distributable Files, AccuSoft's patent, copyright, trademark and proprietary notices; and

(d) recognizes AccuSoft's copyright ownership in the Application initialization screen or "About Box", and/or in the documentation for the Application as follows: Imaging Technology provided under License by AccuSoft Corporation. ImageGear © 1996-2008. All Rights Reserved." Italics are not required. This requirement is not applicable if Licensee's internal application has neither an initialization screen nor an "About Box."

Section 2.8. If Licensee's Application is intended for external distribution, Licensee's Application shall also:

(a) not compete to any degree with the Product. Such competitive products are defined as imaging software development toolkit intended for use by application programmers and/or system integrators;

(b) be substantially greater in scope with greater functionality and features than those of the Product;

(c) not be a software development toolkit or provide a software development environment to the End User, and

(d) recognize AccuSoft's copyright ownership in the Application initialization screen (or "About Box") and/or in the documentation for the Application as follows: Imaging Technology provided under License by AccuSoft Corporation. ImageGear © 1996-2008. All Rights Reserved." Italics are not required.

Section 2.9. As required by United States export regulations, Licensee shall not permit export of the Product, or any direct products thereof, to any country to which export is then controlled by the United States Bureau of Export Administration, unless Licensee has that agency's prior written approval. Licensee shall require its End Users to comply with the provisions of this Section.

Section 2.10. If Licensee (or Licensee's End User) is an office, branch or agency of the U.S. Government, then its use, duplication and disclosure of the Product or any part thereof, shall be subject to the following additional requirements: The Product is a "commercial item," as such term is defined in 48 C.F.R. 12.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F. 12.212 (September 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4, the U.S. Government End Users acquire the Product and/or Application with only those rights set forth in this section.

Section 2.11. AccuSoft reserves the right to include in the Product one or more software devices to ensure that Licensee's use of the Application is consistent with the use identified in the Order Form, and does not exceed the maximum number of fixed licenses granted by AccuSoft, if any.

Article 3: Fees and Reporting.

Section 3.1. Licensee shall pay to AccuSoft all Licensing Fees due for all copies of the Application containing the Distributable Files licensed and Distributed by Licensee. All Licensing Fees are payable in U.S. dollars and are non-refundable.

Section 3.2. Timely payment of the Licensing Fee permits Licensee to use the Product, and Distribute its Application (either directly or indirectly) to End Users. For U.S. based Licensees, payment is due 30 days from the date of the invoice. For all other Licensees, payment is due in full prior to or contemporaneously with the licensing of the Product. Late payment charges shall be imposed on all outstanding balances for each month or portion thereof that the outstanding balance remains unpaid, at the rate of 1.5% per month or the maximum rate permitted by law for such charge.

Section 3.3. Where required by law, AccuSoft will collect from Licensee, and Licensee is responsible to pay for, sales and all other taxes associated with the order, unless AccuSoft is provided a valid and correct tax exemption certificate prior to order acceptance. The payment of such tax is the sole responsibility of Licensee.

Section 3.4. Licensee understands and acknowledges that in order to receive bulk discount pricing for distribution Licensing Fees, it must pre-pay for such licenses. In the event that Licensee Distributes more licenses than it has purchased, or distributes by a Distribution Method not stated on the Order Form, Licensee shall pay AccuSoft's then-current quantity-one pricing for each copy distributed over the number licenses purchased. Quantity-one pricing is defined as the fee associated with purchasing one (1) distribution license.

Section 3.5. Licensee shall inform AccuSoft in writing within thirty (30) days after the date of the first shipment of copies of the Application. Thereafter, Licensee shall complete a License Distribution Report (or other such Distribution Fee statements provided by AccuSoft) each calendar quarter stating the number of Distribution Licenses distributed during each Disclosure Period and estimating the number of Distribution License that may be used during the next Disclosure Period. An authorized officer of Licensee shall sign all such License Distribution Reports.

Section 3.6. Upon AccuSoft's request, at mutually agreeable times no more frequently than once annually, an auditor chosen by AccuSoft shall be provided reasonable access during normal business hours to the relevant records of Licensee for the purpose of an audit of Distribution Fees due. Such records shall include, without limitation, information concerning copies of the Application made and distributed and other information necessary to verify the payments and amounts due AccuSoft hereunder. AccuSoft shall maintain in confidence any proprietary information of Licensee obtained during the course of such audit. The results of any such audit shall be final and dispositive. If the auditor's report indicates an underpayment of more than 10% for any auditing period, Licensee shall pay the full cost of the audit, and pay AccuSoft the balance due within thirty (30) days from presentation of the report.

Article 4: Support.

Section 4.1. For one year after Licensee's purchase or installation of the Product (pursuant to Section 2.2 of this Agreement), whichever is earlier, AccuSoft shall provide Licensee with the level of product support and maintenance identified on the Order Form. A copy of each of AccuSoft's various product support and maintenance levels may be found in the on-line help section included with the Product. If no such product support and maintenance is identified, the Product does not come with support.

Section 4.2. Licensee agrees that, within thirty days of its release of any Application built with the Product, it will provide AccuSoft with two (2) copies of such Application for support purposes. AccuSoft's use of such Application will be limited to providing support to Licensee, and shall be governed by the provisions of Article 7 of this Agreement.

Article 5: Intellectual Property.

Section 5.1. Licensee recognizes and acknowledges the exclusive right of AccuSoft (and its Suppliers) in and to all patents, trademarks, service marks, trade names, copyrights, and other intellectual property and proprietary rights in and to the Product, and that such patents, trademarks, service marks, trade names, copyrights, and other intellectual property and proprietary rights are the sole and exclusive property of AccuSoft and its Suppliers.

Section 5.2. Licensee waives its right to contest any of AccuSoft's or its Supplier's patents, trademarks, service marks, trade names, copyrights, and other intellectual property and proprietary rights in and to the Product.

Section 5.3. Licensee shall not use such trademarks, service marks, and trade names except where permitted under this Agreement without receiving AccuSoft's prior written approval of such use. If such approval is granted, Licensee's right to use such trademarks, service marks, and trade names shall end upon the termination of this Agreement.

Article 6: Confidentiality.

Section 6.1. Licensee shall remain in exclusive control of the Product, including but not limited to, the physical media, downloads, sample code, and documentation. The parties agree that neither party shall disclose or otherwise make available any confidential information provided to it by the other party. Unless otherwise agreed to by the parties, the scope of this Section shall be given the broadest interpretation possible and shall include, but not be limited to, the terms and conditions of this Agreement, the Order Form, and pricing.

Section 6.2. The obligations of non-disclosure in Section 6.1 shall not apply to information that (i) is publicly available or in the public domain at the time disclosed; (ii) is, or becomes, publicly available or enters the public domain through no fault of the party receiving such information; (iii) is rightfully communicated to the recipient by persons not bound by confidentiality obligations with respect thereto; (iv) is already in the recipient's possession free of any confidentiality obligations with respect thereto at the time of disclosure; (v) is independently developed by the recipient; (vi) is approved for release or disclosure by the disclosing party without restriction, (vii) is required by a court of competent jurisdiction.

Article 7: Term and Termination.

Section 7.1. Unless otherwise agreed to by the parties, this Agreement shall become effective upon its execution by both parties, and shall continue in full force and effect until terminated in accordance with the terms set forth in the Order Form or this Agreement.

Section 7.2. In the event that Licensee materially breaches this Agreement, or ceases business or is adjudged bankrupt or insolvent, then AccuSoft may, at its option, terminate this Agreement, by giving ten (10) Business Days written notice of such termination, which notice shall identify and describe the basis for such termination. If, prior to expiration of such period, Licensee cures such default, termination shall not take place.

Section 7.3. In the event of any termination of this Agreement, Licensee shall stop manufacturing and Distributing the Application containing a copy of the Distributable Files, and require its resellers, OEMs, and other distribution channels (if any) to likewise stop manufacturing and Distributing the Application containing a copy of the Distributable Files. Within ten (10) Business Days thereafter, Licensee shall return or, at AccuSoft's option, destroy the Product and all copies in whole or in part thereof, whether or not incorporated in or with the Application, and within Licensee's possession, custody and control, and shall certify to AccuSoft in writing within ten (10) Business Days thereafter that it has complied with the foregoing obligation.

Section 7.4. For external distributions, the termination of this Agreement shall not affect any rights of End Users to use the Application if such copies were shipped prior to the termination of this Agreement. So long as Licensee's external distributions to End Users and the End Users' use of the Application conforms to the terms and conditions set forth in this Agreement, the End User's rights to use the Product as incorporated into the Application shall be perpetual.

Section 7.5. Articles 1, 5, 6, 7, 8 and 9 shall continue in full force and effect, notwithstanding any such termination of this Agreement.

Article 8: Limited Warranty.

Section 8.1. AccuSoft represents and warrants that it has full power and authority to enter into this Agreement, and has sufficient right, title, and interest in the Product to enter into this Agreement.

Section 8.2. Licensee understands and acknowledges that the Product, although functionally complete, has not been extensively tested by AccuSoft or its Suppliers as to the correctness or speed of operation in Licensee's Application. Although AccuSoft will make reasonable efforts to correct any material nonconformity between the Product and its then-current documentation that is brought to AccuSoft's attention with written, documented reports from Licensee, ACCUSOFT AND ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE RESULTS OBTAINED BY USING THE PRODUCT. AccuSoft's entire liability and Licensee's exclusive remedy under this Agreement shall be to provide reasonable support services.

Section 8.3. THE PRODUCT IS PROVIDED "AS IS." ACCUSOFT AND ITS SUPPLIERS SPECIFICALLY DISCLAIM ANY AND ALL WARRANTY TO LICENSEE OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, PERFORMANCE RESULTS AND NON INFRINGEMENT. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PRODUCT IS WITH LICENSEE.

Section 8.4. IN NO EVENT WILL ACCUSOFT OR ITS SUPPLIERS BE LIABLE TO LICENSEE FOR ANY DAMAGES, INCLUDING LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR INABILITY TO USE THE PRODUCT EVEN IF IT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. Some states or jurisdictions do not allow the exclusion or limitation of incidental, consequential or special damages, or the exclusion of implied warranties, or limitations on how long an implied warranty may last, so the above limitations may not apply to Licensee. To the extent permissible, any implied warranties are limited to thirty (30) days. This warranty gives Licensee specific legal rights. Licensee may have other rights which vary from state to state or jurisdiction to jurisdiction.

Section 8.5. The warranty extended in this Article extends only to Licensee, and shall not apply to any other person or entity including, but not limited to, Licensee's End Users.

Article 9: General Provisions.

Section 9.1. AccuSoft and Licensee warrant that they have the requisite authority to enter into this Agreement.

Section 9.2. This Agreement constitutes the entire understanding and agreement between AccuSoft and Licensee regarding its subject matter, and supercedes all previous oral and written communications, agreements, memoranda, representations, or understandings between AccuSoft and Licensee regarding this Agreement. No other rights or licenses are granted to Licensee, except as expressly provided herein.

Section 9.3. This Agreement shall not be amended, altered, changed or modified in any way, unless agreed to in writing by both AccuSoft and Licensee. Such writing must be executed by a duly authorized representative of AccuSoft and a duly authorized representative of Licensee.

Section 9.4. This Agreement is not transferable or assignable by Licensee under any circumstances, without the prior written consent of AccuSoft. AccuSoft will not unreasonably withhold such consent. This agreement shall be binding upon, and is made for the benefit of, each party, its successors, and permitted assignees (if any). For the purposes of this Agreement, any change in control of Licensee shall constitute an assignment or transfer of this Agreement. As used in this section, a change in control is defined as (i) any change in ownership of more than fifty percent (50%) of the voting interest in Licensee, whether by merger, purchase, foreclosure of a security interest or other transaction, or (ii) a sale of all or substantially all of the assets of Licensee.

Section 9.5. The relationship established by this Agreement between Licensee and AccuSoft shall be that of licensee and licensor. Nothing contained in this Agreement shall be construed as creating a relationship of agency, joint venture or partnership between Licensee and AccuSoft. Neither party shall have any right whatsoever to incur any liabilities or obligations on behalf of the other party.

Section 9.6. The laws of the Commonwealth of Massachusetts shall govern this Agreement, excluding that body of law known as conflict of laws and the United Nations Convention on Contracts for the Sale of Goods. Any action or proceeding brought by either party against the other arising out of, or related to, this Agreement shall be brought only in a state or federal court of competent jurisdiction located in the Commonwealth of Massachusetts and the parties hereby consent to the personal jurisdiction of said courts.

Section 9.7. In the event that any provision of this Agreement is found invalid or unenforceable pursuant to a judicial decree or decision, the remainder of this Agreement shall remain valid and enforceable according to its terms.

Section 9.8. AccuSoft's failure to perform any term or condition of this Agreement as a result of conditions beyond its control such as, but not limited to, war, strikes, fires, floods, acts of God, governmental restrictions, power failures, or damage or destruction of any network facilities or servers, shall not be deemed a breach of this Agreement.

Section 9.9. In the event of suit or any legal action due to any breach of this Agreement is commenced to enforce this Agreement or otherwise relating to this Agreement, the prevailing party shall be entitled to all attorneys' fees and costs incurred in connection therewith.

Section 9.10. The headings provided in this Agreement are for convenience and reference purposes only. In the event of a conflict between the terms and conditions listed in Articles 1 through 10, and the attached Schedules, the terms and conditions shall govern.

Section 9.11. A waiver of a breach, violation, or default under this Agreement shall not be a waiver of any subsequent breach, violation or default. Failure of either party to enforce compliance with any term or condition of this Agreement shall not constitute a waiver of such term or condition.

Section 9.12. All notices and communications shall be in writing and shall be deemed to have been duly given when delivered or three (3) Business Days after mailing by certified mail, return receipt requested, postage prepaid, addressed to the parties at their respective addresses set forth on the Order Form or at such other addresses as the parties may designate by written notice in accordance with this section.

Section 9.13. The Order Form, and any amendments or addenda to this Agreement, may be executed in counterparts, each of which will be considered an original, but all counterparts together will constitute one agreement. A facsimile of a signed copy of this Agreement, or an electronic or other digital signature imprinted on this Agreement, may be relied upon as an original.


Schedule A: Additional Terms and Conditions Applicable to Adobe® Technology

1. Adobe Technology

If Licensee's use and distribution of the Product includes Adobe Technology and related documentation, the term "Product" as defined in Section 1.13 of the Agreement includes Adobe Technology and related documentation, and any upgrades, modified versions, updates, additions, and copies thereof.

2. Font License.

If the Product includes font software, Licensee may embed the font software, or outlines of the font software, into its Application to the extent that the font vendor copyright owner allows for such embedding. The fonts contained in this package may contain both Adobe and non-Adobe owned fonts. Licensee may fully embed any font owned by Adobe.

3. Limited Warranty

ARTICLE 8 OF THE AGREEMENT STATES THE SOLE AND EXCLUSIVE REMEDIES FOR ACCUSOFT'S BREACH OF WARRANTY. EXCEPT FOR THE FOREGOING LIMITED WARRANTY, ADOBE AND ITS SUPPLIERS MAKE NO WARRANTY, EXPRESS OR IMPLIED, AS TO MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT WILL ADOBE OR ITS SUPPLIERS BE LIABLE TO LICENSEE FOR ANY CONSEQUENTIAL, INCIDENTAL OR SPECIAL DAMAGES, INCLUDING ANY LOST PROFITS OR LOST SAVINGS, EVEN IF AN ADOBE REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY THIRD PARTY. Some states or jurisdictions do not allow the exclusion or limitation of incidental, consequential or special damages, or the exclusion of implied warranties, or limitations on how long an implied warranty may last, so the above limitations may not apply to Licensee. To the extent permissible, any implied warranties are limited to thirty (30) days. This warranty gives Licensee specific legal rights. Licensee may have other rights which vary from state to state or jurisdiction to jurisdiction.

4. Trademarks.

Adobe and Adobe PDF Library are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.


Schedule B: Additional Terms and Conditions Applicable to MIT's FFTW Technology

1. FFTW Technology

If Licensee's use and distribution of the Product includes FFTW Technology, please note that the FFTW technology is provided to AccuSoft under a copyright license from the Massachusetts Institute of Technology (MIT).

2. Disclosure of Customer's Information

If Licensee informs AccuSoft that is desires to license the FFTW technology, AccuSoft is required to notify MIT of Licensee's name and contact information. Additionally, upon request from MIT, AccuSoft may be required to provide MIT with a copy of this specific licensing agreement. MIT shall treat all this information as confidential information of the AccuSoft.

3. Termination.

In the event MIT terminates its FFTW copyright license with AccuSoft, Licensee's rights to use the FFTW technology may be affected as follows:

a. If Licensee is the End User of the Product (e.g. the Application is for Licensee's internal use only), and has no rights to sublicense or distribute the Product, Licensee's right to continued use of the FFTW technology within the Product shall not be affected by such termination.

b. If Licensee is a Sublicensee of the Product, and has the rights to sublicense or distribute Product containing the FFTW technology, Licensee shall be required to contact MIT directly to procure the appropriate level of licensing. By Agreement, AccuSoft is required to provide MIT with a list of all customers who have sublicensing or distribution rights. All such information is deemed confidential in the AccuSoft-MIT Agreement.

c. However, Licenses of derivative works created by Licensee shall survive the termination of this Agreement, so long as Licensee understands that MIT specifically disclaims any and all warranties in relation to the derivative works, and that Licensee, in its License Agreement, specifically disclaim any and all warranties by MIT. in relation to the derivatives to the full extent permitted by law and limit MIT's liability for damages related to the derivatives to the full extent permitted by law.

4. Limited Warranty

ARTICLE 8 OF THE AGREEMENT STATES THE SOLE AND EXCLUSIVE REMEDIES FOR ACCUSOFT'S BREACH OF WARRANTY. THIS ARTICLE SHALL BE SUPERSEDED BY THE FOLLOWING: MIT MAKES NO WARRANTY, EXPRESS OR IMPLIED, AS TO MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT WILL MIT OR ITS SUPPLIERS BE LIABLE TO LICENSEE FOR ANY CONSEQUENTIAL, INCIDENTAL OR SPECIAL DAMAGES, INCLUDING ANY LOST PROFITS OR LOST SAVINGS, EVEN IF AN MIT REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY THIRD PARTY. Some states or jurisdictions do not allow the exclusion or limitation of incidental, consequential or special damages, or the exclusion of implied warranties, or limitations on how long an implied warranty may last, so the above limitations may not apply to Licensee. To the extent permissible, any implied warranties are limited to thirty (30) days. This warranty gives Licensee specific legal rights. Licensee may have other rights which vary from state to state or jurisdiction to jurisdiction.


Schedule C: Additional Terms and Conditions Applicable to Microsoft's XPS Functionality

1. Microsoft's Technology

If Licensee's use and distribution of the Product includes Microsoft's XPS Functionality (as defined below), please note that the XPS Functionality technology is provided to AccuSoft under a royalty free copyright license from Microsoft. XPS Functionality includes the following:

a. Microsoft's XPS Essentials Pack;

b. Microsoft's MSXML 6.0; and

c. Microsoft's Windows Desktop 4.0 Search Preview.

2. XPS Technology License

Under the terms of Microsoft's various licensing agreements, AccuSoft has a perpetual, royalty-free license to redistribute the XPS functionality to the Licensee. However, if Licensee desires to Externally Distribute such XPS Functionality to its End Users, Licensee is required to download directly the XPS Functionality prior to any such External Distribution.

3. Limited Warranty

ARTICLE 8 OF THE AGREEMENT STATES THE SOLE AND EXCLUSIVE REMEDIES FOR ACCUSOFT'S BREACH OF WARRANTY. EXCEPT FOR THE FOREGOING LIMITED WARRANTY, MICROSOFT AND ITS SUPPLIERS MAKE NO WARRANTY, EXPRESS OR IMPLIED, AS TO MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT WILL ADOBE OR ITS SUPPLIERS BE LIABLE TO LICENSEE FOR ANY CONSEQUENTIAL, INCIDENTAL OR SPECIAL DAMAGES, INCLUDING ANY LOST PROFITS OR LOST SAVINGS, EVEN IF AN ADOBE REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY THIRD PARTY. Some states or jurisdictions do not allow the exclusion or limitation of incidental, consequential or special damages, or the exclusion of implied warranties, or limitations on how long an implied warranty may last, so the above limitations may not apply to Licensee. To the extent permissible, any implied warranties are limited to thirty (30) days. This warranty gives Licensee specific legal rights. Licensee may have other rights which vary from state to state or jurisdiction to jurisdiction.

4. Trademarks.

Microsoft and the components of the XPS Functionality are either registered trademarks or trademarks of Microsoft in the United States and/or other countries.


Software Support and Maintenance Policy

AccuSoft provides product support and maintenance services for all of its products. These services provide the subscriber with a certain level of ongoing technical assistance (i.e., support) and access to software updates (i.e., maintenance). The subscriber is the individual or company who has licensed one or more products from AccuSoft, and who is entitled to product support and maintenance services under the terms and conditions of its Software License Agreement with AccuSoft. Additionally, unless otherwise stated in this policy, the terms used in this policy shall have the same meanings as the terms defined in Article I of the Software License Agreement.

See Also:
  • Preferred Level
  • Premier Level

Preferred Level

At the Preferred Level, product support and maintenance services entitle a subscriber to the following:

1. Maintenance.

AccuSoft makes periodic updates to its products to correct errors, make enhancements, or improve performance. An update is defined as a minor release to the current version that results in a patch, bug fix, updated documentation, or improved performance of the Product. At the Preferred Level, subscribers are entitled to any and all updates to the version of the product licensed by the subscriber during the support term.

At the Preferred Level, subscribers are also entitled to any and all upgrades to the version of the product licensed by the subscriber during the support term. An upgrade is defined as a change to the product that substantially enhances the functionality of the product and/or results in change in the version number of the product to the left of the decimal point.

2. Technical Assistance.

Technical assistance is provided to subscribers to enable AccuSoft to determine and resolve product problems and questions. Technical assistance does not include software application consulting, or custom coding of a subscriber's solution.

Technical assistance is only provided via electronic methods from the AccuSoft support web site to the individual identified by the subscriber as the designated support contact for the product.

Preferred support is entirely web-based for both problem ticketing and resolution. During the support term, Preferred Level subscribers receive automated e-mail notification of any updates to ticket that have been posted to AccuSoft's support web site. The designated support contact will have unlimited access to the AccuSoft web site for ticket creation, status monitoring, information access, etc.

Preferred Support services include:

  • Electronic submission of product problems and questions, and online access to update and track the progress of your case
  • Electronic access to up-to-date knowledge databases for our products that provide answers and fixes to commonly asked questions and problems
  • Electronic access to product documentation including the updated guides and manuals, technical bulletins, flashes, and release notes
  • Electronic access to all patches, product fixes, release and maintenance information for the version licensed

Plus,

  • Electronic access to all updates, enhancements and upgrades (including new versions/releases) that may be issued to the licensed product during your support term (one-year by default)
  • Electronic notification that a resolution or status update is available to view through AccuSoft's electronic web interface

3. Support Services Availability and Coverage.

Electronic access is available 24 hours a day, 7 days a week.

AccuSoft's Customer Support department is open Monday through Friday, 8:30 a.m. to 5:30 p.m. EST, except on designated AccuSoft holidays. Requests for assistance received after the daily coverage period shall be deemed to have been received the next business day.

4. Support Services - Response Objectives.

AccuSoft shall use reasonable efforts to meet the following objectives with regard to remedial support for each AccuSoft productsoftware.

  • Initial Response. Upon receipt, AccuSoft will respond to the subscriber's report of a problem with the product based upon the initial response time and problem severity priority listed below:
    Problem
    Resolution
    Stages
    for Preferred
    Level
    Problem Severity
    Priority I
    Priority II
    Priority III
    Initial Response
    3 Business Hours
    8 Business Hours
    24 Business Hours
    Response Update
    Every 2 Business Days
    Every 2 Weeks
    Every 4 Weeks
    Relief
    Priority work
    ASAP
    Reasonable efforts
  • Problem Severity. Problem Severity is prioritized as follows:

Priority I - Subscriber is unable to do production work or production is jeopardized and a work-around is not available or is generally unacceptable;

Priority II - A major product function is inoperable, but production can continue;

Priority III - A loss of a function that does not seriously impact operation or schedules.

  • Problem Resolution Stages. After the initial response, AccuSoft will provide a response update to the subscriber according to the schedule specified above. AccuSoft will use the following objectives for problem resolution: Response - A technically qualified engineer is working on the problem; Relief - subscriber's operation is no longer at risk due to the original problem, or the subscriber understands and accepts all risk. A permanent problem resolution may be available in a subsequent revision.

5. Additional Support Options.

During the first ninety (90) days after the purchase of the product, a subscriber is eligible to upgrade to an enhanced level of support services that includes but is not limited to, access to AccuSoft's Customer Support Department.

Additionally, AccuSoft may also provide on-site technical assistance to augment any such remote technical assistance. On-site technical assistance shall be chargeable to the subscriber based on AccuSoft's then current on-site support services fees and policies. On-site technical assistance is not included in the services provided in the maintenance and support subscription described above.

6. Subscriber Responsibilities.

  • Information. Subscriber problem reports to AccuSoft must contain all pertinent information regarding the issue, including but not limited to, the following: the AccuSoft software/revision number, Operating system/version, Development Platform, Problem Description, Log files/Test Case and Problem Severity. Subscribers must execute diagnostic routines if provided by AccuSoft, and inform AccuSoft of the results. Subscribers must also verify the existence of a product problem and provide the conditions under which it may be duplicated by AccuSoft at an AccuSoft location. All problem reports must be in English.
  • Technical Contact. During the period of time in which AccuSoft is working on the subscriber issue, the subscriber shall provide a technical contact who is familiar with the product problem and the subscriber environment.
  • Remote Access. By purchasing software support and maintenance services, the subscriber agrees to permit AccuSoft to remotely access the subscribers computer system for the sole purpose of diagnosing any reported problem with the product including, but not limited to, granting AccuSoft permission to install remote access software on subscriber's computer system(s) that contain the product. All standard confidentiality provisions identified in the Software License Agreement will apply. The subscriber shall provide remote access via dial-in or internet when required by AccuSoft to analyze a problem.

7. Service Limitations.

  • AccuSoft will support only the most current version of the Product. The current version is defined as the version of the product that is commercially available for sale by AccuSoft. Upon the release of such current version of a product, AccuSoft will continue to support and maintain the version of the product released immediately prior to the release of the current version in accordance with the then prevailing End-of-Life policy.
  • All associated computer hardware and operating system software and product must be maintained at the latest version deemed necessary by AccuSoft. AccuSoft shall not be obligated to provide support services under this policy if the service is regarding hardware, software or product that does not conform to the above statement. Any and each such service may result in additional charges for labor and materials as determined by AccuSoft, and shall be provided at the sole discretion of AccuSoft.
  • On-site services will be provided by quotation, are not covered by this policy, and shall be provided at the sole discretion of AccuSoft. Additional AccuSoft consulting and/or coding services may also be available to the subscriber under a separate agreement. AccuSoft may provide assistance to help optimize or enhance subscriber's use of the product. When AccuSoft determines that any such assistance has exceeded a reasonable level, AccuSoft will supply a quotation for additional Consulting Services.
See Also:
  • Premier Level

Premier Level

At the Premier Level, product support and maintenance services entitle a subscriber to the following:

1. Maintenance.

AccuSoft makes periodic updates to its products to correct errors, make enhancements, or improve performance. An update is defined as a minor release to the current version that results in a patch, bug fix, updated documentation, or improved performance of the Product. At the Premier Level, subscribers are entitled to any and all updates to the version of the product licensed by the subscriber during the support term.

At the Premier Level, subscribers are also entitled to any and all upgrades to the version of the product licensed by the subscriber during the support term. An upgrade is defined as a change to the product that substantially enhances the functionality of the product and/or results in change in the version number of the product to the left of the decimal point.

2. Technical Assistance.

Technical assistance is provided to subscribers to enable AccuSoft to determine and resolve product problems and questions. Technical assistance does not include software application consulting, or custom coding of a subscriber's solution.

Premier support is pro-active, with personalized contact both to and from the subscriber via any and all contact methods - e-mail, telephone, facsimile - as well as AccuSoft's electronic web interface. The designated support contact may make unlimited requests for assistance to AccuSoft's Customer Service department.

Premier Support services include:

  • Electronic and/or personalized submission of product problems and questions, and online access to update and track the progress of your case
  • Electronic access to up-to-date knowledge databases for our products that provide answers and fixes to commonly asked questions and problems
  • Electronic access to product documentation including the updated guides and manuals, technical bulletins, flashes, and release notes
  • Electronic access to all patches, product fixes, release and maintenance information for the version licensed

Plus,

  • Electronic access to all updates, enhancements and upgrades (including new versions/releases) that may be issued to the licensed product during your support term (one-year by default)
  • Electronic notification that a resolution or status update is available to view through AccuSoft's electronic web interface

Additionally, should AccuSoft's Customer Support analysts need to investigate an issue within your own computer environment, the Customer Support analysts may recommend the use of our e-support solution. This system allows AccuSoft to assist the subscriber by allowing the analyst to:

  • Access your system to view, diagnose and solve your problems online
  • Run applications to ensure proper installation and configuration
  • Download and install patches or updates to your system
  • Upload your files for analysis
  • Include other analysts for consultation
  • Interact with you via text chat
  • Record the entire support session for archival

3. Support Services Availability and Coverage.

Electronic access is available 24 hours a day, 7 days a week.

AccuSoft's Customer Support department is open Monday through Friday, 8:30 a.m. to 5:30 p.m. EST, except on designated AccuSoft holidays. Requests for assistance received after the daily coverage period shall be deemed to have been received the next business day.

4. Support Services - Response Objectives.

AccuSoft shall use reasonable efforts to meet the following objectives with regard to remedial support for each AccuSoft productsoftware.

  • Initial Response. Upon receipt, AccuSoft will respond to the subscriber's report of a problem with the product based upon the initial response time and problem severity priority listed below:
    Problem
    Resolution
    Stages for
    Premier
    Level
    Problem Severity
    Priority I
    Priority II
    Priority III
    Initial Response
    1 Business Hour
    4 Business Hours
    12 Business Hours
    Response Update
    Each Business Day
    Every Week
    Every 2 Weeks
    Relief
    Work Continuously
    ASAP
    Reasonable efforts
  • Problem Severity. Problem Severity is prioritized as follows:

Priority I - Subscriber is unable to do production work or production is jeopardized and a work-around is not available or is generally unacceptable;

Priority II - A major product function is inoperable, but production can continue;

Priority III - A loss of a function that does not seriously impact operation or schedules.

  • Problem Resolution Stages. After the initial response, AccuSoft will provide a response update to the subscriber according to the schedule specified above. AccuSoft will use the following objectives for problem resolution: Response - A technically qualified engineer is working on the problem; Relief - subscriber's operation is no longer at risk due to the original problem, or the subscriber understands and accepts all risk. A permanent problem resolution may be available in a subsequent revision.

5. Additional Support Options.

AccuSoft may also provide on-site technical assistance to augment any such remote technical assistance. On-site technical assistance shall be chargeable to the subscriber based on AccuSoft's then current on-site support services fees and policies. On-site technical assistance is not included in the services provided in the maintenance and support subscription described above.

6. Subscriber Responsibilities.

  • Information. Subscriber problem reports to AccuSoft must contain all pertinent information regarding the issue, including but not limited to, the following: the AccuSoft software/revision number, Operating system/version, Development Platform, Problem Description, Log files/Test Case and Problem Severity. Subscribers must execute diagnostic routines if provided by AccuSoft, and inform AccuSoft of the results. Subscribers must also verify the existence of a product problem and provide the conditions under which it may be duplicated by AccuSoft at an AccuSoft location. All problem reports must be in English.
  • Technical Contact. During the period of time in which AccuSoft is working on the subscriber issue, the subscriber shall provide a technical contact who is familiar with the product problem and the subscriber environment.
  • Remote Access. By purchasing software support and maintenance services, the subscriber agrees to permit AccuSoft to remotely access the subscriber's computer system for the sole purpose of diagnosing any reported problem with the product including, but not limited to, granting AccuSoft permission to install remote access software on subscriber's computer system(s) upon which the product has been installed. All standard confidentiality provisions identified in the Software License Agreement will apply. The subscriber shall provide remote access via dial-in or internet when required by AccuSoft to analyze a problem.

7. Service Limitations.

  • AccuSoft will support only the most current version of the Product. The current version is defined as the version of the product that is commercially available for sale by AccuSoft. Upon the release of such current version of a product, AccuSoft will continue to support and maintain the version of the product released immediately prior to the release of the current version in accordance with the then prevailing End-of-Life policy.
  • All associated computer hardware and operating system software and product must be maintained at the latest version deemed necessary by AccuSoft. AccuSoft shall not be obligated to provide support services under this policy if the service is regarding hardware, software or product that does not conform to the above statement. Any and each such service may result in additional charges for labor and materials as determined by AccuSoft, and shall be provided at the sole discretion of AccuSoft.
  • On-site services will be provided by quotation, are not covered by this policy, and shall be provided at the sole discretion of AccuSoft. Additional AccuSoft consulting and/or coding services may also be available to the subscriber under a separate agreement. AccuSoft may provide assistance to help optimize or enhance subscriber's use of the product. When AccuSoft determines that any such assistance has exceeded a reasonable level, AccuSoft will supply a quotation for additional Consulting Services.
See Also:
  • Preferred Level


Appendix E: Glossary

Appendix E: Glossary

This glossary contains a mixture of terminology used by AccuSoft in both its software products and its documentation. Since these terms come from many different disciplines and because many of the terms have different meanings in each discipline, each glossary entry is followed by the name of the field from which the definition is taken.

For a detailed description, refer to the references listed in the Bibliography.

To find terms which start with a numeral (0-9), look under its spelling, for example, the term "8-bit gray level" can be found as - "eight bit gray level."

absolute coordinates (imaging)

Absolute coordinates refer to a common origin, for example, the upper left corner of a display screen. This is the opposite of relative coordinates.

ACCUAPI (AccuSoft)

AccuSoft Application Program Interface.

See Also:

API (software)

additive primary colors (imaging)

Red, Green, Blue - the 3 colors used to create all other colors when direct, or transmitted light is used (as in a video monitor). They are called additive primaries, because when these three colors are superimposed they produce white.

anti-aliasing (imaging)

A method of filling in data that is missing due to under-sampling. In imaging, this usually involves the process of removing jagged edges by interpolating values in-between pixels of contrast. These methods are most often used to remove or reduce the stair-stepping artifact found in digital high contrast images.

AOI (Image Processing)

Area Of Interest. An area of interest is a rectangle within an image defined as two points within the image. An AOI can be written as (x1,y1)-(x2,y2). All AOIs are parallel with the image's axes.

See Also:

ROI (AccuSoft image processing)

API (software)

Application Programmer's Interface. The set of routines that make up a library or toolkit. Some times called a binding.

aspect ratio (imaging)

The proportion of an image's size given in terms of the horizontal length verses the vertical height. An aspect ratio of 4:3 indicates that the image is 4/3 times as wide as it is high.

Bezier curve (graphics)

A curve created from endpoints and two or more control points that serve as positions for the shape of the curve. Originated by P. Bezier (~1962) for the use in car body descriptions.

bit block transfer

A raster operation that moves a block of bits representing a portion of an image or scene from one location in the frame buffer to another. Usually written as "bit blt".

bin (image processing)

See Also:

histogram (imaging)

Bit Block Transfer (Windows)

An optimized movement of a large block of computer memory from one location to another. Used for moving images or sub-images to and from areas of computer memory.

bit blt

.

bitmap (imaging)

An image is a bitmap if it contains a value for each of its pixels. This is the opposite of vector images where a small set of values generate an object.

bit plane (imaging)

A hypothetical 2-D plane containing a single bit of memory for each pixel in a image. If each 8-bit pixel is thought of as a stack of 8 coins, and an image as many rows and columns of these stacked coins then the 3rd bit plane would be the plane consisting of the 3rd coin from each stack.

bounding rectangle (geometry)

The smallest rectangle that fits around a given object. In imaging, the rectangle is usually rotationally restricted to be parallel to both image axes.

.BMP (file format extension)

Format originator: Microsoft Corporation

16011 NE 36th Way, Box 97917

Redmond, WA 98073

Call-back function (software)

A function that is passed to another function as a parameter. The function receiving the call-back function can call this function. This is used to change the behavior of a given routine without knowing beforehand what it is expected to do.

Cartesian coordinates (imaging)

A 2-dimensional equally spaced grid iron that uniquely assigns every point in the plane, (one and only one), co-ordinate pair; (x, y). In imaging, each point is usually referred to as a pixel and the x and y values take on integer values. Most images use the top-left as the (0,0), or origin.

See Also:

coordinates

Chroma-key (image processing)

An image blending function that replaces pixels of a specified hue range with pixels from a second image. This is often referred to the weatherman effect because most weather forecasters use a solid blue or green background to make it look as if they are standing in front of a huge weather map. It is important to remember that it is the hue that is used in the blending function and not the intensity or saturation.

C.I.E (color imaging)

Commission Internationale de l'Eclairage. (International Commission of Illumination). A standards organization which provides specifications for the description of device independent color.

clipboard (Windows)

The clipboard is a windows data structure used to exchanged data between applications. It is a common area where applications place data and others can access it. These operations are usually referred to as Cut (place data in) and Paste (take data out).

closing (image processing)

See Also:

MPEG (image compression)

CMY & CMYK

Cyan, Magenta, Yellow, (K) black. Computer monitors are additive, but color printers are subtractive. Instead of combining light from monitor phosphors, printers coat paper with colored pigment that removes specific colors from the illumination light.

CMY is the subtractive color model that corresponds to the additive RGB model. Cyan, magenta, and yellow are the color complements of red, green, and blue. Due to the difficulties of manufacturing pigments that produce black when mixed together, a separate black ink is often used and is referred to as K (`B' is already used for blue).

color map (imaging)

See Also:

Look-Up-Table (computer hardware)

color model (imaging)

See Also:

color space (imaging)

color space (imaging)

A mathematical coordinate system (space) for assigning numerical values to colors. There are many ways to define such spaces, each with its own benefits and problems.

See Also:
  • CMY & CMYK
  • HIS (color imaging)
  • HLS (color imaging)
  • HSV (color imaging)
  • RGB (imaging)
  • YIQ (color imaging)

compression (imaging)

An image processing method for saving valuable disk and memory space by reducing the amount of space required to save a digital image. The graphics data is rewritten allowing it to be represented by a smaller set of data. Do not confuse this with encoding. See lossless (image compression) and lossy (image compression) .

compression ratio (imaging)

The ratio of a file's uncompressed size over its compressed size.

concave (geometry)

A 2-dimensional blob, for example, a region of interest (ROI), where at least one tangent is drawn that touches the blob at two different locations, and there is a point on the tangent between the two contacts that does not touch the blob.

In simpler words, if a rubber band could be snugly wrapped around a concave blob there would be places where the rubber band lifts off and does not touch the blob. Concave is the opposite of convex.

convex (geometry)

A 2-dimensional blob, for example, a region of interest (ROI), where every tangent that can be drawn touches the blob at a continuous stretch of the blob's surface with no gaps.

In simpler words, if a rubber band could be snugly wrapped around a convex blob there would be no places where the rubber band lifts off and is not touching the blob. Convex is the opposite of concave.

convolution (image processing)

An image processing operation that is used to spatially filter an image. A convolution is defined by a kernel that is a small matrix of fixed numbers. The size of the kernel, the numbers within it, and a single normalizer value define the operation that is applied to the image. The kernel is applied to the image by placing the kernel over the image to be convolved and sliding it around to center it over every pixel in the original image.

At each placement the numbers (pixel values) from the original image are multiplied by the kernel number that is currently aligned above it. The sum of all these products is tabulated and divided by the kernel's normalizer. This result is placed into the new image at the position of the kernel's center. The kernel is translated to the next pixel position and the process repeats until all image pixels have been processed.

As an example, a 3x3 kernel holding all `1's with a normalizer of 1/9 performs a neighborhood averaging operation. Each pixel in the new image is the average of its 9 neighbors from the original.

coordinates

A pair of numbers that represent a specific location in a two-dimensional plane, for example, an image or on a map.

See Also:
  • absolute coordinates (imaging)
  • device coordinates (imaging)
  • Cartesian coordinates (imaging)
  • polar coordinates (imaging)
  • relative coordinates
  • screen coordinates (imaging)
  • world coordinates

crop (Imaging)

An image processing method for removing the region near the edge of the image, but keeping the central area.

.DCX (file format extension)

Format originator: Intel

DDB (Windows)

Device Dependent Bitmap. A Window image specification that depends on the capabilities of a specific graphics display controller. Since a DDB is matched to the current graphics controller, it is fast and easy to display since large blocks of memory need only be copied to the controller.

See Also:

DIB (Windows)

decompression (imaging)

When an image or other digital data set is compressed and stored, it is not usable until it is decompressed into it original form.

device coordinates (imaging)

The co-ordinates of the coordinate system that describe the physical units that defines the computer screen.

device dependent (software)

Software written to work on a specific set of hardware platforms. Since these routines make use of physical device attributes, they may behave differently on other devices, although they will most often not work on other devices.

See Also:

device independent (software)

DIB (Windows)

device driver (software)

A set of low-level software routines that work with and control a specific hardware device. The names and functions are often standardized across many similar devices. This allows higher level software to use the hardware as a generic device. This frees the higher-level software from dealing with the particulars of specific devices and allows devices to be interchanged.

device independent (software)

Software or data structures that are designed to work with or on a wide set of hardware platforms. See device-dependent and DIB.

DIB (Windows)

Device Independent Bitmap is a Windows-defined image format specification. It is called device-independent because of its straightforward, common-denominator, format. It has all the information that a basic digital image needs and is laid out in a simple specification. Its simplicity makes it an ideal format for holding images that need to be shared by several programs.

See Also:

DDB (Windows)

dilation (image processing)

See Also:

MPEG (image compression)

dithering (imaging)

The method of using neighborhoods of display pixels to represent one image intensity or color. This method allows low-intensity resolution display devices to simulate higher resolution images. For example, a binary laser printer can use block patterns to display grayscale images. See Halftone.

DLL (Microsoft Windows)

Dynamic Linked Library. A compiled and linked collection of computer functions that are not directly bound to an executable. These libraries are linked at run-time by Windows. Since Windows is in charge of managing (loading, linking, and removing) the DLLs, they are available to all executables currently running. Each executable links to a shared DLL saving memory by avoiding redundant functions from co-existing. DLLs allow a new level of modularity by providing a means to modify and update executables without re-linking. Just copy a new version of the DLL to the correct disk directory.

DPI (printing)

Dots Per Inch. The number of printer dots that can be printed in one inch. The printer's resolution is defined by the number of dots per inch: lower resolution = less dots per inch, higher resolution = more dots per inch.

edge (image processing)

In an image, an edge is a region of contrast or color change. Edges are useful in machine vision since optical edges often mark the boundary of physical objects.

edge detection (image processing)

A method that isolates and locates an optical edge in a digital image.

edge map (image processing)

An edge map is the output of an image-processing filter that transforms an image into an image where intensity represents a change in the contrast (optical edge) of the original image.

(eight) 8 bit image (digital imaging)

An image where each pixel has 8-bits of information. An 8-bit pixel contains one of 256 possible values. There are two common types of 8-bit images: grayscale and indexed color.

In a grayscale image, each pixel takes one of 256 shades of gray and the shades are linearly distributed from 0 (black) to 256 (white). An 8-bit grayscale image does not require a palette but may have one.

An indexed color image is always a palette image. Each pixel is used as an index to the palette. These images can have up to 256 different colors. This includes hues as well as shades. Indexed 8-bit images are good for low color resolution images that do not need processing. They are 3 times smaller than full-color RGB images, but because the pixel values are not linear, many image-processing algorithms cannot work with them. They must be promoted to 24-bit for image processing.

8-bit gray level (AccuSoft term)

This indicates 8-bit grayscale. 8-bit gray level is used to distinguish between 8-bit indexed color (8i) and 8 bit grayscale. An 8-bit gray level DIB image is one where each pixel in the bitmap is unchanged by its palette when displayed. Each palette entry is the same as its index.

8i (AccuSoft term)

This indicates 8-bit indexed color. 8i is used throughout this manual to distinguish between 8-bit grayscale (8-bit gray level) and 8-bit indexed color. An 8-bit indexed color DIB is one where each 8-bit pixel value in the bitmap is used as an index to the palette.

The palette dictates which RGB color the pixel displays. These images are compact ways of storing color images. However they are difficult to process because the bytes that make up the pixel can no longer be ordered with any certainty.

Encoding

The format for storing uncompressed data (binary, ASCII, etc.), how it is packed (e.g. 4-bit pixels may be packed at a rate of two pixels per byte), and the unique set of symbols used to represent the range of data items.

.EPS (file format extension)

Format originator: Adobe Systems, Inc.

1585 Charleston Road

Mountain View, CA 94039

equalize (image processing)

An image-processing algorithm that redistributes the frequency of image pixel values allowing equal representation for any given continuous range of values. In an ideal world, an equalized image has the same number of pixels in the range from 10-20 as it does from 200-210. However, since digital images have quantized intensity values, the range totals are rarely identical but usually close.

erosion (image processing)

See Also:

MPEG (image compression)

file format (software)

A specification for holding computer data in a disk file. The format dictates what information is present in the file and how it is organized.

filter (image processing)

An image-processing filter is a transform that removes a specified quantity from an image. For instance a spatial filter removes high, medium or low spatial frequencies from an image.

(four) 4 bit image (digital imaging)

An image file format that allows 4-bits per pixel. This image can contain up to 16 (24) different colors or levels of gray.

frame (imaging)

A single picture, usually taken from a collection of images for example, a movie or video stream.

frame buffer (imaging hardware)

A computer peripheral that stores and sometimes manipulating digital images.

frame processes (image processing)

Image-processing algorithms that operate on a single image.

fx (imaging)

See Also:

special effects (image processing)

gain & level (imaging)

Gain and level are image-processing terms that correspond to the brightness and contrast control on a television. The gain is the "contrast", and the level is the "brightness." By changing the level, the entire range of pixel values are linearly shifted brighter or darker. Gain on the other hand linearly stretches or shrinks the intensity range, altering the contrast.

gamma correction (imaging)

A non-linear function that is used to correct the inherent non-linearities of cameras and monitors. The intensity of the luminescent phosphor on the raster display is non-linear. Gamma correction is an adjustment to the pixel intensity values that make up for this inherent non-linearity.

geometric transform (image processing)

A class of image processing transforms that alter the location of pixels. This class includes rotates and warps.

.GIF (file format extension)

Name: Graphics Interchange File Format

Format originator: CompuServe Inc.

500 Arlington Center Blvd.

Columbus, OH 43220

This format uses the LZW compression created by Unisys. It is the same as the LZW compression used in the TIFF file format, except that the bytes are reversed and the string table is upside-down.

All GIF files have a palette. Some GIF files can be interlaced - the raster lines can appear as every 4 lines, then every 8 lines, then every other line. This is due to GIF files usually being received from a modem.

GUI

Graphical User Interface. A computer-user interface that uses graphical objects and a mouse for user interaction, for example Microsoft Windows.

graphics library (software)

A collection of software routines that work on digital images. These collections usually contain routines for drawing various graphical objects, for example, lines, circles, and rectangles.

gray level (imaging)

A shade of gray assigned to a pixel. The shades are usually positive integer values taken from the grayscale. In an 8-bit image a gray level can have a value from 0 to 255.

grayscale (imaging)

A range of gray levels. Zero is usually black and higher numbers indicate brighter pixels.

group III Fax (Imaging compression)

A CCITT standard for transmission of facsimile data. It compresses black and white images using a combination of differential, run length and Huffman coding.

halftone (imaging)

The reproduction of a continuous-tone image on a device that does not directly support continuous output. This is done by displaying or printing a pattern of small dots that simulate the desired output color or intensity. These methods are used extensively in magazines and newspapers.

handle (software)

A handle references a data object. A handle is a type of pointer but it usually contains, internally, more information about the referenced object.

histogram (imaging)

A tabulation of pixel value populations displayed as a bar chart where the x-axis represents all the possible pixel values and the y-axis is the total image count of each given pixel value. A histogram counts how many pixels in the image have a given intensity value or range of values.

Each histogram intensity value or range of values is called a bin. Each bin contains a positive number that represents the number of pixels in the image that fall within the bin's range. A typical 8-bit grayscale histogram contains 256 bins. Each bin has a range of a single intensity value. Bin 0 contains the number of pixels in the image that have a grayscale value of 0 or black; bin 255 contains the number of white (255) pixels. When the collection of bins are sorted (0-255) and charted, the graph displays the intensity distributions of all the images pixels.

HLS (color imaging)

Hue Saturation, and Lightness. A method that describes any color as a triplet of real values. The hue represents the color or wavelength of the color. It is sometimes called tone and is commonly known as color. The hue is taken from the standard color wheel and is calibrated in degrees.

Saturation is the depth of the color. It states how gray the color is. It is a real valued parameter from 0.0 to 1.0 with 0.0 indicating full gray and 1.0 representing pure hue.

Lightness determines how black or white a color is. It ranges from 0.0 to 1.0 but with 0.0 representing black and 1.0 white. A lightness of 0.5 is a pure hue.

HSV (color imaging)

Hue, Saturation, and Value.

Huffman coding (image compression)

A method of encoding symbols that varies the length of the code in proportion to its information content. Groups of pixels that appear frequently in a image are coded with fewer bits than those of lower occurrence.

HIS (color imaging)

Intensity, Hue, and Saturation.

image format (image storage)

There are many digital image formats. Some of these are: TIFF, DIB, GIF, and JPEG. The image format specification dictates which image information is present and how it is organized in memory. Many formats support various sub-formats or `flavors'.

image processing

The general term "image processing" refers to a computer discipline wherein digital images are the main data object. This type of processing can be broken down into several sub-categories: compression, image enhancement, image filtering, image distortion, image display and coloring, and image editing.

See Also:

machine vision

indexed color image (imaging)

An image where each pixel value is used as an index to a palette for interpretation before the pixel is displayed. These images contain a palette that is initialized specifically for a given image. The pixel values are usually 8-bit and the palette 24-bit (8-red, 8-green, and 8-blue).

See Also:

(eight) 8 bit image (digital imaging)

invert intensity (image processing)

An image processing operation where each pixel is subtracted from the maximum pixel value allowed. This produces a photographic negative of the original. For an 8-bit image the inverse function is:

invert(pix) = 255-pix;

For an 8-bit RGB image the function is:

invert(Rpix) = 255-Rpix;

invert(Gpix) = 255-Gpix;

invert(Bpix) = 255-Bpix;

`jaggies' (imaging)

A term used to describe the visual appearance of lines and shapes in raster pictures that results from a grid of insufficient spatial resolution.

JPEG JFIF (image compression)

Joint Photographic Experts Group. A collaborative specification of the CCITT and the ISO for image compression. The standard JPEG compression algorithm, which is used by ImageGear, is a lossy compression scheme - it loses data.

See Also:

lossy (image compression)

.JPG (file format extension)

Format originator: Joint Photographics Experts Group

kernel (image processing)

A small matrix of pixels, usually no bigger that 9x9, that is used as an operator during image convolution. The kernel is set prior to the convolution in a fashion that emphasizes a particular feature of the image. Kernels are often used as spatial filters, each one tuned to a specific spatial frequency that the convolution is intended to highlight.

See Also:

convolution (image processing)

Lempel Ziff Welch (data compression)

A dictionary-based image compression method with lossless performance that results in fair compression ratios. Most files are compressed at 2:1.

level (imaging)

See Also:

gain & level (imaging)

library (software)

A collection of software functions that can be called upon by a higher level program. Most libraries are collections of similar routines, for example, those used for graphical or image processing.

See Also:

DLL (Microsoft Windows)

Look-Up-Table (computer hardware)

A look-up-table or LUT is a continuous block of computer memory that computes the values of a function for one variable. The LUT is set up for the function's variable to be used as an address or offset into the memory block. The value that resides at this memory location becomes the function's output. Because the LUT values need only be initialized once, LUTs are very useful for image processing due to their inherent high speed.

LUT[pixel_value] = f(pixel_value)

LUTs come in various widths, usually in units of bits. An nxm bit LUT has 2n addresses or 256 stored values. Each value is 2m bits wide.

If the second dimension is left off it can be assumed to be equal to the first. In grayscale image processing, LUTs are commonly 8x8, and the bit widths are usually assumed.

A linear LUT, sometimes called a NOP LUT or pass through, is a LUT that is initialized to output the same values as the input. NOP_LUT[pixel_value] = pixel_value.

See Also:

palette (digital imaging)

lossless (image compression)

A method of image compression where there is no loss in quality when the image is uncompressed. The uncompressed image is mathematically identical to its original. Lossless compression is usually lower in compression ratio than lossy compression.

lossy (image compression)

A method of image compression where some image quality is sacrificed in exchange for higher compression ratios. The amount of quality degradation depends on the compression algorithm used and by a user-selected quality variable.

LUT (computer)

Look-Up-Table.

See Also:

Look-Up-Table (computer hardware)

LUT transform (image processing)

A LUT transform is an image processing method that takes an image and passes each pixel, one at a time, through a pre-set LUT. Each new pixel is a function of one and only one pixel from the original image and is arranged in the same location.

Any image-processing algorithm that transforms a single pixel into another single pixel, both from the same location, can be performed quickly using a LUT.

Square_root_LUT[pixel_value] = sqrt(pixel_value)

See Look-Up Table

LZW (data compression)

Lempel Ziff Welch.

See Also:

Lempel Ziff Welch (data compression)

machine vision

A sub-discipline of artificial intelligence that uses video cameras or scanners to obtain information about a given environment. Machine vision processes extract information from digital images about objects in the image. This is the opposite of computer graphics that takes various data describing objects in and produces an output image. Machine vision takes an image in and outputs some level of description about the objects in it, (i.e. color, size, brightness).

See Also:

image processing

matrix operation (image processing)

See Also:

neighborhood process (image processing)

median filter (image processing)

An image spatial filtering operation based on an input pixel and its 8 neighbors. The resulting value is the median (5th from the sorted values). A median filter is often used to reduce spike or speckling noise from a grayscale image. It has the advantage over convolution smoothing - it better preserves edges.

morphing (image processing)

An imaging process where one image is gradually transformed into a second image, where both images previously existed. The result is a sequence of in-between images when played sequentially, as in a film loop show, give the appearance of the starting image being transformed to the second image.

Morphing is made up of a collection of image processing algorithms. The two major groups are: warps and blends. Do not confuse this with morphology.

MPEG (image compression)

Motion Pictures Experts Group. An ISO specification for the compression of digital-broadcast quality full-motion video and sound.

neighborhood process (image processing)

A class of image-processing routines that works on neighborhoods of pixels. Each pixel in the new image is computed as a function of the neighborhood of the pixel from the original pixel. The neighborhood ID is defined by a kernel that is set once for each image to be processed.

See Also:

point process (image processing)

(one) 1 bit image (digital imaging)

An image comprised of pixels that contain only a single bit of information. Each pixel is either on or off. Normally, "on" is white and "off" is black.

opening (image processing)

See Also:

MPEG (image compression)

overlay (imaging)

An image or sub-image that can be placed over a given image. The pixels from the original image are not altered but the overlay can be viewed as if they had been. Usually used to place temporary text and annotation marks, for example, arrows on a image.

packed bits (imaging)

A binary image is usually stored in computer memory (8 pixels per byte). In this case each byte is referred to as being filled with packed bits. This saves space but makes reading and writing any individual pixel harder since most computers cannot directly access memory in chunks smaller than a byte.

palette (digital imaging)

A digital image palette is a collection of 3 look-up-tables or "LUTs" that are used to define a given pixel's display color. One LUT is for red, one for green and one for blue. The number of entries in the LUTs depend on the width (in bits) of the image's pixels.

A palette image requires its palette in order to be displayed in a fashion that makes sense to the viewer. This is often the case for color 8-bit images. Without a palette describing what color each pixel needs for display, this type of image would most likely be displayed as randomly selected noise.

A grayscale palette is one where each of the 3 LUTs are linear. The output is whatever is input to them. Since each color component (R, G, B) is an equal value, any pixels input to them are displayed in a varying shade of gray.

See Also:

Look-Up-Table (computer hardware)

pattern recognition (imaging)

A sub-discipline of machine vision where images are searched for specific patterns. Optical character recognition or "OCR" is one type of pattern recognition, where images are searched for the letters of the alphabet.

.PCX (file format extension)

Format originator: ZSoft Corp.

450 Franklin Road Suite 100

Marietta, GA 30067

pixel (imaging)

An abbreviated version of the term PIcture (X) ELement. This is the most fundamental element of a digital image. A digital image is made up of rows and columns of points of light. Each indivisible point of light is a pixel. Each pixel in an image is addressed by its column (x) and its row (y) usually written as the coordinate pair (x, y). An 8-bit pixel can take on one of 256 values. A 24-bit pixel has 3, 8-bit components for each of the primary colors, red, green, and blue.

point process (image processing)

A class of image processing transforms where every pixel is taken, one at a time from an image, and mathematically transformed into a new value with no input from any other pixel in the image. A point process is a degenerative neighborhood process where the kernel is a matrix of pixels that is 1x1 or in other words a single pixel.

polar coordinates (imaging)

An alternative to the usual Cartesian method of addressing image pixels. Polar coordinates use the coordinate pair, angle and radius from an origin instead of column and row.

posterize (imaging)

A special effect that decreases the number of colors or grayscales in an image. The default image pixel contains 256 levels of gray or 256 levels of red, green, and blue. Using this effect reduces these numbers.

pseudocolor (image processing)

A method of assigning color to ranges of a grayscale image's pixel values. Most often used to highlight subtle contrast gradients or for visually quantifying pixel values. The applied color usually has no correspondence to the original scene. The colors are used only as a guide or highlight.

raster (imaging)

A term that describes a single row of a digital image. A raster image is made up of rows of pixels. This is opposed to vector images, where an image is made up of a list of polygon nodes. A raster is sometimes called a scan-line.

relative coordinates

Relative coordinates refer to position, as identified as the distance from a local origin.

render (imaging)

The process of displaying an image. The final and actual displayed image is said to be rendered.

resolution (imaging)

There are two types of resolution in digital images; spatial and intensity. Spatial resolution is the number of pixels per unit of length along the x and y axis. Intensity resolution is the number of quantized levels that a pixel can have.

RGB (imaging)

Red, Green, Blue. A triplet of numeric values that describe a color.

RGBQUAD

Red, Green, Blue, Quad. A set of four numbers used to describe a color. The forth number is always set to zero. This creates an efficient color LUT or palette. It is more efficient because most computers find multiplying by 4 easier then by 3, as is the case in an RGB triplet.

ROI (AccuSoft image processing)

Region Of Interest. A region of interest or ROI is a specification and date structure that allows for the definition of arbitrarily shaped regions within a given image, often called sub-images. A ROI can be thought of as a place holder which remembers a location within an image. ROIs are of several types, each defined in a manor that makes sense for its type.

ROIs are either a rectangle (also called an AOI), square, circle, or a segment list. A rectangle is defined by any two points in the image. From these two points one and only one rectangle can be drawn. A square is defined by a single point and a single length. A circle is defined by its center and radius. A segment list is an arbitrary list of triplets (x, y, xlen); a single point and a length to the right.

Every point in an image is either inside or outside of a given ROI.

Most image processing functions in this package work only within a given ROI. The ROI can encompass the entire image.

See Also:

AOI (Image Processing)

scan line (imaging)

See Also:

raster (imaging)

screen coordinates (imaging)

Screen coordinates are those of the actual graphics display controller. The origin is almost always at the upper left-hand corner of the display.

See Also:

coordinates

segment (imaging)

A contiguous section of a raster line. It is defined in physical coordinates by the triplet of its left most point and length (x, y, length).

shear (image processing)

A skew is image distortion that often occurs when a scanner is sampling an image and the image slides to either side before the scan is complete. This has the effect of transforming squares into rhombuses.

special effects (image processing)

Any image processing transform that is applied mostly for its artistic value. Special effects include, wipes, transitions, barn doors, etc.

stretch intensity (image processing)

An image processing method that takes a given image and assures that the intensity distribution fills the entire range of possible values. An 8-bit image that is stretched always has at least one pixel with a value of zero and one of 255. The term comes from the before and after histogram of the given image. A stretch operation linearly stretches a histogram so that is ranges from the minimum pixel value to the maximum pixel value.

.TGA (file format extension)

Format originator:Truevision, Inc.

7340 Shadeland Station

Indianapolis, IN 46255

TIFF (file format)

Tagged Image File Format.

.TIF (file format extension)

Format originator: Aldus Corp

411 First Ave South

Seattle, WA 98104, and

Microsoft Corp

16011 NE 36th Way

Redmond, WA 98073

thumbnail (imaging)

A small copy of an image. Thumbnails are used to display many images on the screen at once.

transform (image processing)

An algorithm that takes an image, alters it, and outputs a new image. Sometimes written as `xform'.

See Also:
  • point process (image processing)
  • neighborhood process (image processing)
  • geometric transform (image processing)

triplet (digital imaging)

Three numbers used together to represent a single quantity or location, for example, RGB or (x, y, z).

(twenty-four) 24 bit image (digital imaging)

A 24-bit image contains pixels made from RGB triplets.

video stream (video)

A sequence of still images that are transmitted and displayed in synchronous order that give the appearance of live motion.

warp (image processing)

A geometric image processing routine that distorts an image by spatially compressing and stretching regions.

.WMF (file format extension)

Format originator: Microsoft Corp

16011 NE 36th Way

Redmond, WA 98073

world coordinates

The real valued coordinates that make sense for the object, treating it as if it really exists. The world coordinates of a house on a map would be in miles or longitude and latitude. This is the opposite of screen, device or model coordinates.

.WPG (file format extension)

Format originator: WordPerfect Corp

(x, y)

A mathematical method for referring to a pixel from a digital image. Since most digital images are maintained as a Cartesian matrix of pixels, each pixel has a unique address that can be described as an x or horizontal displacement from the origin and a y or vertical displacement from the origin.

See Also:

coordinates

xform

Shorthand for transform.

YIQ (color imaging)

(Y) luminance, (I), (Q). YIQ is the color model used for U.S. commercial television. It was designed to be backwards compatible with the old black and white television sets. "Y" or luminance is a weighted average of the red, green, and blue that gives more weight to red and green than to blue. The I and Q contain the color components. Together they are called chromoticity.

(Z)

A mathematical method that refers to a pixel's intensity from a digital image. An image can be written as: I(x,y)=z


Bibliography

Books

Brown, Wayne C., and Barry J. Shepherd. Graphics File Formats Reference and Guide. Greenwich, CT: Manning Publications, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. Windcrest Books, 1992.

Kay, David C. and John R. Levine. Graphics File Formats. 2d ed. Windcrest/McGraw-Hill, 1995.

Murray, James D., and William vanRyper. Encyclopedia of Graphics File Formats. Sebastapol, CA: O'Reilly & Associates, Inc., 1994.

Murray, James D. and William vanRyper. Encyclopedia of Graphics File Formats, 2d ed. Sebastopol, CA: O'Reilly & Associates, Inc., 1996.

Petzold, Charles. Programming Windows: The Microsoft Guide to Writing Applications for Windows 3. Redmond, WA: Microsoft Press, 1990.

Articles

Wegner, Tim. "Coding for PNG Graphics", PC Techniques (Feb/Mar 1996): 32-38.

Other

"Graphic Image Format FAQ 3-4." James D. Murray, 1994-1996.

PBM, PGM, PPM, PNM Specifications by Jef Poskanzer, copyright " 1989, 1991.

PNG (Portable Network Graphics), tenth draft. Page 5, copyright Thomas Boutell, May 1995.


Volume 2: API Reference

This part of ImageGear User's Manual provides you with the detailed information about each function or control parameter of all ImageGear Components. This information includes function's calling sequence, arguments, use, possible return values, and supported bit depths as well as other useful information.

Currently there are the following components API reference:

  • ImageGear ARTX Component API Reference
  • ImageGear ART Component API Reference
  • ImageGear Core Component API Reference
  • ImageGear Dialogs Component API Reference
  • ImageGear Display Component API Reference
  • ImageGear Effects Component API Reference
  • ImageGear Formats Component API Reference
  • ImageGear FreqIP Component API Reference
  • ImageGear GUI Component API Reference
  • ImageGear ImageClean Component API Reference
  • ImageGear ISIS Component API Reference
  • ImageGear JPEG2000 Component API Reference
  • ImageGear MD Component API Reference
  • ImageGear PDF Component API Reference
  • ImageGear Processing Component API Reference
  • ImageGear Recognition Component API Reference
  • ImageGear TWAIN Component API Reference
  • ImageGear Vector Component API Reference
  • ImageGear View Component API Reference


ImageGear ARTX Component API Reference

ImageGear ARTX Component API Reference

ImageGear ARTX component provides access to IG ArtX API and contains objects used for creating, loading, saving and processing ART annotations and their groups.

NOTE: You can only attach one ART component. ARTX cannot be attached when ART is already attached.

ImageGear ARTX component exposes the following objects:

IGArtXAction
This object is an action handle.
IGArtXActionEditParams
Parameters that ActionBeginEdit method returns.
IGArtXArrow
Legacy ART Arrow mark.
IGArtXArrowHead
Arrow head parameters for Line, Polyline Marks.
IGArtXAspectRatio
Specifies mark's aspect ratio attributes.
IGArtXAudio
ART Audio mark.
IGArtXBorder
ART mark border handle.
IGArtXButton
ART Button mark.
IGArtXCallout
Callout parameters for Text Mark.
IGArtXCtl
This control provides general ImageGear ArtX methods (including ArtX class factory) and events.
IGArtXDrawParams
This object is the handle of ART draw parameters.
IGArtXEllipse
ART Ellipse mark.
IGArtXEncryption
ART Encryption mark.
IGArtXFilledEllipse
Legacy ART Filled Ellipse mark.
IGArtXFilledPolygon
Legacy ART Filled Polygon mark.
IGArtXFilledRectangle
Legacy ART Filled Rectangle mark.
IGArtXFont
Specifies mark's font attributes.
IGArtXFreeLine
Legacy ART Freehand line mark.
IGArtXGroup
Collection of ART marks united into a group.
IGArtXGUICtl
General ArtX GUI control.
IGArtXHighlighter
Legacy ART Highlighter mark.
IGArtXHitTestParams
Parameters that HitTest method returns.
IGArtXHollowEllipse
Legacy ART Hollow Ellipse mark.
IGArtXHollowPolygon
Legacy ART Hollow Polygon mark.
IGArtXHollowRectangle
Legacy ART Hollow Rectangle mark.
IGArtXHotSpot
ART Hot Spot mark.
IGArtXImage
ART Image mark.
IGArtXImageEmb
Legacy ART Embedded Image mark.
IGArtXImageRef
Legacy ART Image Reference mark.
IGArtXLine
ART Line mark.
IGArtXLink
ArtX link objects associated with the HotSpot mark.
IGArtXMark
Provides general properties and methods for all mark types.
IGArtXMarkArray
Container class that represens an array of the marks.
IGArtXNote
Provides methods and properties for Legacy ART Attach-A-Note mark.
IGArtXPage
Collection of ART groups. This class provides methods and properties for accessing to individual marks on the page, as well as to the group of marks.
IGArtXPin
Specifies text mark's pin icon.
IGArtXPolygon
ART Polygon mark.
IGArtXPolyline
ART Polyline mark.
IGArtXProtractor
ART Protractor mark.
IGArtXRectangle
ART Rectangle mark.
IGArtXRedaction
Legacy ART Redaction mark.
IGArtXRichText
ART Rich Text mark.
IGArtXRuler
ART Ruler mark.
IGArtXText
ART Text mark.
IGArtXTextFromFile
Legacy ART "Text From File" mark.
IGArtXTextNote
Legacy ART Text Note mark.
IGArtXTextPinUp
Legacy ART Pin-Up-Text mark.
IGArtXTextStamp
Legacy ART "Text Stamp" mark.
IGArtXTextTyped
Legacy ART "Typed Text" mark.

Most of these ARTX component API is presented in ArtXGUI sample program.

See Also:

ArtX Enumerations

Using ImageGear ARTX Component


IGArtXAction

Group: Object

Description:

This object is an action handle.

Interface:

IIGArtXAction

Class Members:

Type
property
Retrieves the type of action.
Draw
method
This method performs drawing of GUI action.
End
method
Ends specified GUI action.
MouseDown
method
Passes mouse events to GUI action.
MouseMove
method
Passes mouse events to GUI action. It should be called when user moves mouse pointer.
MouseUp
method
Passes mouse events to GUI action. It should be called when user releases mouse button.


Draw

Group: Method

Description:

This method performs drawing of GUI action.

Declaration:

Draw(pIDrawParams As IGArtXDrawParams)

Parameters:

pIDrawParams
Parameters necessary for drawing, such as window and device context handles. See IGArtXDrawParams object description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


End

Group: Method

Description:

This method ends specified GUI action. It commits all data modification stored in action object (creates new annotation or change selection state) and destroys action object.

Declaration:

End() As IGArtXMark

Return value:

Newly created/resized mark, if it was created/resized, or NULL otherwise.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseDown

Group: Method

Description:

This method passes mouse events to GUI action. It should be called when user does mouse button click.

Declaration:

MouseDown(nMessage As Long, pIPoint As IGPoint) As Long

Parameters:

nMessage
Mouse event parameters.
pIPoint
Screen position of mouse event.

Return value:

Action state.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseMove

Group: Method

Description:

This method passes mouse events to GUI action. It should be called when user moves mouse pointer.

Declaration:

MouseMove(nMessage As Long, pIPoint As IGPoint) As Long

Parameters:

nMessage
Mouse event parameters.
pIPoint
Screen position of mouse event.

Return value:

Action state.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseUp

Group: Method

Description:

This method passes mouse events to GUI action. It should be called when user releases mouse button.

Declaration:

MouseUp(nMessage As Long, pIPoint As IGPoint) As Long

Parameters:

nMessage
Mouse event parameters.
pIPoint
Screen position of mouse event.

Return value:

Action state.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Type

Group: Property

Description:

This property retrieves the type of action.

Property Summary:

Data Type:
enumIGArtXGUIActionType
Default Value:
Access:
Read only
Settings:
any value of enumIGArtXGUIActionType


IGArtXActionEditParams

Group: Object

Description:

Parameters that ActionBeginEdit method returns.

Interface:

IIGArtXActionEditParams

Class Members:

Action
property
Newly created edit action.
EditWindow
property
Handle to rich edit control used to edit an annotation.


Action

Group: Property

Description:

Newly created edit action.

Property Summary:

Data Type:
IGArtXAction
Default Value:
Access:
Read only
Settings:
IGArtXAction handle


EditWindow

Group: Property

Description:

Handle to rich edit control used to edit an annotation.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
handle to edit control


IGArtXArrow

Group: Object

Description:

Legacy ART Arrow mark.

Interface:

IIGArtXArrow extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets opacity level. Semi-transparent if True, opaque if False.
GetBorder
method
Returns the annotation border style, thickness and color; see IGArtXBorder description for more information.
GetEndPoint
method
Returns the end head coordinates.
GetHead
method
Returns the arrow style, length and angle. See IGArtXArrowHead description for more information.
GetStartPoint
method
Returns the start head coordinates.
SetBorder
method
Sets the border style, thickness and color.
SetEndPoint
method
Sets the end head coordinates.
SetHead
method
Sets the head style, length and angle.
SetStartPoint
method
Sets the start head coordinates.


GetBorder

Group: Method

Description:

This method returns the annotation border style, thickness and color. See IGArtXBorder description for more information.

Declaration:

GetBorder() As IGArtXBorder

Return value:

IGArtXBorder object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetEndPoint

Group: Method

Description:

This method returns the end head coordinates. By default it is (0, 0).

Declaration:

GetEndPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetHead

Group: Method

Description:

This method returns the arrow style, length and angle. See IGArtXArrowHead description for more information. By default it is NULL.

Declaration:

GetHead() As IGArtXArrowHead

Return value:

IGArtXArrowHead object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetStartPoint

Group: Method

Description:

This method returns the start head coordinates. By default it is (0, 0).

Declaration:

GetStartPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Highlight

Group: Property

Description:

This property gets/sets opacity level. Semi-transparent if True, opaque if False.

Property Summary:

Data Type:
Long
Default Value:
False
Access:
Read/Write
Settings:
True, False


SetBorder

Group: Method

Description:

This method sets the border style, thickness and color.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
Contains new border parameters that are to be set in the annotation. See IGArtXBorder description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetEndPoint

Group: Method

Description:

This method sets the end head coordinates.

Declaration:

Sub SetEndPoint(newVal As IGPoint)

Parameters:

newVal
Contains new end head coordinates that are to be set in annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetHead

Group: Method

Description:

This method Sets the head style, length and angle.

Declaration:

Sub SetHead(newVal As IGArtXArrowHead)

Parameters:

newVal
Contains new arrow head parameters that are to be set in the annotation. See IGArtXArrowHead description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetStartPoint

Group: Method

Description:

This method sets the start head coordinates.

Declaration:

Sub SetStartPoint(newVal As IGPoint)

Parameters:

newVal
Contains new start head coordinates that are to be set in annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXArrowHead

Group: Object

Description:

Arrow head parameters for Line, Polyline marks.

Interface:

IIGArtXArrowHead

Class Members:

Angle
property
Arrow head angle.
Length
property
Arrow head length.
Style
property
Arrow head style


Angle

Group: Property

Description:

This property gets/sets an arrow head angle.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 180.


Length

Group: Property

Description:

This property gets/sets an larrow head length.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


Style

Group: Property

Description:

This property gets/sets a arrow head style.

Property Summary:

Data Type:
enumIGArtXArrowStyle
Default Value:
IG_ARTX_ARROW_POINTER
Access:
Read/Write
Settings:
any value of enumIGArtXArrowStyle


IGArtXAspectRatio

Group: Object

Description:

Specifies mark's aspect ratio attributes.

Interface:

IIGArtXAspectRatio

Class Members:

AspectDenominatorX
property
Gets/sets x aspect denominator.
AspectDenominatorY
property
Gets/sets y aspect denominator.
AspectNumeratorX
property
Gets/sets x aspect numerator.
AspectNumeratorY
property
Gets/sets y aspect numerator.


AspectDenominatorX

Group: Property

Description:

This property gets/sets x aspect denominator.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


AspectDenominatorY

Group: Property

Description:

This property gets/sets y aspect denominator.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


AspectNumeratorX

Group: Property

Description:

This property gets/sets x aspect numerator.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


AspectNumeratorY

Group: Property

Description:

This property gets/sets y aspect numerator.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


IGArtXAudio

Group: Object

Description:

ART Audio mark handle. Note that only WAVE audio format is supported.

Interface:

IIGArtXAudio extends IIGArtXMark

Class Members:

FileName
property
Audio file name for the annotation.
Play
method
Plays an audio sound.
SetBounds
method
Sets bounds of the annotation.


FileName

Group: Property

Description:

This property gets/sets the audio file name linked to the annotation.

Property Summary:

Data Type:
String
Default Value:
" "
Access:
Read/Write
Settings:
any string


Play

Group: Method

Description:

This method plays audio sound.

Declaration:

Sub Play(bPlay As Boolean)

Parameters:

bPlay
TRUE - starts playing, FALSE - stops playing

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBounds

Group: Method

Description:

This method sets bounds of the annotation.

Declaration:

Sub SetBounds(newVal As IGRectangle)

Parameters:

newVal
Contains new position and dimensions of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXBorder

Group: Object

Description:

This object is ART mark border handle.

Interface:

IIGArtXBorder

Class Members:

Style
property
Gets/sets a line style.
Width
property
Gets/sets a line width
GetColor
method
Returns IGPixel object that contains a boder color
SetColor
method
Sets a border color.


GetColor

Group: Method

Description:

This method returns IGPixel object that contains a border color.

Declaration:

GetColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetColor

Group: Method

Description:

This method sets a border color.

Declaration:

SetColor(newVal As IGPixel)

Parameters:

newVal
IGPixel object containing new color value.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Style

Group: Property

Description:

This property gets/sets a line style.

Property Summary:

Data Type:
enumIGArtXPenStyle
Default Value:
IG_ARTX_PEN_SOLID
Access:
Read/Write
Settings:
any value of enumIGArtXPenStyle


Width

Group: Property

Description:

This property gets/sets a line width.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


IGArtXButton

Group: Object

Description:

ART Button mark object.

Interface:

IIGArtXButton extends IIGArtXMark

Class Members:

Opacity
property
Sets/Returns opacity level.
State
property
Sets/Returns the button state.
Text
property
Sets/Returns the button text.
GetFillColor
method
Returns the fill color of the annotation.
GetFont
method
Returns the annotation font style, size and face name.
GetTextColor
method
Returns the textl color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets the fill color of the annotation.
SetFont
method
Sets the annotation font style, size and face name.
SetTextColor
method
Sets the text color of the annotation.


GetFillColor

Group: Method

Description:

This method returns the fill color of the annotation.

Declaration:

GetFillColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetFont

Group: Method

Description:

This method returns the annotation font style, size and face name. See IGArtXFont description for more information.

Declaration:

GetFont() As IGArtXFont

Return value:

IGArtXFont object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetTextColor

Group: Method

Description:

This method returns the text color of the annotation.

Declaration:

GetTextColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Opacity

Group: Property

Description:

This property gets/sets the opacity level of the mark.

Property Summary:

Data Type:
Long
Default Value:
127
Access:
Read/Write
Settings:
any positive value


SetFillColor

Group: Method

Description:

This method sets the fill color of the annotation.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains new color value for the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetFont

Group: Method

Description:

This method sets the annotation font style, size and face name.

Declaration:

Sub SetFont(newVal As IGArtXFont)

Parameters:

newVal
Contains new font parameters that are to be set in annotation. See IGArtXFont description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetTextColor

Group: Method

Description:

This method sets the text color of the annotation.

Declaration:

Sub SetTextColor(newVal As IGPixel)

Parameters:

newVal
Contains new color value for the text.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


State

Group: Property

Description:

This property gets/sets a Button state.

Property Summary:

Data Type:
enumIGArtXButtonState
Default Value:
IG_ARTX_BUTTON_NORMAL
Access:
Read/Write
Settings:
IG_ARTX_BUTTON_NORMAL, IG_ARTX_BUTTON_PRESSED


Text

Group: Property

Description:

This property gets/sets a Button text.

Property Summary:

Data Type:
String
Default Value:
"Text"
Access:
Read/Write
Settings:
any string


IGArtXCallout

Group: Object

Description:

This object represents callout parameters for the Text Mark.

Interface:

IIGArtXCallout

Class Members:

Type
property
Gets/Sets callout type.
GetBorder
method
Returns IGArtXBorder object containing callout line properties.
GetPoint
method
Returns IGPoint object with coordinates of the callout point.
SetBorder
method
Sets callout line properties, such as line width, line style, color.
SetPoint
method
Sets coordinates of the callout point.


GetBorder

Group: Method

Description:

This method returns IGArtXBorder object containing callout line properties.

Declaration:

GetBorder() As IGArtXBorder

Return value:

New instance of IGArtXBorder.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPoint

Group: Method

Description:

This method returns IGPoint object with coordinates of the callout point.

Declaration:

GetPoint() As IGPoint

Return value:

New instance of IGPoint.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBorder

Group: Method

Description:

This method sets callout line properties, such as line width, line style, color, through IGArtXBorder object.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
IGArtXBorder object that contains line width, line style, and color properties of the callout line.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoint

Group: Method

Description:

This method sets the coordinates of the callout point.

Declaration:

Sub SetPoint(newVal As IGPoint)

Parameters:

newVal
Callout point coordinates.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Type

Group: Property

Description:

This property gets/sets a callout type.

Property Summary:

Data Type:
enumIGArtXCalloutType
Default Value:
IG_ARTX_CALLOUT_LINE
Access:
Read/Write
Settings:
any value of enumIGArtXCalloutType


IGArtXCtl

Group: Object

Description:

This object represents IGArtXCtl control that you place in the user interface of your application, which provides general ImageGear ArtX methods (including ArtX class factory) and events.

Interface:

IIGArtXCtl extends IIGComponent

Class Members:

CreateArrow
method
Creates Arrow annotation.
CreateAudio
method
Creates Audio annotation.
CreateButton
method
Creates Button annotation.
CreateEllipse
method
Creates an Ellipse annotation with specified properties.
CreateFilledEllipse
method
Creates Filled Ellipse annotation.
CreateFilledPolygon
method
Creates Filled Polygon annotation.
CreateFilledRectangle
method
Creates Filled Rectangle annotation.
CreateFreeline
method
Creates Free Line annotation.
CreateHighlighter
method
Creates Highlighter annotation.
CreateHollowEllipse
method
Creates Hollow Ellipse.
CreateHollowPolygon
method
Creates Hollow Polygon.
CreateHollowRectangle
method
Creates Hollow Rectangle.
CreateHotSpot
method
Creates Hot Spot annotation.
CreateImage
method
Creates Image annotation.
CreateImageEmb
method
Creates Image Embedded annotation.
CreateImageRef
method
Creates Image Reference annotation.
CreateLine
method
Creates Line annotation.
CreateLink
method
Creates new link object.
CreateMark
method
Creates an annotation of specified type with default properties.
CreateObject
method
Creates auxillary objects that are used with ArtX, such as IGArtXBorder, IGArtXDrawParams, etc.
CreatePage
method
Creates an empty ArtX page.
CreatePolygon
method
Creates Polygon annotation.
CreatePolyline
method
Creates Polyline annotation.
CreateProtractor
method
Creates Protractor annotation.
CreateRectangle
method
Creates Rectangle annotation.
CreateRedaction
method
Creates Redaction annotation.
CreateRuler
method
Creates Ruler annotation.
CreateText
method
Creates Text annotation.
CreateTextFromFile
method
Creates Text From File annotation.
CreateTextNote
method
Creates Attach-A-Note annotation.
CreateTextPinUp
method
Creates Pin Up Text annotation.
CreateTextStamp
method
Creates Text Stamp annotation.
CreateTextTyped
method
Creates Typed Text annotation.


CreateArrow

Group: Method

Description:

This method creates Arrow annotation with specified properties.

Declaration:

CreateArrow(
StartPoint As IGPoint,
EndPoint As IGPoint,
Border As IGArtXBorder,
Highlight As Boolean,
Head As IGArtXArrowHead) As IGArtXArrow

Parameters:

StartPoint
Coordinates of the start point.
EndPoint
Coordinates of the end point.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque.
Head
Contains arrow head properties. See IGArtXArrowHead for more information.

Return value:

New instance of IGArtXArrow.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateAudio

Group: Method

Description:

This method creates Audio annotation with specified properties. Note that only WAVE audio format is supported.

Declaration:

CreateAudio(
Rect As IGRectangle,
FileName As String) As IGArtXAudio

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
FileName
Audio file name for the annotation.

Return value:

New instance of IGArtXAudio.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateButton

Group: Method

Description:

This method creates Button annotation with specified properties.

Declaration:

CreateButton(
Rect As IGRectangle,
Text As String,
TextColor As IGPixel,
FillColor As IGPixel,
Opacity As Long,
Font As IGArtXFont) As IGArtXButton

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Text
String that is to be draw on the button.
TextColor
Pixel object that contains a color for the button text.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.
Opacity
Opacity value for the annotation.
Font
Contains font properties for new annotation; See IGArtXFont for more information.

Return value:

New instance of IGArtXButton.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateEllipse

Group: Method

Description:

This method creates an Ellipse annotation with specified properties.

Declaration:

CreateEllipse(Rect As IGRectangle, FillColor As IGPixel, Border
As IGArtXBorder, Opacity As Long) As IGArtXEllipse

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the rectangle to be created.
FillColor
Pixel object that contains color that entire area of the rectangle will be filled with.
Border
Contains properties for the border of the rectangle, such as line style, line width, color. See IGArtXBorder for more information.
Opacity
Mark's opacity.

Return value:

New instance of IGArtXEllipse.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateFilledEllipse

Group: Method

Description:

This method creates Filled Ellipse annotation with specified properties.

Declaration:

CreateFilledEllipse(
Rect As IGRectangle,
FillColor As IGPixel,
Highlight As Boolean) As IGArtXFilledEllipse

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the rectangle to be created.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque..

Return value:

New instance of IGArtXFilledEllipse.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateFilledPolygon

Group: Method

Description:

This method creates Filled Polygon annotation with specified properties.

Declaration:

CreateFilledPolygon(
Points As IGPointArray,
Highlight As Boolean,
FillColor As IGPixel) As IGArtXFilledPolygon

Parameters:

Points
IGPointArray Polygon object that contains coordinates and dimensions for the polygon to be created.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque..
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.

Return value:

New instance of IGArtXFilledPolygon.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateFilledRectangle

Group: Method

Description:

This method creates Filled Rectangle annotation with specified properties.

Declaration:

CreateFilledRectangle(
Rect As IGRectangle,
FillColor As IGPixel,
Highlight As Boolean) As IGArtXFilledRectangleFunction

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque.

Return value:

New instance of IGArtXFilledRectangle.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateFreeline

Group: Method

Description:

This method creates Freeline annotation with specified properties.

Declaration:

CreateFreeline(
Points As IGPointArray,
Border As IGArtXBorder,
Highlight As Boolean) As IGArtXFreeline

Parameters:

Points
Contains coordinates for all points in polygon.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque.

Return value:

New instance of IGArtXFreeLine.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateHighlighter

Group: Method

Description:

This method creates Highlighter annotation with specified properties.

Declaration:

CreateHighlighter(
Rect As IGRectangle,
FillColor As IGPixel) As IGArtXHighlighter

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.

Return value:

New instance of IGArtXHighlighter.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateHollowEllipse

Group: Method

Description:

This method creates Hollow Ellipse annotation with specified properties.

Declaration:

CreateHollowEllipse(
Rect As IGRectangle,
Border As IGArtXBorder,
Highlight As Boolean) As IGArtXHollowEllipse

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque.

Return value:

New instance of IGArtXHollowEllipse.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateHollowPolygon

Group: Method

Description:

This method creates Hollow Polygon annotation with specified properties.

Declaration:

CreateHollowPolygon(
Points As IGPointArray,
Border As IGArtXBorder,
Highlight As Boolean) As IGArtXHollowPolygon

Parameters:

Points
Contains coordinates for all points in polygon.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque.

Return value:

New instance of IGArtXHollowPolygon.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateHollowRectangle

Group: Method

Description:

This method creates Hollow Rectangle annotation with specified properties.

Declaration:

CreateHollowRectangle(
Rect As IGRectangle,
Border As IGArtXBorder,
Highlight As Boolean) As IGArtXHollowRectangle

Parameters:

Rect
Contains coordinates for all points in polygon.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Highlight
Highlight state; if true, annotation will be semi-transparent; otherwise opaque.

Return value:

New instance of IGArtXHollowRectangle.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateHotSpot

Group: Method

Description:

This method creates HotSpot annotation with specified properties.

Declaration:

CreateHotSpot(Rect As IGRectangle, FillColor As IGPixel, Opacity
As Long) As IGArtXHotSpot

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the rectangle to be created.
FillColor
Pixel object that contains color that entire area of the rectangle will be filled with.
Opacity
Mark's opacity.

Return value:

New instance of IGArtXHotSpot.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateImage

Group: Method

Description:

This method creates an image annotation either from a reference file name or an IGPage containing the image. If both are given, the filename takes precedence over the IGPage.

Declaration:

CreateImage(
Rect As IGRectangle,
FileName As String,
Page As IGPage) As IGArtXImage

Parameters:

Rect
IGRectangle rectangle object that contains coordinates and dimensions for the annotation to be created.
FileName
String containing the full path to the image file.
Page
IGPage (which should be linked to the IGPage documentation) object containing the embedded image.

Return value:

New instance of IGArtXImage.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateImageEmb

Group: Method

Description:

This method creates Image Embedded annotation with specified properties.

Declaration:

CreateImageEmb(
Rect As IGRectangle,
Page As IGPage) As IGArtXImageEmb

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Page
IGPage object containing the embedded image.

Return value:

New instance of IGArtXImageEmb.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateImageRef

Group: Method

Description:

This method creates Image Reference annotation with specified properties.

Declaration:

CreateImageRef(
Rect As IGRectangle,
FileName As String) As IGArtXImageRef

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
FileName
String containing the full path to the image file.

Return value:

New instance of IGArtXImageRef.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateLine

Group: Method

Description:

This method creates Line annotation with specified properties.

Declaration:

CreateLine(
StartPoint As IGPoint,
EndPoint As IGPoint,
Border As IGArtXBorder,
Opacity As Long,
HeadFillColor As IGPixel,
StartHead As IGArtXArrowHead,
EndHead As IGArtXArrowHead) As IGArtXLine

Parameters:

StartPoint
Coordinates of the start point.
EndPoint
Coordinates of the end point.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Opacity
Opacity value for the annotation.
HeadFillColor
Pixel object that contains color that entire area of the arrow heads will be filled with.
StartHead
Contains start arrow head properties. See IGArtXArrowHead for more information.
EndHead
Contains end arrow head properties. See IGArtXArrowHead for more information.

Return value:

New instance of IGArtXLine.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateLink

Group: Method

Description:

This method creates new link object.

NOTE: Currently this functionality is only used with PDFs, and therefore also requires the PDF component to be attached.

Declaration:

CreateLink(
DataPointer As Long,
HighlightMode As enumIGArtXHighlightModes) As IGArtXLink

Parameters:

DataPointer
Link data. Provide IGPDFAction.Pointer if you want to associate a PDF action with the link.
HighlightMode
enumIGArtXHighlightModes link highlight mode that can be used by GUI to highlight the hotspot area.

Return value:

New instance of IGArtXLink.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateMark

Group: Method

Description:

This method creates an annotation of specified type with default properties.

Declaration:

CreateMark(MarkType As enumIGArtXMarkType) As IIGArtXMark

Parameters:

MarkType
type of mark to be created. See enumIGArtXMarkType for more information.

Return value:

New instance of IIGArtXMark.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateObject

Group: Method

Description:

This method creates auxillary objects that are used with ArtX, such as IGArtXBorder, IGArtXDrawParams, etc.

Declaration:

CreateObject(Type As enumIGArtXObjType) As IIGObject

Parameters:

Type
Type of the object to be created.

Return value:

New instance of IIGObject.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreatePage

Group: Method

Description:

This method creates an empty ArtX page.

Declaration:

CreatePage() As IGArtXPage

Return value:

New instance of IGArtXPage.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreatePolygon

Group: Method

Description:

This method creates Polygon annotation with specified properties.

Declaration:

CreatePolygon(
Points As IGPointArray,
Border As IGArtXBorder,
Opacity As Long,
FillColor As IGPixel) As IGArtXPolygon

Parameters:

Points
Contains coordinates for all points in polygon.
Border
Contains properties for the border of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Opacity
Opacity value for the annotationopacity value for the annotation.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.

Return value:

New instance of IGArtXPolygon.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreatePolyline

Group: Method

Description:

This method creates Polyline annotation with specified properties.

Declaration:

CreatePolyline(
Points As IGPointArray,
Border As IGArtXBorder,
Opacity As Long,
HeadFillColor As IGPixel,
StartHead As IGArtXArrowHead,
EndHead As IGArtXArrowHead) As IGArtXPolyline

Parameters:

Points
Contains coordinates for all points in polygon.
Border
Contains properties for the border of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Opacity
Opacity value for the annotationopacity value for the annotation.
HeadFillColor
Pixel object that contains color that entire area of the arrow heads will be filled with.
StartHead
Contains start arrow head properties. See IGArtXArrowHead for more information.
EndHead
Contains end arrow head properties. See IGArtXArrowHead for more information.

Return value:

New instance of IGArtXPolyline.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateProtractor

Group: Method

Description:

This method creates Protractor annotation with specified properties.

Declaration:

CreateProtractor(
StartPoint As IGPoint,
HeadPoint As IGPoint,
EndPoint As IGPoint,
Border As IGArtXBorder,
Opacity As Long,
AspectRatio As IGArtXAspectRatio,
ArcRadius As Long,
Precision As Long) As IGArtXProtractor

Parameters:

StartPoint
Coordinates of the start point.
HeadPoint
Coordinates of the head point.
EndPoint
Coordinates of the end point.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Opacity
Opacity value for the annotation.
AspectRatio
IGArtXAspectRatio object containing aspect ratio properties; see IGArtXAspectRatio for more information.
ArcRadius
Arc radius value for the annotation Arc radius value for the annotation.
Precision
Number of digit after a decimal point to display.

Return value:

New instance of IGArtXProtractor.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateRectangle

Group: Method

Description:

This method creates Rectangle annotation with specified properties.

Declaration:

CreateRectangle(
Rect As IGRectangle,
FillColor As IGPixel,
Border As IGArtXBorder,
Opacity As Long) As IGArtXRectangle

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.
Border
Contains properties for the border of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Opacity
Opacity value for the annotation.

Return value:

New instance of IGArtXRectangle.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateRedaction

Group: Method

Description:

This method creates Redaction annotation with specified properties.

Declaration:

CreateRedaction(
Rect As IGRectangle,
FillColor As IGPixel) As IGArtXRedaction

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.

Return value:

New instance of IGArtXRedaction.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateRuler

Group: Method

Description:

This method creates Ruler annotation with specified properties.

Declaration:

CreateRuler(
StartPoint As IGPoint,
EndPoint As IGPoint,
Border As IGArtXBorder,
Opacity As Long,
AspectRatio As IGArtXAspectRatio,
StartlineLength As Long,
EndlineLength As Long,
Precision As Long,
Label As String) As IGArtXRuler

Parameters:

StartPoint
Coordinates of the start point.
EndPoint
Coordinates of the end point.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
Opacity
Opacity value for the annotation.
AspectRatio
IGArtXAspectRatio object containing aspect ratio properties; see IGArtXAspectRatio for more information.
StartlineLength
Length of the start line of the ruler.
EndlineLength
Length of the end line of the ruler.
Precision
Number of digit after a decimal point to display.
Label
Label string.

Return value:

New instance of IGArtXRuler.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateText

Group: Method

Description:

This method creates auxillary objects that are used with ArtX, such as IGArtXText.

Declaration:

CreateText(
pRect As IGRectangle,
Text As String,
TextColor As IGPixel,
TextType As enumIGArtXTextType,
FillColor As IGPixel,
Border As IGArtXBorder,
BorderShading As Boolean,
Opacity As Long,
Font As IGArtXFont,
Pin As IGArtXPin,
Callout As IGArtXCallout) As IGArtXText

Parameters:

pRect
IGRectangle rectangle object that contains coordinates and dimensions for the annotation to be created.
Text
String that is to be drawn on the annotation.
TextColor
IGPixel pixel object that contains a color for the text.
TextType
Type of the text. An enumIGArtXTextType value.
FillColor
IGPixel pixel object that contains color that entire area of the annotation will be filled with.
Border
Contains line properties of the annotation, such as line style, line width, color. See IGArtXBorder for more information.
BorderShading
If TRUE, annotation has shading; if FALSE, annotation does not have shading.
Opacity
Opacity value for the annotation.
Font
Contains font properties for new annotation; See IGArtXFont for more information.
Pin
Contains pin properties of the annotation. See IGArtXPin for more information.
Callout
Contains callout properties of the annotation. See IGArtXCallout for more information.

Return value:

New instance of IGArtXText object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateTextFromFile

Group: Method

Description:

This method creates auxillary objects that are used with ArtX, such as IGArtXTextFromFile.

Declaration:

CreateTextFromFile(
Rect As IGRectangle,
Text As String,
TextColor As IGPixel,
Font As IGArtXFont) As IGArtXTextFromFile

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Text
String containing the full path to the text file.
TextColor
Pixel object that contains a color for the text.
Font
Contains font properties for new annotation; See IGArtXFont for more information.

Return value:

New instance of IGArtXTextFromFile object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateTextNote

Group: Method

Description:

This method creates auxillary objects that are used with ArtX, such as IGArtXTextNote.

Declaration:

CreateTextNote(
Rect As IGRectangle,
Text As String,
TextColor As IGPixel,
FillColor As IGPixel,
Font As IGArtXFont) As IGArtXTextNote

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Text
String that is to be drawn on the annotation.
TextColor
Pixel object that contains a color for the text.
FillColor
Pixel object that contains color that entire area of the annotation will be filled with.
Font
Contains font properties for new annotation; See IGArtXFont for more information.

Return value:

New instance of IGArtXTextNote object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateTextPinUp

Group: Method

Description:

This method creates auxillary objects that are used with ArtX, such as IGArtXTextPinUp.

Declaration:

CreateTextPinUp(
Rect As IGRectangle,
Text As String,
TextColor As IGPixel,
Font As IGArtXFont,
Pin As IGArtXPin) As IGArtXTextPinUp

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Text
String that is to be drawn on the annotation.
TextColor
Pixel object that contains a color for the text.
Font
Contains font properties for new annotation; See IGArtXFont for more information.
Pin
Contains pin properties of the annotation. See IGArtXPin for more information.

Return value:

New instance of IGArtXTextPinUp object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateTextStamp

Group: Method

Description:

This method creates auxillary objects that are used with ArtX, such as IGArtXTextStamp.

Declaration:

CreateTextStamp(
Rect As IGRectangle,
Text As String,
TextColor As IGPixel,
Font As IGArtXFont) As IGArtXTextStamp

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Text
String that is to be drawn on the annotation.
TextColor
Pixel object that contains a color for the text.
Font
Contains font properties for new annotation; See IGArtXFont for more information.

Return value:

New instance of IGArtXTextStamp object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateTextTyped

Group: Method

Description:

This method creates auxillary objects that are used with ArtX, such as IGArtXTextTyped.

Declaration:

CreateTextTyped(
Rect As IGRectangle,
Text As String,
TextColor As IGPixel,
Font As IGArtXFont) As IGArtXTextTyped

Parameters:

Rect
Rectangle object that contains coordinates and dimensions for the annotation to be created.
Text
String that is to be drawn on the annotation.
TextColor
Pixel object that contains a color for the text.
Font
Contains font properties for new annotation; See IGArtXFont for more information.

Return value:

New instance of IGArtXTextTyped object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXDrawParams

Group: Object

Description:

This object represents ARTX draw parameters.

Interface:

IIGArtXDrawParams

Class Members:

GroupID
property
Gets GroupID from IGPageDisplay object.
hDC
property
Device context handle.
hWnd
property
Gets/sets window handle.
IGPageDisplay
property
Gets/sets IGPageDisplay object used for getting drawing params, such as HIGEAR and GroupID.
nOffLeft
property
Gets/sets left offset.
nOffTop
property
Gets/sets top offset.


GroupID

Group: Property

Description:

This property gets GroupID from IGPageDisplay object.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any ID


hDC

Group: Property

Description:

This property gets/sets device context handle.

Property Summary:

Data Type:
OLE_HANDLE
Default Value:
NULL
Access:
Read/Write
Settings:
Device context handle


hWnd

Group: Property

Description:

This property gets/sets window handle.

Property Summary:

Data Type:
OLE_HANDLE
Default Value:
NULL
Access:
Read/Write
Settings:
Window handle


IGPageDisplay

Group: Property

Description:

This property gets/sets IGPageDisplay object used for getting drawing params, such as HIGEAR and GroupID.

Property Summary:

Data Type:
IGPageDisplay
Default Value:
NULL
Access:
Read/Write
Settings:
IGPageDisplay object.


nOffLeft

Group: Property

Description:

This property gets/sets left offset.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive value.


nOffTop

Group: Property

Description:

This property gets/sets

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any positive value


IGArtXEllipse

Group: Object

Description:

This object represents Ellipse mark and its properties.

Interface:

IIGArtXEllipse extends IIGArtXMark

Class Members:

Opacity
property
Sets/Returns opacity level.
GetBorder
method
Returns the ellipse border style, thickness and color.
GetFillColor
method
Returns the fill color.
SetBorder
method
Sets the border style, thickness and color.
SetBounds
method
Sets bounds of the ellipse.
SetFillColor
method
Sets the fill color.


GetBorder

Group: Method

Description:

This method returns the ellipse border style, thickness and color.

Declaration:

GetBorder() As IGArtXBorder

Return value:

Returns the instance of IGArtXBorder.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetFillColor

Group: Method

Description:

This method returns the fill color.

Declaration:

GetFillColor() As IGPixel

Return value:

Returns the fill color.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Opacity

Group: Property

Description:

This property sets/returns the opacity level.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/wrire
Settings:
Any positive value.
Sample:
None


SetBorder

Group: Method

Description:

This method sets the border style, thickness and color.

Declaration:

SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
New instance of IGArtXBorder object.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBounds

Group: Method

Description:

This method sets bounds of the ellipse.

Declaration:

SetBounds(newVal As IGRectangle)

Parameters:

newVal
New instance of IGRectangle.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetFillColor

Group: Method

Description:

This method sets the fill color.

Declaration:

SetFillColor(newVal As IGPixel)

Parameters:

newVal
Fill color to be set.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXEncryption

Group: Object

Description:

ART Encryption mark.

Interface:

IIGArtXEncryption extends IIGArtXMark

Class Members:

Applied
property
Returns an applied state.
Password
property
Gets/sets encription password.
Decrypt
method
Decrypts the area previously encrypted with Encrypt.
Encrypt
method
Encrypts the area of Page covered by the encryption mark.
SetBounds
method
Sets bounds of the annotation.


Applied

Group: Property

Description:

This property returns an applied state.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False


Decrypt

Group: Method

Description:

This method decrypts the area previously encrypted with Encrypt.

Sets Applied property to False, if decryption was successful.

Declaration:

Sub Decrypt()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Encrypt

Group: Method

Description:

This method encrypts the area of Page covered by the encryption mark. If the area (or portion of that area) is covered by another encryption mark, then does nothing.

Sets Applied property to True if encryption was successful.

Declaration:

Sub Encrypt(Page As IGPage)

Parameters:

Page
Page to encrypt..

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Password

Group: Property

Description:

This property gets/sets encription password.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/write
Settings:
any string


SetBounds

Group: Method

Description:

This method sets the bounds of the annotation.

Declaration:

Sub SetBounds(newVal As IGRectangle)

Parameters:

newVal
Contains new position and dimensions of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXFilledEllipse

Group: Object

Description:

Legacy ART Filled Ellipse mark.

Interface:

IIGArtXFilledEllipse extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets the opacity level. Semi-transparent if True, opaque if False.
GetFillColor
method
Returns the fill color of the ellipse.
SetBounds
method
Sets bounds of the ellipse.
SetFillColor
method
Sets the fill color.


GetFillColor

Group: Method

Description:

This method returns the fill color of the ellipse.

Declaration:

GetFillColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Highlight

Group: Property

Description:

This property gets/sets opacity level. Semi-transparent if True, opaque if False.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/write
Settings:
True, False


SetBounds

Group: Method

Description:

This method aSets bounds of the ellipse.

Declaration:

Sub SetBounds(newVal As IGRectangle)

Parameters:

newVal
Contains new position and dimensions of the ellipse.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetFillColor

Group: Method

Description:

This method sets the fill color.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains new color value for entire area of the ellipse.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXFilledPolygon

Group: Object

Description:

Legacy ART Filled Polygon mark.

Interface:

IIGArtXFilledPolygon extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets opacity level. Semi-transparent if True, opaque if False.
NumberOfPoints
property
Gets/sets number of points in polygon.
GetFillColor
method
Returns the fill color of the annotation.
GetPoint
method
Returns coordinates of the point with a given index.
GetPoints
method
Returns an array of points.
SetFillColor
method
Sets the fill color.
SetPoint
method
Sets coordinates of the point with given index.
SetPoints
method
Sets an array of pointsSets an array of points.


GetPoint

Group: Method

Description:

This method returns coordinates of the point with a given index. (0, 0) by default.

Declaration:

GetPoint(nIndex As Long) As IGPoint

Parameters:

nIndex
Index of the point.

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPoints

Group: Method

Description:

This method returns an array of points.

Declaration:

GetPoints(StartIndex As Long, Count As Long) As IGPointArray

Parameters:

StartIndex
An index of the point that is to be first in resulting array.
Count
Number of points to be read; up to last point if -1;

Return value:

IGPointArray object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Highlight

Group: Property

Description:

This property gets/sets the opacity level. Semi-transparent if True, opaque if False.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/write
Settings:
True, False


NumberOfPoints

Group: Property

Description:

This property gets/sets the number of points in polygon.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/write
Settings:
any positive value


SetFillColor

Group: Method

Description:

This method sets the fill color of the annotation.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains new color value for entire area of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoint

Group: Method

Description:

This method sets the coordinates of the point with specified index.

Declaration:

Sub SetPoint(nIndex As Long, newVal As IGPoint)

Parameters:

nIndex
Index of the point.
newVal
New coordinates of the point.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoints

Group: Method

Description:

This method sets an array of points.

Declaration:

Sub SetPoints(newVal As IGPointArray, StartIndex As Long)

Parameters:

newVal
New array of points. See an object IGPointArray.
StartIndex
An index of the first point to be updated

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXFilledRectangle

Group: Object

Description:

Legacy ART Filled Rectangle mark.

Interface:

IIGArtXFilledRectangle extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets the opacity level. Semi-transparent if True, opaque if False.
GetFillColor
method
Returns the fill color of the rectangle.
SetBounds
method
Sets bounds of the rectangle.
SetFillColor
method
Sets the fill color of the rectangle.


GetFillColor

Group: Method

Description:

This method returns the fill color of the rectangle.

Declaration:

GetFillColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBounds

Group: Method

Description:

This method sets bounds of the rectangle.

Declaration:

Sub SetBounds(newVal As IGRectangle)

Parameters:

newVal
Contains new position and dimensions of the rectangle.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetFillColor

Group: Method

Description:

This method sets the fill color of the rectangle.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains new color value for entire area of the rectangle.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXFont

Group: Object

Description:

This object specifies mark's font attributes.

Interface:

IIGArtXFont

Class Members:

DisablePPM
property
Gets/sets DisablePPM flag.
Name
property
Gets/sets the font name.
Size
property
Gets/sets the font size.
Style
property
Gets/sets the font style.


DisablePPM

Group: Property

Description:

This property gets/sets DisablePPM flag.

When set to True image resolution does not affect translation of font size from logical Unit top physical ones. When set to False size of text drawn depends on image resolution.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/write
Settings:
True, False


Name

Group: Property

Description:

This property gets/sets the font name.

Property Summary:

Data Type:
String
Default Value:
Arial
Access:
Read/write
Settings:
Font name string


Size

Group: Property

Description:

This property gets/sets the font height.

Property Summary:

Data Type:
Double
Default Value:
11
Access:
Read/write
Settings:
any positive value


Style

Group: Property

Description:

This property gets/sets the font style.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/write
Settings:
True, False


IGArtXFreeLine

Group: Object

Description:

Legacy ART Freehand line mark.

Interface:

IIGArtXFreeLine extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets the opacity level.
IsClosed
property
Gets/sets the closed state.
NumberOfPoints
property
Gets/sets the number of points in polygon.
GetBorder
method
Returns the annotation border style, thickness and color.
GetPoint
method
Returns coordinates of the point with a given index.
GetPoints
method
Returns an array of points.
SetBorder
method
Sets the border style, thickness and color.
SetPoint
method
Sets coordinates of the point with given index.
SetPoints
method
Sets an array of points.


GetPoint

Group: Method

Description:

This method returns the coordinates of the point with specified index. (0, 0) by default.

Declaration:

GetPoint(nIndex As Long) As IGPoint

Parameters:

nIndex
Index of the point.

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPoints

Group: Method

Description:

This method returns an array of points.

Declaration:

GetPoints(StartIndex As Long, Count As Long) As IGPointArray

Parameters:

StartIndex
An index of the point that is to be the first in the resulting array.
Count
Number of points to be read; up to last point if -1;

Return value:

IGPointArray object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsClosed

Group: Property

Description:

This property gets/sets the closed state. If True, polyline looks like an empty polygon without arrows.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/write
Settings:
True, False


SetBorder

Group: Method

Description:

This method sets the border style, thickness and color.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
Contains new border parameters that are to be set in annotation. See IGArtXBorder description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoints

Group: Method

Description:

This method sets an array of points.

Declaration:

Sub SetPoints(newVal As IGPointArray, StartIndex As Long)

Parameters:

newVal
New array.
StartIndex
An index of the first point to be updated.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXGroup

Group: Object

Description:

This object is the collection of ART marks united into a group.

Interface:

IIGArtXGroup

Class Members:

Access
property
Gets/sets access state of the group.
Add
method
Adds a mark with the specified coordinate type to a group.
BringToFront
method
Moves a group of marks to the top of the Z-Order.
ClipboardCopy
method
Copies a group of marks to the clipboard.
ClipboardCut
method
Cuts a group of marks to the Windows clipboard
Count
property
Returns a number of marks containing in group.
Description
property
Gets/sets a group description.
Name
property
Gets/sets a group name.
Remove
method
Removes a given mark from group.
RemoveAll
method
Removes all marks in a group.
Select
method
Changes a selected state for all marks in a group.
SendToBack
method
Moves a group of marks to the bottom of the Z-Order.


Access

Group: Property

Description:

This property gets/sets access state of the group.

Property Summary:

Data Type:
enumIGArtXAccess
Default Value:
IG_ARTX_ACCESS_UNLOCKED
Access:
Read/write
Settings:
any value of enumIGArtXAccess


Add

Group: Method

Description:

This method adds a mark with the specified coordinate type to a group.

Declaration:

Add(IMark As IIGArtXMark, CoordType As enumIGArtXCoordType)

Parameters:

IMark
Mark to be added.
CoordType
Coordinate type for the mark.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BringToFront

Group: Method

Description:

This method moves a group of marks to the top of the Z-Order.

Declaration:

BringToFront()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ClipboardCopy

Group: Method

Description:

This method copies a group of marks to the clipboard.

Declaration:

ClipboardCopy()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ClipboardCut

Group: Method

Description:

This method cuts a group of marks to the Windows clipboard

Declaration:

ClipboardCut()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Count

Group: Property

Description:

This property returns a number of marks containing in group.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
integer value


Description

Group: Property

Description:

This property gets/sets a group description.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/write
Settings:
Any string


Name

Group: Property

Description:

This property gets/sets a group name.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/write
Settings:
Any string


Remove

Group: Method

Description:

This method removes a given mark from group.

Declaration:

Remove(IMark As IIGArtXMark)

Parameters:

IMark
Mark to be remofed from a group.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RemoveAll

Group: Method

Description:

This method removes all marks in a group.

Declaration:

RemoveAll()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Select

Group: Method

Description:

This method changes a selected state for all marks in a group.

Declaration:

Select(bState As Boolean)

Parameters:

bState
True if marks are to be selected, False if marks are to be unselected.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SendToBack

Group: Method

Description:

This method moves a group of marks to the bottom of the Z-Order.

Declaration:

SendToBack()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXHighlighter

Group: Object

Description:

This object provides the properties and methods for Legacy ART Highlighter mark.

Interface:

IIGArtXHighlighter extends IIGArtXMark

Class Members:

GetFillColor
method
Returns the fill color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets the fill color of the annotation.


SetBounds

Group: Method

Description:

This method sets bounds of the annotation.

Declaration:

Sub SetBounds(newVal As IGRectangle)

Parameters:

newVal
Contains the new position and dimensions of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXHitTestParams

Group: Object

Description:

Parameters that HitTest method returns.

Interface:

IIGArtXHitTestParams

Class Members:

Mark
property
Returns result mark.
Result
property
Returns hit test result.
ResultData
property
Returns
  • enumIGArtXBounds value in case if nResult = IG_ARTX_HITTEST_ONBOUND,
  • index of the mark point in case if nResult = IG_ARTX_HITTEST_ONPOINT,
  • 0 otherwise.


Mark

Group: Property

Description:

This property returns result mark.

Property Summary:

Data Type:
IIGArtXMark
Default Value:
N/A
Access:
Read only
Settings:
Result mark; if no marks hit - NULL


Result

Group: Property

Description:

This property returns hit test result.

Property Summary:

Data Type:
enumIGArtXHitTest
Default Value:
N/A
Access:
Read only
Settings:
any value of enumIGArtXHitTest


ResultData

Group: Property

Description:

This property returns

  • enumIGArtXBounds value in case if nResult = IG_ARTX_HITTEST_ONBOUND
  • index of the mark point in case if nResult = IG_ARTX_HITTEST_ONPOINT
  • 0 otherwise

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
See description.


IGArtXHollowEllipse

Group: Object

Description:

This object provides the properties and methods for Legacy ART Hollow Ellipse mark.

Interface:

IIGArtXHollowEllipse extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets the opacity level.
GetBorder
method
Returns the ellipse border style, thickness and color.
SetBorder
method
Sets the border style, thickness and color.
SetBounds
method
Sets bounds of the ellipse.


GetBorder

Group: Method

Description:

This method returns the ellipse border style, thickness and color. See IGArtXBorder description for more information.

Declaration:

GetBorder() As IGArtXBorder

Return value:

IGArtXBorder object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBorder

Group: Method

Description:

This method sets the border style, thickness and color.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
Contains new border parameters that are to be set in ellipse. See IGArtXBorder description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXHollowPolygon

Group: Object

Description:

This object provides the properties and methods for Legacy ART Hollow Polygon mark.

Interface:

IIGArtXHollowPolygon extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets opacity level. Semi-transparent if True, opaque if False.
NumberOfPoints
property
Gets/sets number of points in polygon.
GetBorder
method
Returns the annotation border style, thickness and color.
GetPoint
method
Returns coordinates of the point with a given index;
GetPoints
method
Returns an array of points.
SetBorder
method
Sets the border style, thickness and color.
SetPoint
method
Sets coordinates of the point with given index.
SetPoints
method
Sets an array of pointsSets an array of points.


GetBorder

Group: Method

Description:

This method returns the annotation border style, thickness and color; see IGArtXBorder description for more information.

Declaration:

GetBorder() As IGArtXBorder

Return value:

IGArtXBorder object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoints

Group: Method

Description:

This method sets an array of points.

Declaration:

Sub SetPoints(newVal As IGPointArray, StartIndex As Long)

Parameters:

newVal
New array of points. See an object IGPointArray.
StartIndex
An index of the first point to be updated.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXHollowRectangle

Group: Object

Description:

This object provides the properties and methods for Legacy ART Hollow Rectangle mark.

Interface:

IIGArtXHollowRectangle extends IIGArtXMark

Class Members:

Highlight
property
Gets/sets the opacity level.
GetBorder
method
Returns the rectangle border style, thickness and color.
SetBorder
method
Sets the border style, thickness and color.
SetBounds
method
Sets bounds of the rectangle.


GetBorder

Group: Method

Description:

This method returns the rectangle border style, thickness and color. See IGArtXBorder description for more information.

Declaration:

GetBorder() As IGArtXBorder

Return value:

IGArtXBorder object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBorder

Group: Method

Description:

This method sets the border style, thickness and color.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
Contains new border parameters that are to be set in rectangle. See IGArtXBorder description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXHotSpot

Group: Object

Description:

This object provides the properties and methods for ART Hot Spot mark.

Interface:

IIGArtXHotSpot extends IIGArtXMark

Class Members:

Opacity
property
Gets/Sets the opacity level for the annotation.
GetBorder
method
Returns the annotation border style, thickness and color.
GetFillColor
method
Returns the fill color of the annotation.
GetLink
method
Returns the link object associated with the HotSpot mark.
SetBorder
method
Sets the border style, thickness and color.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets new fill color for the annotation.
SetLink
method
Sets the link object to the HotSpot mark


GetLink

Group: Method

Description:

This method returns the link object associated with the HotSpot mark.

Declaration:

GetLink() As IGArtXLink

Return value:

IGArtXLink object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Opacity

Group: Property

Description:

This property gets/sets an opacity of the mark.

Property Summary:

Data Type:
Long
Default Value:
127
Access:
Read/write
Settings:
Any positive value.


SetFillColor

Group: Method

Description:

This method sets the new fill color of the annotation.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains the new color value for the entire area of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetLink

Group: Method

Description:

This method sets the link object to the HotSpot mark.

Declaration:

Sub SetLink(newVal As IGArtXLink)

Parameters:

newVal
Reference to the link object to set.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXImage

Group: Object

Description:

This object provides the properties and methods for ART Image mark.

Interface:

IIGArtXImage extends IIGArtXMark

Class Members:

AlignmentH
property
Gets/sets horizontal image alignment.
AlignmentV
property
Gets/sets vertical image alignment.
AspectRatio
property
Gets/sets an image aspect ratio.
FileName
property
Gets/sets an image file name.
FitMode
property
Gets/sets an image fit mode.
Orientation
property
Gets/sets an image orientation.
GetPage
method
Returns the display page that contains the embedded image.
GetTransparentColor
method
Queries annotation transparent color.
SetBounds
method
Sets bounds of the annotation.
SetPage
method
Sets the display page that contains the embedded image.
SetTransparentColor
method
Updates annotation transparent color with new value.


AlignmentH

Group: Property

Description:

This property gets/sets horizontal image alignment.

Property Summary:

Data Type:
enumIGDsplAlignModes
Default Value:
IG_DSPL_ALIGN_X_CENTER
Access:
Read/write
Settings:
Any X value of enumIGDsplAlignModes


AlignmentV

Group: Property

Description:

This property gets/sets vertical image alignment.

Property Summary:

Data Type:
enumIGDsplAlignModes
Default Value:
IG_DSPL_ALIGN_Y_CENTER
Access:
Read/write
Settings:
Any Y value of enumIGDsplAlignModes.


AspectRatio

Group: Property

Description:

This property gets/sets an image aspect ratio.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/write
Settings:
Any positive value.


FileName

Group: Property

Description:

This property gets/sets an image file name.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/write
Settings:
Any string


FitMode

Group: Property

Description:

This property gets/sets an image fit mode.

Property Summary:

Data Type:
enumIGDsplFitModes
Default Value:
IG_DSPL_FIT_TO_WIDTH
Access:
Read/write
Settings:
Any value of enumIGDsplFitModes.


GetPage

Group: Method

Description:

This method returns the display page that contains the embedded image.

Declaration:

GetPage() As IGPage

Return value:

IGPage object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetTransparentColor

Group: Method

Description:

This method queries annotation transparent color.

Declaration:

GetTransparentColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Orientation

Group: Property

Description:

This property gets/sets an image orientation.

Property Summary:

Data Type:
enumIGOrientationModes
Default Value:
IG_DSPL_ORIENT_TOP_RIGHT
Access:
Read/write
Settings:
Any value of .enumIGOrientationModes


SetPage

Group: Method

Description:

This method sets the display page that contains the embedded image.

Declaration:

Sub SetPage(newVal As IGPage)

Parameters:

newVal
Display page to be set.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetTransparentColor

Group: Method

Description:

This method updates annotation transparent color with new value.

Declaration:

Sub SetTransparentColor(newVal As IGPixel)

Parameters:

newVal
New transparent color value. If NULL then no transparent color will be set.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXImageEmb

Group: Object

Description:

This object provides the properties and methods for Legacy ART Embedded Image mark.

Interface:

IIGArtXImageEmb extends IIGArtXMark

Class Members:

AlignmentH
property
Gets/sets horizontal image alignment.
AlignmentV
property
Gets/sets vertical image alignment.
AspectRatio
property
Gets/sets image aspect ratio.
FitMode
property
Gets/sets image fit mode.
Orientation
property
Gets/sets image orientation.
GetPage
method
Returns the display page that contains the embedded image.
GetTransparentColor
method
Queries annotation transparent color
SetBounds
method
Sets bounds of the annotation.
SetPage
method
Sets the display page that contains the embedded image.
SetTransparentColor
method
updates annotation transparent color with new value.


AlignmentH

Group: Property

Description:

This property gets/sets horizontal image alignment.

Property Summary:

Data Type:
enumIGDsplAlignModes
Default Value:
IG_DSPL_ALIGN_X_CENTER
Access:
Read/write
Settings:
Any value of .enumIGDsplAlignModes


AlignmentV

Group: Property

Description:

This property gets/sets vertical image alignment.

Property Summary:

Data Type:
enumIGDsplAlignModes
Default Value:
IG_DSPL_ALIGN_Y_CENTER
Access:
Read/write
Settings:
Any value of .enumIGDsplAlignModes


AspectRatio

Group: Property

Description:

This property gets/sets image aspect ratio.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/write
Settings:
Any double value


FitMode

Group: Property

Description:

This property gets/sets an image fit mode.

Property Summary:

Data Type:
enumIGDsplFitModes
Default Value:
IG_DSPL_FIT_TO_WIDTH
Access:
Read/write
Settings:
Any value of .enumIGDsplFitModes


IGArtXImageRef

Group: Object

Description:

This object provides the properties and methods for Legacy ART Image Reference mark.

Interface:

IIGArtXImageRef extends IIGArtXMark

Class Members:

AlignmentH
property
Gets/sets horizontal image alignment.
AlignmentV
property
Gets/sets vertical image alignment.
AspectRatio
property
Gets/sets an image aspect ratio.
FileName
property
Gets/sets an image file name.
FitMode
property
Gets/sets an image fit mode.
Orientation
property
Gets/sets image orientation.
GetTransparentColor
method
Queries annotation transparent color
SetBounds
method
Sets bounds of the annotation.
SetTransparentColor
method
updates annotation transparent color with new value.


IGArtXLine

Group: Object

Description:

This object provides the properties and methods for ART Line mark.

Interface:

IIGArtXLine extends IIGArtXMark

Class Members:

Opacity
property
Sets/Returns the opacity level.
GetBorder
method
Returns the annotation border style, thickness and color. See IGArtXBorder description for more information.
GetEndHead
method
Returns the end arrow style, length and angle. See IGArtXArrowHead description for more information.
GetEndPoint
method
Returns the end head coordinates.
GetHeadFillColor
method
Returns the fill color of the arrow heads.
GetStartHead
method
Returns the start head arrow style, length and angle. See IGArtXArrowHead description for more information.
GetStartPoint
method
Returns the start head coordinates.
SetBorder
method
Sets the border style, thickness and color.
SetEndHead
method
Sets the end head style, length and angle.
SetEndPoint
method
Sets the end head coordinates.
SetHeadFillColor
method
Sets the fill color for the arrow heads
SetStartHead
method
Sets the start head style, length and angle.
SetStartPoint
method
Sets the start head coordinates.


GetEndHead

Group: Method

Description:

This method returns the end arrow style, length and angle. See IGArtXArrowHead description for more information.

Declaration:

GetEndHead() As IGArtXArrowHead

Return value:

IGArtXArrowHead object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetEndPoint

Group: Method

Description:

This method returns the end head coordinates. Default value is (0, 0).

Declaration:

GetEndPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetHeadFillColor

Group: Method

Description:

This method returns a fill color of the arrow heads.

Declaration:

GetHeadFillColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetStartHead

Group: Method

Description:

This method returns the start head arrow style, length and angle. See IGArtXArrowHead description for more information. Default value is NULL.

Declaration:

GetStartHead() As IGArtXArrowHead

Return value:

IGArtXArrowHead object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetStartPoint

Group: Method

Description:

This method returns the start head coordinates. Default value is (0, 0).

Declaration:

GetStartPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBorder

Group: Method

Description:

This method sets the new border style, thickness and color.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
Contains the new border parameters. See IGArtXBorder description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetEndHead

Group: Method

Description:

This method sets the end head style, length and angle.

Declaration:

Sub SetEndHead(newVal As IGArtXArrowHead)

Parameters:

newVal
Contains the new arrow head parameters. See IGArtXArrowHead description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetEndPoint

Group: Method

Description:

This method sets the end head coordinates.

Declaration:

Sub SetEndPoint(newVal As IGPoint)

Parameters:

newVal
Contains the new end head coordinates.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetHeadFillColor

Group: Method

Description:

This method sets the new fill color of the head area of the annotation.

Declaration:

Sub SetHeadFillColor(newVal As IGPixel)

Parameters:

newVal
Contains the new color value for the head area of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetStartHead

Group: Method

Description:

This method sets the start head style, length and angle.

Declaration:

Sub SetStartHead(newVal As IGArtXArrowHead)

Parameters:

newVal
Contains new arrow head parameters that are to be set. See IGArtXArrowHead description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetStartPoint

Group: Method

Description:

This method sets the start head coordinates.

Declaration:

Sub SetStartPoint(newVal As IGPoint)

Parameters:

newVal
Contains the new start head coordinates.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXLink

Group: Object

Description:

ArtX link object associated with the HotSpot mark. The link object unifies the action data associated with the hotspot. For PDF annotation the link data is a PDF action that can be performed on the mouse click.

Interface:

IIGArtXLink

Class Members:

Data
property
Link data.
Highlight
property
Link highlight mode that can be used by GUI to highlight the hotspot area.


Data

Group: Property

Description:

This is link data. Provide CIGPDFAction.Pointer if you want to associate a PDF action with the link.

Property Summary:

Data Type:
LONG_PTR
Default Value:
Access:
Read/Write
Settings:


Highlight

Group: Property

Description:

Link highlight mode that can be used by GUI to highlight the HotSpot area.

Property Summary:

Data Type:
enumIGArtXHighlightModes
Default Value:
""
Access:
Read/Write
Settings:
Any value of enumIGArtXHighlightModes


IGArtXMark

Group: Object

Description:

This object provides general properties and methods for all mark types.

Interface:

IIGArtXMark

Class Members:

Tooltip
property
Gets/sets mark description that is used by tooltips.
Type
property
Gets the type of the mark.
Visible
property
Gets/sets the visiblity state.
Clone
method
Clones a mark from the existing one.
FromLegacyMark
method
Clones a mark from the existing legacy mark.
GetBounds
method
Returns the IGRectangle object that contains mark position and dimensions.
GetHitTestBounds
method
Returns a minimum bounding rectangle containing all the graphic elements of annotation.
Move
method
Moves the mark.
SetBounds
method
Sets bounds of the mark.


Clone

Group: Method

Description:

This method clones a mark from the existing one.

Declaration:

Clone() As IIGArtXMark

Return value:

New instance of IIGArtXMark.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FromLegacyMark

Group: Method

Description:

This method clones a mark from the existing legacy mark.

Declaration:

FromLegacyMark() As IIGArtXMark

Return value:

New instance of IIGArtXMark.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetBounds

Group: Method

Description:

This method returns the IGRectangle object that contains mark position and dimensions.

Declaration:

GetBounds() As IGRectangle

Return value:

New instance of IGRectangle.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetHitTestBounds

Group: Method

Description:

This method returns a minimum bounding rectangle containing all the graphic elements of annotation (in device coordinates).

Declaration:

GetHitTestBounds(pIDrawParams As IGArtXDrawParams) As
IGRectangle

Parameters:

pIDrawParams
Drawing parameters required to calculate device coordinates of the mark.

Return value:

New instance of IGRectangle.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Move

Group: Method

Description:

This method moves the mark.

Declaration:

Move(OffsetX As Long, OffsetY As Long)

Parameters:

OffsetX
X offset to move.
OffsetY
Y offset to move.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBounds

Group: Method

Description:

This method sets bounds of the mark.

Declaration:

SetBounds(newVal As IGRectangle)

Parameters:

newVal
Contains new position and dimensions of the mark.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Tooltip

Group: Property

Description:

This property gets/sets mark description that is used by tooltips.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
Any string.


Type

Group: Property

Description:

This property gets the type of the mark.

Property Summary:

Data Type:
enumIGArtXMarkType
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGArtXMarkType.


Visible

Group: Property

Description:

This property gets/sets a visibility state.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/write
Settings:
True, False


IGArtXMarkArray

Group: Object

Description:

This object is the container class that represents an array of the marks.

Interface:

IIGArtXMark

Class Members:

Item
property
Gets/Sets mark at the given position.
Size
property
Returns the number of marks in the array.
GetPtr
method
Returns the pointer to the array of marks.
Resize
method
Sets the number of marks in the array.


GetPtr

Group: Method

Description:

This method returns the pointer to the array of marks.

Declaration:

GetPtr() As Long

Return value:

Pointer to the array of marks.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Item

Group: Property

Description:

This indexed property gets/sets the mark at the given position.

Property Summary:

Data Type:
IGArtXMark
Default Value:
N/A
Access:
Read/write
Settings:
IGArtXMark


Resize

Group: Method

Description:

This method sets the number of marks in the array.

Declaration:

Sub Resize(newSize As Long)

Parameters:

newSize
The new number of marks in the array.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the number of marks in the array.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/write
Settings:
any positive number


IGArtXNote

Group: Object

Description:

This object provides methods and properties for Legacy ART Attach-A-Note mark.

Interface:

IIGArtXNote extends IIGArtXMark

Class Members:

Text
property
Gets/sets text.
GetFillColor
method
Returns the fill color of the annotation.
GetFont
method
Returns the annotation font style, size and face name.
GetTextColor
method
Returns the text color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets the fill color.
SetFont
method
Sets the annotation font style, size and face name.
SetTextColor
method
Sets the text color.


GetFont

Group: Method

Description:

This method Returns the annotation font style, size and face name. See IGArtXFont description for more information.

Declaration:

GetFont() As IGArtXFont

Return value:

IGArtXFont object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetTextColor

Group: Method

Description:

This method sets the text color.

Declaration:

Sub SetTextColor(newVal As IGPixel)

Parameters:

newVal
Contains new color value for the text.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Text

Group: Property

Description:

This property gets/sets the text of the annotation.

Property Summary:

Data Type:
String
Default Value:
"Text"
Access:
Read/Write
Settings:
Any string


IGArtXPage

Group: Object

Description:

This object provides methods and properties for accessing to individual marks on the page as well as to group of marks.

IGArtXPage is completely independent from IGPage and can be associated with one or more IGPage objects.

Interface:

IIGArtXMark

Class Members:

GroupCount
property
Gets the number of groups on ArtX page.
MarkCount
property
Gets the number of marks in the page.
Orientation
property
Gets/sets page's orientation.
PasteCount
property
Returns count of marks that are in the clipboard.
UndoActionEnabled
property
Enables/disables recording of particular undo actions.
UndoCount
property
Gets the count of records in undo action list.
UndoEnabled
property
Enables/disables the recording of undo actions.
ActionBeginCreation
method
Creates GUI action object of type Mark Creation.
ActionBeginEdit
method
Creates GUI action object of type Mark Edit.
ActionBeginMove
method
Creates GUI action object of type Mark Move.
ActionBeginResize
method
Creates GUI action object of type Mark Resize.
ActionBeginSelection
method
Creates GUI action object of type Mark Selection.
AddMark
method
Adds new mark to ArtX page.
AddMarkGroupIndex
method
Adds new mark to ArtX page. Mark will be added to group with the index specified.
AddMarkGroupName
method
Adds new mark to ArtX page. Mark will be added to group with the name specified.
ApplyToImage
method
Applies all the image related marks from the current ArtX page to the specified Image.
AssociatePageDisplay
method
Sets parent IGPageDisplay for the current ArtX page.
BurnIn
method
Merges marks permanently into ArtX Page.
BurnInGroupIDs
method
Merges marks permanently into ArtX Page.
BurnInGroupName
method
Merges marks permanently into ArtX Page.
CopyMarksArray
method
Copies several marks into clipboard.
CutMarksArray
method
cuts several marks from page and puts it to clipboard.
Flip
method
Flips page.
FlipMarks
method
Flips all marks on the page according with value of nFlipValue parameter.
GetAttr
method
Returns attributes of ArtX page.
GroupAdd
method
Adds new group to ArtX page.
GroupAt
method
Returns a group with index specified.
GroupDelete
method
Deletes specified group from ArtX page.
GroupGet
method
Returns a group with specified name.
HitTest
method
Checks if the mouse poiner is on any mark on the page.
Load
method
Loads annotations from image page to the ArtX page.
LoadFile
method
Loads annotations from file to the ArtX page specified.
MarkBringToFront
method
Changes Z-order of marks on page. It sends the mark specified to the top of stack.
MarkCopy
method
Copies a single mark to the clipboard.
MarkCut
method
Cuts a single mark from page and puts it to clipboard.
MarkFirst
method
Used to enumerate all annotations on the page. It returns the first annotation.
MarkIsSelected
method
Returns selection state of annotation specified.
MarkIsValid
method
Validates that the mark handle is valid on this page.validates that the mark handle is valid on this page.
MarkNext
method
Used to enumerate all annotations on the page. It returns handle of the next annotation.used to enumerate all annotations on the page. It returns handle of the next annotation.
MarkRemove
method
Removes mark from ArtX page and destroys it.
MarkSelect
method
Selectes the mark specified.
MarkSelectedFirst
method
Used to enumerate all selected annotations on the page. It returns the first selected annotation.
MarkSelectedNext
method
Used to enumerate all selected annotations on page. It returns the handle of the next selected annotation.
MarkSendToBack
method
Changes Z-order of marks on page. It sends the mark specified to the bottom of the stack.
MarkSetCoordType
method
Changes coordinate type of the specified mark on the page.
PageDelete
method
Destroys specified ArtX page including all objects associated with this page.
PasteMarks
method
Pastes marks from clipboard to page.
RemoveMarks
method
Removes all marks from the page.
RemoveMarksArray
method
Removes several marks from the page.
Rotate
method
Rotates the page.
RotateMarks
method
Rotates all marks on the page according with value of nRotateValue parameter.
Save
method
Saves ArtX page content to image page.
SaveFile
method
Saves ArtX page content to file.
SelectMarks
method
Changes selection state for all marks on the page.
SetAttr
method
Modifies attributes of ArtX page.
SetCoordType
method
Changes coordinate type of all marks on the page.
UndoClear
method
Clears all records from undo action.
UndoRollBack
method
Reverses any changes made to any mark on the page


ActionBeginCreation

Group: Method

Description:

This method creates GUI action object of type Mark Creation. This action object helps to select objects on page with mouse.

Declaration:

ActionBeginCreation(pIParams As IGArtXDrawParams, pIStartPoint
As IGPoint, pIMarkAttr As IIGArtXMark, nMarkType As
enumIGArtXMarkType, nCoordType As enumIGArtXCoordType) As
IGArtXAction

Parameters:

pIParams
Parameters required for action drawing.
pIStartPoint
Action starting point.
pIMarkAttr
Annotation that will be used as template for new mark to create. If NULL then newly created mark will be initialized with default values.
nMarkType
Type of annotation to create. If pIMarkAttr is not NULL then nMarkType value is ignored and mark of hMarkSample type will be created.
nCoordType
Coordinate type of mark to create. See enumIGArtXCoordType decription.

Return value:

Interface of created IGArtXAction object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ActionBeginEdit

Group: Method

Description:

This method creates GUI action object of type Mark Edit. This action object helps to change a text of specified text annotation.

Declaration:

ActionBeginEdit(pIParams As IGArtXDrawParams, pIMarkAttr As
IIGArtXMark) As IGArtXActionEditParams

Parameters:

pIParams
Parameters required for action drawing.
pIMarkAttr
Annotation to edit.

Return value:

Retuns handle of the edit control return value: IGArtXActionEditParams object containing created Action object and edit control handle.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ActionBeginMove

Group: Method

Description:

This method creates GUI action object of type Mark Move. This action object helps to change position of specified annotation with mouse.

Declaration:

ActionBeginMove(pIParams As IGArtXDrawParams, pIStartPoint As
IGPoint, pIMarkArray As IIGArtXMarkArray) As IGArtXAction

Parameters:

pIParams
Parameters required for action drawing.
pIStartPoint
Action starting point.
pIMarkArray
Array of annotations to move.

Return value:

Interface of created IGArtXAction object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ActionBeginResize

Group: Method

Description:

This method creates GUI action object of type Mark Resize. This action object helps to change a size of specified annotation with mouse.

Declaration:

ActionBeginResize(pIParams As IGArtXDrawParams, pIStartPoint As
IGPoint, pIMarkAttr As IIGArtXMark) As IGArtXAction

Parameters:

pIParams
Parameters required for action drawing.
pIStartPoint
Action starting point.
pIMarkAttr
Annotation to resize.

Return value:

Interface of created IGArtXAction object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ActionBeginSelection

Group: Method

Description:

This method creates GUI action object of type Mark Selection. This action object helps to select annotations with mouse.

Declaration:

ActionBeginSelection(pIParams As IGArtXDrawParams, pIStartPoint
As IGPoint) As IGArtXAction

Parameters:

pIParams
Parameters required for action drawing.
pIStartPoint
Action starting point.

Return value:

Interface of created IGArtXAction object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AddMark

Group: Method

Description:

This method adds new mark to ArtX page. Mark will be added to default group (with zero index). Mark's coordinate system will be set to nCoordType value.

Declaration:

AddMark(Mark As IIGArtXMark, CoordType As enumIGArtXCoordType)

Parameters:

Mark
Mark to add.
CoordType
Coordinate type of mark on page.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AddMarkGroupIndex

Group: Method

Description:

This method adds new mark to ArtX page. Mark will be added to group with the index specified. Mark's coordinate system will be set to CoordType value.

Declaration:

AddMarkGroupIndex(IMark As IIGArtXMark, CoordType As
enumIGArtXCoordType, GroupIndex As Long)

Parameters:

IMark
Handle of mark to add.
CoordType
Coordinate type of mark on page.
GroupIndex
Index of group to add mark to.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AddMarkGroupName

Group: Method

Description:

This method adds new mark to ArtX page. Mark will be added to group with the name specified.

If there is no such a group on page it will be created first.

Mark's coordinate system will be set to CoordType value.

Declaration:

AddMarkGroupName(IMark As IIGArtXMark, CoordType As
enumIGArtXCoordType, GroupName As String)

Parameters:

IMark
Handle of mark to add.
CoordType
Coordinate type of mark on page.
GroupName
Name of group to add mark to.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ApplyToImage

Group: Method

Description:

This method applies all the image related marks from the current ArtX page to the specified Image.

NOTE: Currently only the Encryption mark is directly related to an image. This method encrypts areas of Image covered by all encryption marks from the current ArtX page.

Declaration:

Sub ApplyToImage(Image As IGPage)

Parameters:

Image
Reference to the image to apply marks to.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AssociatePageDisplay

Group: Method

Description:

This method sets parent IGPageDisplay for the current ArtX page.

Declaration:

Sub AssociatePageDisplay(PageDisplay As IGPageDisplay)

Parameters:

PageDisplay
IGPageDisplay object to be set.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BurnIn

Group: Method

Description:

This method merges marks permanently into ArtX Page. They are converted from vector-format constructs into raster-format. The image may be temporarily promoted to a higher bit-depth for the purpose of the merge (see enumIGArtXBurnInOptions). When doing burn-in, the image is converted to 24-bit.

Declaration:

Sub BurnIn(IDrawParams As IGArtXDrawParams, Mode As
enumIGArtXBurnInOptions)

Parameters:

IDrawParams
Draw parameters for burn in.
Mode
Burn-in mode. See enumIGArtXBurnInOptions.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BurnInGroupIDs

Group: Method

Description:

This method merges marks permanently into ArtX Page. They are converted from vector-format constructs into raster-format. The image may be temporarily promoted to a higher bit-depth for the purpose of the merge (see enumIGArtXBurnInOptions).

Declaration:

Sub BurnInGroupIDs(IDrawParams As IGArtXDrawParams, Mode As
enumIGArtXBurnInOptions, GroupIDs As IGIntegerArray)

Parameters:

IDrawParams
Draw parameters for burn in.
Mode
Burn-in mode. See enumIGArtXBurnInOptions.
GroupIDs
ID of the group to merge.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BurnInGroupName

Group: Method

Description:

Merges marks permanently into ArtX Page. They are converted from vector-format constructs into raster-format. The image may be temporarily promoted to a higher bit-depth for the purpose of the merge (see enumIGArtXBurnInOptions).

Declaration:

Sub BurnInGroupName(IDrawParams As IGArtXDrawParams, Mode As
enumIGArtXBurnInOptions, GroupName As String)

Parameters:

IDrawParams
Draw parameters for burn in.
Mode
Burn-in mode. See enumIGArtXBurnInOptions.
GroupName
Name of the group to merge.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CopyMarksArray

Group: Method

Description:

This method copies several marks into clipboard.

Declaration:

Sub CopyMarksArray(MarksArray As IGArtXMarkArray)

Parameters:

MarksArray
Array with marks to copy.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CutMarksArray

Group: Method

Description:

This method cuts several marks from the page and puts it to clipboard.

Declaration:

Sub CutMarksArray(MarksArray As IGArtXMarkArray)

Parameters:

MarksArray
Array with marks to cut.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Flip

Group: Method

Description:

This method flips page.

Declaration:

Flip(FlipValue As enumIGFlipModes)

Parameters:

FlipValue
Flip mode. See values of enumIGFlipModes .

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FlipMarks

Group: Method

Description:

This method flips all marks on the page according with value of nFlipValue parameter. In contrast with Flip method it updates annotation coordinates. For text annotations (IG_ARTX_MARK_TEXT and similar), button and image (IG_ARTX_MARK_IMAGE and similar) it also updates mark orientation property.

Declaration:

FlipMarks(FlipValue As enumIGFlipValue, ImageRect As
IGRectangle, DeviceRect As IGRectangle)

Parameters:

FlipValue
Flip mode. See values of enumIGFlipModes .
ImageRect
Specifies bounding rectangle to flip annotations specified in image coordinate system. Typically it can be image rectangle.
DeviceRect
Specifies bounding rectangle to flip annotations specified in device coordinate system. Typically it can be windows client rectangle.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetAttr

Group: Method

Description:

This method returns attributes of ArtX page.

Declaration:

GetAttr(nControlOption As enumIGArtXAttrPage) As Long

Parameters:

nControlOption
Attribute to obtain. See enumIGArtXAttrPage description for more info.

Return value:

Attributes of ArtX page.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupAdd

Group: Method

Description:

This method adds new group to ArtX page.

If the group with specified name already exists, this function returns handle of the existing group.

Declaration:

GroupAdd(GroupName As String) As IGArtXGroup

Parameters:

GroupName
Name of the group to add.

Return value:

Handle of ART group.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupAt

Group: Method

Description:

This method returns a group with specified index. Returns NULL if there is no group with this index number.

Declaration:

GroupAt(GroupIndex As Long) As IGArtXGroup

Parameters:

GroupIndex
Group index to get.

Return value:

Handle of ART group.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupCount

Group: Property

Description:

This property gets the number of groups on ArtX page.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any integer number.


GroupDelete

Group: Method

Description:

This method deletes specified group from page and destroys all related group content.

Declaration:

GroupDelete(pIGroup As IGArtXGroup)

Parameters:

pIGroup
Group to be deleted.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupGet

Group: Method

Description:

This method returns a group with the name specified. Returns NULL if there is no group with this name.

Declaration:

GroupGet(GroupName As String) As IGArtXGroup

Parameters:

GroupName
Name of the group.

Return value:

Null or IGArtXGroup handle.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


HitTest

Group: Method

Description:

This method checks if mouse poiner is on any mark on page.

Declaration:

HitTest(pIDrawParams As IGArtXDrawParams, pIPoint As IGPoint,
Precision As Long) As IGArtXHitTestParams

Parameters:

pIDrawParams
Draw parameters for hit test.
pIPoint
Point in device coordinates to test.
Precision
Click precision in pixels.

Return value:

Returns a IGArtXHitTestParams object containing hit test result.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Load

Group: Method

Description:

This method loads annotations from image page to the ArtX page.

Declaration:

Load(IPage As IGPageDisplay, bAppend As Boolean)

Parameters:

IPage
Image page with annotations. It can be TIF or PDF page.
bAppend
When set to False specifies that current content of ArtX page is destroyed before annotation loading. Otherwise the file content is to append to ArtX page.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LoadFile

Group: Method

Description:

This method loads annotations from file to the ArtX page specified.

Declaration:

LoadFile(FileName As String, PageNumber As Long, IsAppend As
Boolean)

Parameters:

FileName
Name of file with annotations. It can be legacy Art2 data file of ArtX XML annotation storage.
PageNumber
Specifies annotation page number to load from multipage file.
IsAppend
When set to FALSE specifies that current content of ArtX page is destroyed before annotation loading. Otherwise file content is to append ArtX page.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkBringToFront

Group: Method

Description:

This method changes Z-order of marks on page. It sends the mark specified to the top of stack.

Declaration:

MarkBringToFront(IMark As IIGArtXMark)

Parameters:

IMark
Mark to change Z-order.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkCopy

Group: Method

Description:

This method copies a single mark to the clipboard.

Declaration:

Sub MarkCopy(Mark As IIGArtXMark)

Parameters:

Mark
Mark to copy.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkCount

Group: Property

Description:

This property gets the number of marks in the page.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any integer value.


MarkCut

Group: Method

Description:

This method cuts a single mark from page and puts it to the clipboard.

Declaration:

Sub MarkCut(Mark As IIGArtXMark)

Parameters:

Mark
Mark to cut.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkFirst

Group: Method

Description:

This method is used to enumerate all annotations on the page. It returns the first annotation.

Declaration:

MarkFirst() As IIGArtXMark

Return value:

Handle of IIGArtXMark.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkIsSelected

Group: Method

Description:

This method returns selection state of annotation specified.

Declaration:

MarkIsSelected(IMark As IIGArtXMark) As Boolean

Parameters:

IMark
Annotation to check the selection.

Return value:

True - mark is selected, False - otherwise.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkIsValid

Group: Method

Description:

This method validates that the mark handle is valid on this page.

Declaration:

MarkIsValid(IMark As IIGArtXMark) As Boolean

Parameters:

IMark
Mark handle.

Return value:

True - mark is valid, False - otherwise.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkNext

Group: Method

Description:

This method is used to enumerate all annotations on the page. It returns handle of the next annotation.

Declaration:

MarkNext(IMark As IIGArtXMark) As IIGArtXMark

Parameters:

IMark
If represents valid annotation then this function returns next annotation on page.

Return value:

Handle of IIGArtXMark.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkRemove

Group: Method

Description:

This method removes mark from ArtX page and destroys it.

Declaration:

MarkRemove(IMark As IIGArtXMark)

Parameters:

IMark
Annotation to remove.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSelect

Group: Method

Description:

This method selectes the mark specified.

Declaration:

MarkSelect(IMark As IIGArtXMark, State As Boolean)

Parameters:

IMark
Mark to be selected.
State
True - mark is selected, False - otherwise.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSelectedFirst

Group: Method

Description:

This method is used to enumerate all selected annotations on the page. It returns the first selected annotation.

Declaration:

MarkSelectedFirst() As IIGArtXMark

Return value:

Handle of IIGArtXMark.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSelectedNext

Group: Method

Description:

This method is used to enumerate all selected annotations on page. It returns the handle of the next selected annotation.

Declaration:

MarkSelectedNext(IMark As IIGArtXMark) As IIGArtXMark

Parameters:

IMark
If represents valid annotation then this function returns the next selected annotation on the page.

Return value:

Handle of IIGArtXMark.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSendToBack

Group: Method

Description:

This method changes Z-order of marks on page. It sends the mark specified to the bottom of the stack.

Declaration:

MarkSendToBack(IMark As IIGArtXMark)

Parameters:

IMark
Mark to change Z-order.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSetCoordType

Group: Method

Description:

This method changes coordinate type of the specified mark on the page.

Declaration:

MarkSetCoordType(IMark As IIGArtXMark, CoordType As
enumIGArtXCoordType)

Parameters:

IMark
Mark to modify.
CoordType
Coordinate type value to set.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Orientation

Group: Property

Description:

This property gets/sets page's orientation.

Property Summary:

Data Type:
enumIGOrientationModes
Default Value:
IG_DSPL_ORIENT_TOP_LEFT
Access:
Read/Write
Settings:
Any value of enumIGOrientationModes.


PageDelete

Group: Method

Description:

This method destroys specified ArtX page including all objects associated with this page.

Declaration:

PageDelete()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PasteCount

Group: Property

Description:

This property returns the count of marks that are in the clipboard.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any number of the marks


PasteMarks

Group: Method

Description:

This method pastes marks from the clipboard to page.

Declaration:

Sub PasteMarks()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RemoveMarks

Group: Method

Description:

This method removes all marks from the page.

Declaration:

RemoveMarks()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RemoveMarksArray

Group: Method

Description:

This method removes several marks from the page.

Declaration:

Sub RemoveMarksArray(MarksArray As IGArtXMarkArray)

Parameters:

MarksArray
Array with marks to remove.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Rotate

Group: Method

Description:

This method rotates the page.

Declaration:

Rotate(Value As enumIGRotationValues)

Parameters:

Value
Rotation mode. Please see enumIGRotationValues.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RotateMarks

Group: Method

Description:

This method rotates all marks on the page according with value of nRotateValue parameter. In contrast with Rotate method it updates annotation coordinates. For text annotations (IG_ARTX_MARK_TEXT and similar), button and image (IG_ARTX_MARK_IMAGE and similar) it also updates mark orientation property.

Declaration:

RotateMarks(RotateValue As enumIGRotationValues, ImageRect As
IGRectangle, DeviceRect As IGRectangle)

Parameters:

RotateValue
Rotation mode. Please see enumIGRotationValues.
ImageRect
Specifies bounding rectangle to rotate annotations specified in image coordinate system. Typically it can be image rectangle.
DeviceRect
Specifies bounding rectangle to rotate annotations specified in device coordinate system. Typically it can be windows client rectangle.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Save

Group: Method

Description:

This method saves ArtX page content to image page.

Declaration:

Save(IPage As IGPageDisplay)

Parameters:

IPage
Handle to the image page to save annotations to. It can be TIF or PDF page.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SaveFile

Group: Method

Description:

This method saves ArtX page content to file.

Declaration:

SaveFile(FileName As String, PageNumber As Long, WriteMode As
Boolean, SaveFormat As enumIGArtXSaveFormat)

Parameters:

FileName
Output file name.
PageNumber
Number of the page in multipage annotation file.
WriteMode
If True - file is to be saved, False - otherwise.
SaveFormat
Annotation format. See enumIGArtXSaveFormat description for more info.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SelectMarks

Group: Method

Description:

This method changes selection state for all marks on the page.

Declaration:

SelectMarks(bState As Boolean)

Parameters:

bState
Selection state to set.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetAttr

Group: Method

Description:

This method modifies attributes of ArtX page.

Declaration:

Sub SetAttr(nControlOption As enumIGArtXAttrPage, lValue As
Long)

Parameters:

nControlOption
Attribute to set. See enumIGArtXAttrPage description for more info.
lValue
New value for the attribute.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetCoordType

Group: Method

Description:

This method changes coordinate type of all marks on the page.

Declaration:

SetCoordType(CoordType As enumIGArtXCoordType)

Parameters:

CoordType
Coordinate type value to set. See enumIGArtXCoordType.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UndoActionEnabled

Group: Property

Description:

This parametrized property is for enabling/disabling recording of particular undo actions.

Declaration:

UndoActionEnabled(nAction As enumIGArtXUndoAction) As Boolean

Parameters:

nAction
Action type to enable. See enumIGArtXUndoAction description for more info.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False


UndoClear

Group: Method

Description:

This method clears all records from undo action.

Declaration:

UndoClear()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UndoCount

Group: Property

Description:

This property gets the count of records in undo action list.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any integer value.


UndoEnabled

Group: Property

Description:

This property is for enabling/disabling the recording of undo actions.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False


UndoRollBack

Group: Method

Description:

This method reverses any changes made to any mark on the page. Reversible operations include: creation, modification, selection, and deletions of marks. To clear the list of undos stored in memory, call UndoClear method.

Declaration:

Sub UndoRollBack()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXPin

Group: Object

Description:

This object specifies Text mark's pin icon.

Interface:

IIGArtXPin

Class Members:

Alignment
property
Gets/Sets pin alignment.
Type
property
Gets/Sets the callout type.
GetColor
method
Returns an object containing pin color.
GetPoint
method
Returns IGPoint object with coordinates of the callout point.
SetBorder
method
Sets callout line properties, such as line width, line style, color.
SetColor
method
Sets the pin color.
SetPoint
method
Sets coordinates of the callout point.


Alignment

Group: Property

Description:

This property gets/sets pin alignment.

Property Summary:

Data Type:
enumIGArtXPinAlignment
Default Value:
IG_ARTX_PINALIGNMENT_LEFT_TOP
Access:
Read/Write
Settings:
any value of enumIGArtXPinAlignment


GetColor

Group: Method

Description:

This method Returns object containing pin color.

Declaration:

GetColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPoint

Group: Method

Description:

This method returns IGPoint object with the coordinates of the callout point.

Declaration:

GetPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetBorder

Group: Method

Description:

This method sets the callout line properties, such as line width, line style, color.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
Contains the new callout line properties. See IGArtXBorder description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetColor

Group: Method

Description:

This method sets pin color.

Declaration:

Sub SetColor(newVal As IGPixel)

Parameters:

newVal
Contains the new pin color object.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoint

Group: Method

Description:

This method sets the coordinates of the callout point.

Declaration:

Sub SetPoint(newVal As IGPoint)

Parameters:

newVal
Contains the new coordinates of the callout point.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Type

Group: Property

Description:

This property is for enabling/disabling the recording of undo actions.

Property Summary:

Data Type:
enumIGArtXCalloutType
Default Value:
IG_ARTX_CALLOUT_LINE
Access:
Read/Write
Settings:
any value of enumIGArtXCalloutType


IGArtXPolygon

Group: Object

Description:

This object specifies the properties and methods for ART Polygon mark.

Interface:

IIGArtXPolygon extends IIGArtXMark

Class Members:

NumberOfPoints
property
Gets/Sets the number of points in the polygon mark.
Opacity
property
Gets/Sets the opacity level.
GetBorder
method
Returns the annotation border style, thickness and color.
GetFillColor
method
Returns the fill color of the annotation.
GetPoint
method
Returns the coordinates of the point with specified index.
GetPoints
method
Returns an array of points.
SetBorder
method
Sets the new border style, thickness and color.
SetFillColor
method
Sets the new fill color of the annotation.
SetPoint
method
Sets the coordinates of the point with specified index.
SetPoints
method
Sets an array of points.


GetPoints

Group: Method

Description:

This method returns an array of the points.

Declaration:

GetPoints(StartIndex As Long, Count As Long) As IGPointArray

Parameters:

StartIndex
The index of the point that is to be first in the resulting array.
Count
Number of the points to be read. If it is up to the last point, then -1;

Return value:

IGPointArray object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


NumberOfPoints

Group: Property

Description:

This property gets/sets the number of points in the Polygon.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


SetBorder

Group: Method

Description:

This method sets the border style, thickness and color.

Declaration:

Sub SetBorder(newVal As IGArtXBorder)

Parameters:

newVal
Contains the new border parameters that are to be set. See IGArtXBorder description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetFillColor

Group: Method

Description:

This method sets the fill color of the polygon.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains the new color value for entire area of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoint

Group: Method

Description:

This method sets coordinates of the point with specified index.

Declaration:

Sub SetPoint(nIndex As Long, newVal As IGPoint)

Parameters:

nIndex
Index of the point.
newVal
New coordinates of the point.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPoints

Group: Method

Description:

This method sets an array of the points.

Declaration:

Sub SetPoints(newVal As IGPointArray, StartIndex As Long)

Parameters:

newVal
Contains the new coordinates of the callout point.
StartIndex
An index of the first point in the array to be updated.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXPolyline

Group: Object

Description:

This object specifies the properties and methods for ART Polyline mark.

Interface:

IIGArtXPolyline extends IIGArtXMark

Class Members:

IsClosed
property
Gets/sets the closed state.
NumberOfPoints
property
Gets/sets the number of points in the polyline.
Opacity
property
Gets/sets the opacity level.
GetBorder
method
Returns the annotation border style, thickness and color.
GetEndHead
method
Returns the end arrow style, length and angle.
GetHeadFillColor
method
Returns a fill color for the arrow heads.
GetPoint
method
Returns the coordinates of the point with specified index.
GetPoints
method
Returns an array of points.
GetStartHead
method
Returns the start head arrow style, length and angle.
SetBorder
method
Sets the border style, thickness and color.
SetEndHead
method
Sets the end head style, length and angle.
SetHeadFillColor
method
Sets the fill color for the arrow heads.
SetPoint
method
Sets the coordinates of the point with specified index.
SetPoints
method
Sets an array of points.
SetStartHead
method
Sets the start head style, length and angle.


GetEndHead

Group: Method

Description:

This method returns the end arrow style, length and angle. See IGArtXArrowHead description for more information. Default value is NULL.

Declaration:

GetEndHead() As IGArtXArrowHead

Return value:

IGArtXArrowHead object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetHeadFillColor

Group: Method

Description:

This method returns a fill color for the arrow heads.

Declaration:

GetHeadFillColor() As IGPixel

Return value:

IGPixel object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetStartHead

Group: Method

Description:

This method returns the start arrow style, length and angle. See IGArtXArrowHead description for more information. Default value is NULL.

Declaration:

GetStartHead() As IGArtXArrowHead

Return value:

IGArtXArrowHead object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsClosed

Group: Property

Description:

This property gets/sets closed state; if TRUE, polyline looks like an empty polygon without arrows.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False


NumberOfPoints

Group: Property

Description:

This property gets/sets the number of points in the Polyline.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


SetEndHead

Group: Method

Description:

This method sets the end head style, length and angle.

Declaration:

Sub SetEndHead(newVal As IGArtXArrowHead)

Parameters:

newVal
Contains the new arrow head parameters that are to be set. See IGArtXArrowHead description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetHeadFillColor

Group: Method

Description:

This method sets the fill color for arrow heads.

Declaration:

Sub SetHeadFillColor(newVal As IGPixel)

Parameters:

newVal
Contains the new color value for entire area of the arrow heads.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetStartHead

Group: Method

Description:

This method sets the start head style, length and angle.

Declaration:

Sub SetStartHead(newVal As IGArtXArrowHead)

Parameters:

newVal
Contains the new arrow head parameters that are to be set. See IGArtXArrowHead description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXProtractor

Group: Object

Description:

This object specifies the properties and methods for ART Protractor mark.

Interface:

IIGArtXProtractor extends IIGArtXMark

Class Members:

ArcRadius
property
Gets/sets arc radius.
Opacity
property
Gets/sets opacity level
Precision
property
Gets/sets precision for displayed value.
GetAspectRatio
method
Returns the annotation aspect ratio parameters.
GetBorder
method
Returns the annotation border style, thickness and color.
GetEndPoint
method
Returns the end point coordinates.
GetFont
method
Returns the annotation font style, size and face name.
GetHeadPoint
method
Returns the head point coordinates.
GetStartPoint
method
Returns the start point coordinates.
SetAspectRatio
method
Sets the aspect ratio parameters.
SetBorder
method
Sets the border style, thickness and color.
SetEndPoint
method
Sets the end point coordinates.
SetFont
method
Sets the annotation font style, size and face name.
SetHeadPoint
method
Sets the head point coordinates.
SetStartPoint
method
Sets the start point coordinates.


ArcRadius

Group: Property

Description:

This property gets/sets the arc radius.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value


GetAspectRatio

Group: Method

Description:

This method returns the annotation aspect ratio parameters. See IGArtXAspectRatio description for more information.

Declaration:

GetAspectRatio() As IGArtXAspectRatio

Return value:

IGArtXAspectRatio object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetEndPoint

Group: Method

Description:

This method Returns the end point coordinates. Default value is (0, 0).

Declaration:

GetEndPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetHeadPoint

Group: Method

Description:

This method Returns the head point coordinates. Default value is (0, 0).

Declaration:

GetHeadPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetStartPoint

Group: Method

Description:

This method returns the start point coordinates. Default value is (0, 0).

Declaration:

GetStartPoint() As IGPoint

Return value:

IGPoint object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Precision

Group: Property

Description:

This property gets/sets precision for displayed value.

Property Summary:

Data Type:
Long
Default Value:
2
Access:
Read/Write
Settings:
any positive value


SetAspectRatio

Group: Method

Description:

This method sets the aspect ratio parameters.

Declaration:

Sub SetAspectRatio (newVal As IGArtXAspectRatio)

Parameters:

newVal
Contains new aspect ratio parameters that are to be set in annotation. See IGArtXAspectRatio description for more information.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetEndPoint

Group: Method

Description:

This method sets the end point coordinates.

Declaration:

Sub SetEndPoint(newVal As IGPoint)

Parameters:

newVal
Contains the new end point coordinates that are to be set in annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetHeadPoint

Group: Method

Description:

This method sets the head point coordinates.

Declaration:

Sub SetHeadPoint(newVal As IGPoint)

Parameters:

newVal
Contains new head point coordinates that are to be set in annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetStartPoint

Group: Method

Description:

This method sets the start point coordinates.

Declaration:

Sub SetStartPoint(newVal As IGPoint)

Parameters:

newVal
Contains new start point coordinates that are to be set in annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXRectangle

Group: Object

Description:

This object specifies the properties and methods for ART Rectangle mark.

Interface:

IIGArtXRectangle extends IIGArtXMark

Class Members:

Opacity
property
Gets/Sets the opacity level.
GetBorder
method
Returns the annotation border style, thickness and color.
GetFillColor
method
Returns the fill color of the annotation.
SetBorder
method
Sets the new border style, thickness and color.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets the fill color of the annotation.


SetFillColor

Group: Method

Description:

This method sets the fill color of the Rectangle.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains the new color value for entire area of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXRedaction

Group: Object

Description:

This object specifies the properties and methods for Legacy ART Redaction mark.

Interface:

IIGArtXRedaction extends IIGArtXMark

Class Members:

GetFillColor
method
Returns the fill color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets the fill color of the annotation.


SetFillColor

Group: Method

Description:

This method sets the fill color of the annotation.

Declaration:

Sub SetFillColor(newVal As IGPixel)

Parameters:

newVal
Contains the new color value for entire area of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXRichText

Group: Object

Description:

This object specifies the properties and methods for ART Rich Text mark.

Interface:

IIGArtXRichText extends IIGArtXMark

Class Members:

Opacity
property
Gets/sets opacity level.
Orientation
property
Gets/sets rich text orientation.
Text
property
Gets/sets text.
GetBorder
method
Returns the annotation border style, thickness and color.
GetFillColor
method
Returns the fill color of the annotation
SetBorder
method
Sets the border style, thickness and color.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets the fill color.


Orientation

Group: Property

Description:

This property gets/sets the text orientation.

Property Summary:

Data Type:
enumIGOrientationModes
Default Value:
IG_DSPL_ORIENT_TOP_LEFT
Access:
Read/Write
Settings:
any value of enumIGOrientationModes


Text

Group: Property

Description:

This property gets/sets the text of the mark.

Property Summary:

Data Type:
String
Default Value:
"Text":
Access:
Read/Write
Settings:
any string


IGArtXRuler

Group: Object

Description:

This object specifies the properties and methods for ART Ruler mark.

Interface:

IIGArtXRuler extends IIGArtXMark

Class Members:

EndLineLength
property
Gets/sets end line length.
Label
property
Gets/sets text.
Opacity
property
Gets/sets opacity level.
Precision
property
Gets/sets precision for displayed value.
StartLineLength
property
Gets/sets start line length.
GetAspectRatio
method
Returns the annotation aspect ratio parameters.
GetBorder
method
Returns the annotation border style, thickness and color.
GetEndPoint
method
Returns the end head coordinates.
GetFont
method
Returns the annotation font style, size and face name.
GetStartPoint
method
Returns the start head coordinates.
SetAspectRatio
method
Sets the aspect ratio parameters.
SetBorder
method
Sets the border style, thickness and color.
SetEndPoint
method
Sets the end head coordinates.
SetFont
method
Sets the annotation font style, size and face name.
SetStartPoint
method
Sets the start head coordinates.


EndLineLength

Group: Property

Description:

This property gets/sets the end line length.

Property Summary:

Data Type:
Long
Default Value:
20
Access:
Read/Write
Settings:
any positive value


Label

Group: Property

Description:

This property gets/sets the text of the mark.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string


StartLineLength

Group: Property

Description:

This property gets/sets the start line length.

Property Summary:

Data Type:
Long
Default Value:
20
Access:
Read/Write
Settings:
any positive value


IGArtXText

Group: Object

Description:

This object specifies the properties and methods for ART Text mark.

Interface:

IIGArtXText extends IIGArtXMark

Class Members:

BorderShading
property
Gets/Sets the shading state.
BoundsWrap
property
Specifies one or combination of enumIGArtXWrap enumeration values.
Opacity
property
Gets/Sets opacity level.
Orientation
property
Gets/Sets text orientation.
Text
property
Gets/Sets the text.
TextAlignment
property
Gets/Sets text alignment.
TextType
property
Gets/Sets the text type.
GetBorder
method
Returns the annotation border style, thickness and color.
GetCallout
method
Returns the callout properties.
GetFillColor
method
Returns the fill color of the annotation.
GetFont
method
Returns the annotation font style, size and face name.
GetPin
method
Returns the pin properties.
GetTextColor
method
Returns the textl color of the annotation.
SetBorder
method
Sets the border style, thickness and color.
SetBounds
method
Sets bounds of the annotation.
SetCallout
method
Sets callout for the text.
SetFillColor
method
Sets the fill color.
SetFont
method
Sets the annotation font style, size and face name.
SetPin
method
Sets the pin for the text.
SetTextColor
method
Sets the text color.


BorderShading

Group: Property

Description:

This property gets/sets the shading state of the mark.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False


BoundsWrap

Group: Property

Description:

Specifies one or combination of enumIGArtXWrap enumeration values.

Declaration:

BoundsWrap As enumIGArtXWrap


GetCallout

Group: Method

Description:

This method returns the callout properties; see IGArtXCallout description for more information.

Declaration:

GetCallout() As IGArtXCallout

Return value:

IGArtXCallout object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPin

Group: Method

Description:

This method returns the pin properties; see IGArtXPin description for more information.

Declaration:

GetPin() As IGArtXPin

Return value:

IGArtXPin object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetCallout

Group: Method

Description:

This method sets the callout for the text.

Declaration:

Sub SetCallout(newVal As IGArtXCallout)

Parameters:

newVal
Contains new callout properties of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPin

Group: Method

Description:

This method sets pin for the text.

Declaration:

Sub SetPin(newVal As IGArtXPin)

Parameters:

newVal
Contains new pin properties of the annotation.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetTextColor

Group: Method

Description:

This method sets the text color.

Declaration:

Sub SetTextColor(newVal As IGPixel)

Parameters:

newVal
Contains the new color value for the text.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TextAlignment

Group: Property

Description:

This property gets/sets the text alignment of the mark.

Property Summary:

Data Type:
enumIGDsplAlignModes
Default Value:
IG_DSPL_ALIGN_X_LEFT
Access:
Read/Write
Settings:
any value of enumIGDsplAlignModes


TextType

Group: Property

Description:

This property gets/sets the text type.

Property Summary:

Data Type:
enumIGArtXTextType
Default Value:
IG_ARTX_TEXT_DIRECT_TEXT
Access:
Read/Write
Settings:
any value of enumIGArtXTextType


IGArtXTextFromFile

Group: Object

Description:

This object specifies the properties and methods for Legacy ART "Text From File" mark.

Interface:

IIGArtXTextFromFile extends IIGArtXMark

Class Members:

BoundsWrap
property
Specifies one or combination of enumIGArtXWrap enumeration values.
Text
property
Gets/sets the text.
GetFont
method
Returns the annotation font style, size and face name.
GetTextColor
method
Returns the text color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFont
method
Sets the annotation font style, size and face name.
SetTextColor
method
Sets the text color.


IGArtXTextNote

Group: Object

Description:

This object provides methods and properties for Legacy ART Text Note mark.

Interface:

IIGArtXTextNote extends IIGArtXMark

Class Members:

BoundsWrap
property
Specifies one or combination of enumIGArtXWrap enumeration values.
Text
property
Gets/sets text.
GetFillColor
method
Returns the fill color of the annotation.
GetFont
method
Returns the annotation font style, size and face name.
GetTextColor
method
Returns the text color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFillColor
method
Sets the fill color.
SetFont
method
Sets the annotation font style, size and face name.
SetTextColor
method
Sets the text color.


IGArtXTextPinUp

Group: Object

Description:

This object specifies the properties and methods for Legacy ART Pin-Up-Text mark.

Interface:

IIGArtXTextPinUp extends IIGArtXMark

Class Members:

BoundsWrap
property
Specifies one or combination of enumIGArtXWrap enumeration values.
Text
property
Gets/sets text.
GetFont
method
Returns the annotation font style, size and face name.
GetPin
method
Returns the pin properties.
GetTextColor
method
Returns the text color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFont
method
Sets the annotation font style, size and face name.
SetPin
method
Gets the pin properties.
SetTextColor
method
Sets the text color.


GetPin

Group: Method

Description:

This method returns the pin properties. See IGArtXPin description for more information.

Declaration:

GetPin() As IGArtXPin

Return value:

IGArtXPin object.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtXTextStamp

Group: Object

Description:

This object specifies the properties and methods for Legacy ART "Text From File" mark.

Interface:

IIGArtXTextFromFile extends IIGArtXMark

Class Members:

BoundsWrap
Property
Specifies one or combination of enumIGArtXWrap enumeration values.
Text
property
Gets/sets the text.
GetFont
method
Returns the annotation font style, size and face name.
GetTextColor
method
Returns the text color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFont
method
Sets the annotation font style, size and face name.
SetTextColor
method
Sets the text color.


IGArtXTextTyped

Group: Object

Description:

This object specifies the properties and methods for Legacy ART "Text From File" mark.

Interface:

IIGArtXTextFromFile extends IIGArtXMark

Class Members:

BoundsWrap
property
Specifies one or combination of enumIGArtXWrap enumeration values.
Text
property
Gets/sets the text.
GetFont
method
Returns the annotation font style, size and face name.
GetTextColor
method
Returns the text color of the annotation.
SetBounds
method
Sets bounds of the annotation.
SetFont
method
Sets the annotation font style, size and face name.
SetTextColor
method
Sets the text color.


Text

Group: Property

Description:

This property gets/sets the text of the mark.

Property Summary:

Data Type:
String
Default Value:
"Text"
Access:
Read/Write
Settings:
any string


IGArtXGUICtl

Group: Control

Description:

This is general ArtX GUI control.

Interface:

IIGArtXGUICtl

Class Members:

ArtXPage
property
This property gets/sets the ArtX Page that ArtX GUI is to be connected to.
Cursor
property
Returns currently selected mouse cursor.
Mode
property
This property changes the display mode of the ArtX GUI.
ToolbarVersion
property
This property gets/sets version of the ArtX GUI toolbar.
ToolbarVisible
property
This property shows/hides the ArtX GUI toolbar.
TooltipsVisible
property
Shows/hides the ArtX GUI tooltips.
IsTBButtonPressed
method
Checks if the specified toolbar button is pressed.
MouseDown
method
This method is for handling the mouse event.
MouseMove
method
This method is for handling the mouse event.
MouseUp
method
This method is for handling the mouse event.
PressTBButton
method
Presses or releases the specified toolbar button according to bPress parameter.
ReleaseTBButtons
method
Releases all toolbar buttons.
ShowAttributes
method
This Method opens property sheet for a given mark.
HotSpotAction
event
This event is called when a user clicks on a hotspot mark.
ToolBarNotify
event
This event is raised whenever the user changes the button selection in the ToolBar.


ArtXPage

Group: Property

Description:

This property gets/sets the ArtX Page that ArtX GUI is to be connected to.

Property Summary:

Data Type:
IGArtXPage
Default Value:
NULL
Access:
Read/Write
Settings:
IGArtXPage


Cursor

Group: Property

Description:

This property returns currently selected mouse cursor.

Property Summary:

Data Type:
IPictureDisp
Default Value:
N/A
Access:
Read only
Settings:
IPictureDisp


HotSpotAction

Group: Event

Description:

This event is called when a user clicks on a hotspot mark. You can use this event in PDF application to perform a PDF action associated with the Mark's link.

Declaration:

Event HotSpotAction(Mark As IGArtXHotSpot)

Parameters:

Mark
Reference to the hotspot mark that was clicked.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsTBButtonPressed

Group: Method

Description:

Checks if the specified toolbar button is pressed.

Declaration:

IsTBButtonPressed(ButtonID As enumIGArtXMarkType) As Boolean

Parameters:

ButtonID
Specifies the button to check. One of enumIGArtXMarkType values.

Return value:

True/False

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Mode

Group: Property

Description:

This property sets/returns the display mode of the ArtX GUI.

Property Summary:

Data Type:
enumIGArtXGUIMode
Default Value:
IG_ARTX_GUI_MODE_EDIT
Access:
Read/Write
Settings:
any value of enumIGArtXGUIMode


MouseDown

Group: Method

Description:

This method handles the MouseDown event.

Declaration:

Sub MouseDown (pIDrawParams As IGArtXDrawParams, nMessage As
Long, pPoint As IGPoint)

Parameters:

pIDrawParams
Parameters such as IG Display Page, device context, window handle.
nMessage
Window message (WM_LBUTTONDOWN (int value 513) or WM_RBUTTONDOWN (int value 516)).
pPoint
Contains mouse position.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseMove

Group: Method

Description:

This method handles the MouseMove event.

Declaration:

Sub MouseMove (pIDrawParams As IGArtXDrawParams, nMessage As
Long, pPoint As IGPoint)

Parameters:

pIDrawParams
Parameters such as IG Display Page, device context, window handle.
nMessage
Window message (WM_MOUSEMOVE (int value 512)).
pPoint
Contains mouse position.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseUp

Group: Method

Description:

This method handles the MouseUp event.

Declaration:

Sub MouseUp (pIDrawParams As IGArtXDrawParams, nMessage As Long,
pPoint As IGPoint)

Parameters:

pIDrawParams
Parameters such as IG Display Page, device context, window handle.
nMessage
Window message (WM_LBUTTONUP (int value 514) or WM_RBUTTONUP (int value 517)).
pPoint
Contains mouse position.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PressTBButton

Group: Method

Description:

Presses or releases the specified toolbar button according to bPress parameter.

Declaration:

Sub PressTBButton(ButtonID As enumIGArtXMarkType, bPress As
Boolean)

Parameters:

ButtonID
Toolbar button to specify. An enumIGArtXMarkType value.
bPress
Boolean: True to press the button; False to release it.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReleaseTBButtons

Group: Method

Description:

Releases all toolbar buttons.

Declaration:

Sub ReleaseTBButtons()

Parameters:

None.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowAttributes

Group: Method

Description:

This method opens property sheet for a given mark.

Declaration:

Sub ShowAttributes(IMark As IIGArtXMark, pIDrawParams As
IGArtXDrawParams)

Parameters:

IMark
Mark which attributes are to be shown.
pIDrawParams
Parameters such as ImageGear Display Page, device context, window handle.

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarNotify

Group: Event

Description:

This event is raised whenever the user changes the button selection in the ToolBar.

Declaration:

Event ToolBarNotify(MarkType As enumIGArtXMarkType, Reason As
enumIGArtXGUIToolbarEventType)

Parameters:

MarkType
The annotation mark button that was selected.
enumIGArtXMarkType value
Reason
The reason that ToolBarNotify has been raised.
enumIGArtXGUIToolbarEventType value

Return value:

None.

Bits Per Pixel:

N/A


ToolbarVersion

Group: Property

Description:

This property gets/sets version of the ArtX GUI toolbar. If False, only ArtX 3.0 marks can be used. If True - ArtX 2.0.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False


ToolbarVisible

Group: Property

Description:

This property shows/hides the ArtX GUI toolbar.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False


TooltipsVisible

Group: Property

Description:

This property shows/hides the ArtX GUI tooltips.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True/False


ArtX Enumerations

ImageGear ART component represents the following enumerations:

enumIGArtXAccess
Specifies mark accesability state.
enumIGArtXArrowStyle
Specifies available arrow head styles.
enumIGArtXAttrPage
Identifies attributes of ArtX page.
enumIGArtXBounds
Indicates the position of point (mouse cursor in most cases) relative annotation selection border.
enumIGArtXBurnInOptions
Specifies options for burn in.
enumIGArtXButtonState
Determines the state of button annotation.
enumIGArtXCalloutType
Specifies the type of callout drawn with text annotation.
enumIGArtXCoordType
Determines the type of coordinate system used to specify mark position.
enumIGArtXFontStyle
Specifies the style of the typeface of a font. Styles can be combined.
enumIGArtXGUIAction
Specifies the result of ArtX GUI action operations.
enumIGArtXGUIActionType
Specifies ArtX GUI action types.
enumIGArtXGUIMode
Specifies ArtX GUI mode.
enumIGArtXGUIToolbarEventType
Enumerates the various reasons for raising the ToolBarNotify event.
enumIGArtXHighlightModes
Specifies link highlight modes that can be used by GUI to highlight the hotspot area.
enumIGArtXHitTest
Specifies results of point hittest for selected mark.
enumIGArtXMarkType
Specifies available annotation types.
enumIGArtXObjType
Identifies all types of objects that can be created by IGArtXCtl.CreateObject method.
enumIGArtXPenStyle
Specifies the line styles of lines used to draw annotation or it's border.
enumIGArtXPinAlignment
Specifies alignment of Pin, assigned to text annotation.
enumIGArtXSaveFormat
Specifies alignment of Pin, assigned to text annotation.
enumIGArtXTextType
Specifies available types of text annotation and what TEXT attribute of annotation means - text itself or name of file with text.
enumIGArtXUndoAction
Used to control Undo functionality of ArtX.
enumIGArtXWrap
Affects text mark's drawing method.


enumIGArtXAccess

Group: Enumeration

Description:

This enumeration specifies mark accesability state.

Values:

IG_ARTX_ACCESS_LOCKED
Specifies that annotation is locked and can't be moved/edited with GUI.
IG_ARTX_ACCESS_UNLOCKED
Specifies that annotation is not locked and can be moved/edsited with GUI.


enumIGArtXArrowStyle

Group: Enumeration

Description:

This enumeration specifies available arrow head styles.

Values:

IG_ARTX_ARROW_POINTER
Specifies simple arrow pointer.
IG_ARTX_ARROW_SOLID
Specifies solid arrow pointer.
IG_ARTX_ARROW_OPEN
Specifies open arrow pointer.
IG_ARTX_ARROW_POINTER_SOLID
Specifies closed solid arrow pointer.
IG_ARTX_ARROW_NONE
Specifies empty pointer (no arrow).


enumIGArtXAttrPage

Group: Enumeration

Description:

This enumeration identifies attributes of ArtX page.

Values:

IG_ARTX_ATTR_PAGE_SHOW_LOCKS
Identifies visibility of lock icon for locked annotations on page.
IG_ARTX_ATTR_PAGE_DISABLE_PPM_FOR_FONTS
Identifies whether the resolution of underlying image is affecting drawing of text and RTF annotations on page. Set to FALSE (default value) to enable using image resolution for scaling font size of text and RTF marks, TRUE otherwise.
IG_ARTX_ATTR_PAGE_SHADOW_FONTS
Identifies shadow font attribute of page. It specifies how to draw text annotation (text, button, and so on)
IG_ARTX_ATTR_PAGE_WANG_LOAD_COMPATIBILITY
Identifies Wang load compatibility attribute of page. When set to TRUE only Wang-compatible annotation will be loaded into page.
IG_ARTX_ATTR_PAGE_FULL_TEXTMARKS_SELECT
Identify attribute that responds for text mark hit test functionality. When set to TRUE all area winthin text bounding rectangle is considered as annotation area. When set to FALSE only area accupied by text (by each character) is considered as internal for mark.


enumIGArtXBounds

Group: Enumeration

Description:

This enumeration is used to indicate the position of point (mouse cursor in most cases) relative annotation selection border.

Values:

IG_ARTX_BOUND_NONE
Specifies that point is not on border.
IG_ARTX_BOUND_LEFT_TOP
Specifies that point is on left-top corner of selection rectangle.
IG_ARTX_BOUND_RIGHT_TOP
Specifies that point is on right-top corner of selection rectangle.
IG_ARTX_BOUND_LEFT_BOTTOM
Specifies that point is on left-bottom corner of selection rectangle.
IG_ARTX_BOUND_RIGHT_BOTTOM
Specifies that point is on right-bottom corner of selection rectangle.
IG_ARTX_BOUND_LEFT
Specifies that point is on left side of selection rectangle.
IG_ARTX_BOUND_RIGHT
Specifies that point is on right side of selection rectangle.
IG_ARTX_BOUND_TOP
Specifies that point is on top side of selection rectangle.
IG_ARTX_BOUND_BOTTOM
Specifies that point is on bottom side of selection rectangle.


enumIGArtXBurnInOptions

Group: Enumeration

Description:

This enumeration specifies options for burn in.

Values:

IG_ARTX_BURN_IN_ALL
Burns in all annotation marks.
IG_ARTX_BURN_IN_DELETE_MARKS
Deletes affected marks after burning them in.
IG_ARTX_BURN_IN_GROUP
Burns in a group of marks.
IG_ARTX_BURN_IN_MARK_LIST
Burns in a list of marks.
IG_ARTX_BURN_IN_VISIBLE
Burns in all visible marks.
IG_ARTX_BURN_IN_SELECTED
Burns in all selected marks.
IG_ARTX_BURN_IN_AUTO_PROMOTE
Automatically promotes image.
IG_ARTX_BURN_IN_NO_PROMOTE
No promotion before burn-in.
IG_ARTX_BURN_IN_THRESHOLD_METHOD
Threshold reduce method for b/w images.
IG_ARTX_BURN_IN_GROUP_LIST
Burns in several groups of marks.


enumIGArtXButtonState

Group: Enumeration

Description:

This enumeration determines the state of button annotation.

Values:

IG_ARTX_BUTTON_NORMAL
Specifies normal button state.
IG_ARTX_BUTTON_PRESSED
Specifies pressed button state.


enumIGArtXCalloutType

Group: Enumeration

Description:

This enumeration specifies the type of callout drawn with text annotation.

Values:

IG_ARTX_CALLOUT_LINE
Specifies line callout.
IG_ARTX_CALLOUT_TRIANGLE
Specifies triangle callout.


enumIGArtXCoordType

Group: Enumeration

Description:

This enumeration determines the type of coordinate system used to specify mark position.

Values:

IG_ARTX_COORD_IMAGE
Image-based coordinate system. Point (0,0) represents left top corner of image.
IG_ARTX_COORD_DEVICE
Device (window) based coordinate system. Point (0,0) represents left top corner of window.


enumIGArtXFontStyle

Group: Enumeration

Description:

This enumeration specifies the style of the typeface of a font. Styles can be combined.

Values:

IG_ARTX_FONT_REGULAR
Specifies normal weight or thickness of the typeface.
IG_ARTX_FONT_BOLD
Specifies bold typeface. Bold is a heavier weight or thickness.
IG_ARTX_FONT_ITALIC
Specifies italic typeface, which produces a noticeable slant to the vertical stems of the characters.
IG_ARTX_FONT_UNDERLINE
Specifies underline, which displays a line underneath the baseline of the characters.
IG_ARTX_FONT_STRIKEOUT
Specifies strikeout, which displays a horizontal line drawn through the middle of the characters.


enumIGArtXGUIAction

Group: Enumeration

Description:

This enumeration specifies the result of ArtX GUI action operations. It is used as output parameter of IG_ARTX_action_mouse_XXX functions.

Values:

IG_ARTX_GUI_ACTION_FAILURE
Specifies that operation is failed.
IG_ARTX_GUI_ACTION_SUCCESS
Specifies that operation is successful.
IG_ARTX_GUI_ACTION_READY
Specifies that operation is successful and that selected action has enough data to be finished. Additional operations with this action are also possible.
IG_ARTX_GUI_ACTION_CONTINUE
Specifies that operation is successful but selected action can't be finished and requires more data/more events. For instance protractor annotation requires 3 points to be specified but only 2 where acquired for the moment.


enumIGArtXGUIActionType

Group: Enumeration

Description:

This enumeration specifies ArtX GUI action types.

Values:

IG_ARTX_GUI_ACTION_NONE
Specifies empty action. Should not be used and may indicate error state.
IG_ARTX_GUI_ACTION_SELECT
GUI action is mark selection.
IG_ARTX_GUI_ACTION_CREATE
GUI action is mark creation.
IG_ARTX_GUI_ACTION_MOVE
GUI action is mark movement.
IG_ARTX_GUI_ACTION_RESIZE
GUI action is mark resize.
IG_ARTX_GUI_ACTION_EDIT
GUI action is mark edit.


enumIGArtXGUIMode

Group: Enumeration

Description:

This enumeration specifies ArtX GUI mode.

Values:

IG_ARTX_GUI_MODE_EDIT
Edit mode.
IG_ARTX_GUI_MODE_RUN
Run mode.
IG_ARTX_GUI_MODE_VIEW
View mode.


enumIGArtXGUIToolbarEventType

Group: Enumeration

Description:

Enumerates the various reasons for raising the ToolBarNotify event.

Values:

IG_ARTX_GUI_TOOLBAR_BUTTON_SELECTED
A button has been selected.
IG_ARTX_GUI_TOOLBAR_NONE_SELECTED
No button is selected.
IG_ARTX_GUI_TOOLBAR_HIDDEN
A button on toolbar caption is clicked.
IG_ARTX_GUI_TOOLBAR_DESTROYED
The toolbar is about to be destroyed.


enumIGArtXHighlightModes

Group: Enumeration

Description:

This enumeration specifies link highlight modes that can be used by GUI to highlight the hotspot area.

Values:

IG_ARTX_HIGHLIGHT_NONE
Specifies empty highlighter.
IG_ARTX_HIGHLIGHT_INVERT
Specifies that highlighter is inverting colors within its area.
IG_ARTX_HIGHLIGHT_OUTLINE
Specifies that highlighter is outlining it's area.
IG_ARTX_HIGHLIGHT_PUSH
Specifies that highlighter is drawing XXXXX.


enumIGArtXHitTest

Group: Enumeration

Description:

This enumeration specifies results of point hittest for selected mark.

Values:

IG_ARTX_HITTEST_NONE
Specifies that point is outside of any mark.
IG_ARTX_HITTEST_ONMARK
Specifies that point is exactly on mark pixels.
IG_ARTX_HITTEST_ONBOUND
Specifies that point is exactly on mark bounding rectangle.
IG_ARTX_HITTEST_ONPOINT
Specifies that point is exactly on mark corner-point.
IG_ARTX_HITTEST_INBOUND
Specifies that point is within mark bounds, but not on mark pixels.
IG_ARTX_HITTEST_ON
Specifies combination of flags above and means that point is on mark.


enumIGArtXMarkType

Group: Enumeration

Description:

This enumeration specifies available annotation types.

Values:

IG_ARTX_MARK_SELECT
IG_ARTX_MARK_IMAGE_EMBEDDED
IG_ARTX_MARK_IMAGE_REFERENCE
IG_ARTX_MARK_LINE
IG_ARTX_MARK_FREEHAND_LINE
IG_ARTX_MARK_HOLLOW_RECTANGLE
IG_ARTX_MARK_FILLED_RECTANGLE
IG_ARTX_MARK_TYPED_TEXT
IG_ARTX_MARK_TEXT_FROM_FILE
IG_ARTX_MARK_TEXT_STAMP
IG_ARTX_MARK_ATTACH_A_NOTE
IG_ARTX_MARK_FILLED_POLYGON
IG_ARTX_MARK_HOLLOW_POLYGON
IG_ARTX_MARK_POLYLINE
IG_ARTX_MARK_AUDIO
IG_ARTX_MARK_FILLED_ELLIPSE
IG_ARTX_MARK_HOLLOW_ELLIPSE
IG_ARTX_MARK_ARROW
IG_ARTX_MARK_HOTSPOT
IG_ARTX_MARK_REDACTION
IG_ARTX_MARK_ENCRYPTION
IG_ARTX_MARK_RULER
IG_ARTX_MARK_PROTRACTOR
IG_ARTX_MARK_BUTTON
IG_ARTX_MARK_PIN_UP_TEXT
IG_ARTX_MARK_HIGHLIGHTER
IG_ARTX_MARK_RICH_TEXT
IG_ARTX_MARK_CALLOUT
IG_ARTX_MARK_RECTANGLE
IG_ARTX_MARK_ELLIPSE
IG_ARTX_MARK_POLYGON
IG_ARTX_MARK_TEXT
IG_ARTX_MARK_IMAGE


enumIGArtXObjType

Group: Enumeration

Description:

This enumeration identifies all types of objects that can be created by IGArtXCtl.CreateObject method.

Values:

IG_ARTX_OBJ_BORDER
IGArtXBorder object
IG_ARTX_OBJ_DRAWPARAMS
IGArtXDrawParams object
IG_ARTX_OBJ_PIN
IGArtXPin object
IG_ARTX_OBJ_CALLOUT
IGArtXCallout object
IG_ARTX_OBJ_ARROWHEAD
IGArtXArrowHead object
IG_ARTX_OBJ_FONT
IGArtXFont object
IG_ARTX_OBJ_MARK_ARRAY
IGArtXMarkArray object
IG_ARTX_OBJ_ASPECT_RATIO
IGArtXAspectRatio object
IG_ARTX_OBJ_HITTESTPARAMS
IGArtXHitTestParams object
IG_ARTX_OBJ_ACTIONEDITPARAMS
IGArtXActionEditParams object


enumIGArtXPenStyle

Group: Enumeration

Description:

This enumeration specifies the line styles of lines used to draw annotation or it's border.

Values:

IG_ARTX_PEN_SOLID
Specifies a solid line.
IG_ARTX_PEN_DASH
Specifies a dashed line.
IG_ARTX_PEN_DOT
Specifies a dotted line.
IG_ARTX_PEN_DASHDOT
Specifies an alternating dash-dot line.
IG_ARTX_PEN_DASHDOTDOT
Specifies an alternating dash-dot-dot line
IG_ARTX_PEN_PDFDASH1
Specifies a PDF dash line 1.
IG_ARTX_PEN_PDFDASH2
Specifies a PDF dash line 2.
IG_ARTX_PEN_PDFDASH3
Specifies a PDF dash line 3.
IG_ARTX_PEN_PDFDASH4
Specifies a PDF dash line 4.
IG_ARTX_PEN_PDFDASH5
Specifies a PDF dash line 5.
IG_ARTX_PEN_PDFDASH6
Specifies a PDF dash line 6.
IG_ARTX_PEN_UNDERLINE
Specifies a single line along the bottom of the annotation rectangle. Applicable for IG_ARTX_MARK_LINK only.


enumIGArtXPinAlignment

Group: Enumeration

Description:

This enumeration specifies alignment of Pin, assigned to text annotation.

Values:

IG_ARTX_PINALIGNMENT_LEFT_TOP
Specifies Pin attached to left top corner of text annotation.
IG_ARTX_PINALIGNMENT_LEFT_BOTTOM
Specifies Pin attached to left top bottom of text annotation.
IG_ARTX_PINALIGNMENT_RIGHT_TOP
Specifies Pin attached to right top corner of text annotation.
IG_ARTX_PINALIGNMENT_RIGHT_BOTTOM
Specifies Pin attached to right bottom corner of text annotation.


enumIGArtXSaveFormat

Group: Enumeration

Description:

This enumeration specifies format used to save annotations.

Values:

IG_ARTX_SAVE_XML
Specifies that annotations should be saved in XML format. This is ArtX native data format.
IG_ARTX_SAVE_LEGACY
Specifies that annotations should be saved in Art 2.0 legacy format. It is applicable for legacy annotations only. All ArtX native types are ignored.
IG_ARTX_SAVE_LEGACY_WANG
Specifies that annotations should be saved in Art 2.0 WANG legacy format. It is applicable for WANG compatible legacy annotations only. All other annotation types are ignored.


enumIGArtXTextType

Group: Enumeration

Description:

This enumeration specifies available types of text annotation and what TEXT attribute of annotation means - text itself or name of file with text.

Values:

IG_ARTX_TEXT_DIRECT_TEXT
Specifies that text stored in annotation is what is for drawing directly.
IG_ARTX_TEXT_FILE_NAME
Specifies that text stored in annotation is a name of file. File content is used to draw text annotation.


enumIGArtXUndoAction

Group: Enumeration

Description:

This enumeration is used to control Undo functionality of ArtX. These constants are specifying what undo operation is enabled or disabled.

Values:

IG_ARTX_UNDO_NONE
Corresponds to empty operation. Should not be used.
IG_ARTX_UNDO_MARK_ATTRIBUTES
Specifies whether to record annotation attribute modification to undo base.
IG_ARTX_UNDO_MARK_SELECT
Specifies whether to record annotation selecting operations to undo base.
IG_ARTX_UNDO_MARK_DELETE
Specifies whether to record annotation delete operation to undo base.
IG_ARTX_UNDO_MARK_CREATE
Specifies whether to record annotation creation operation to undo base.
IG_ARTX_UNDO_GROUP_ATTRIBUTES
Specifies whether to record group attribute modification to undo base.
IG_ARTX_UNDO_GROUP_ZORDER
Specifies whether to record group z-order modification to undo base.
IG_ARTX_UNDO_GROUP_DELETE
Specifies whether to record group creation operation to undo base.
IG_ARTX_UNDO_GROUP_CREATE
Specifies whether to record group delete operation to undo base.


enumIGArtXWrap

Group: Enumerations

Description:

Affects text mark's drawing method as follows: IG_ARTX_WRAP_HORIZONTAL - mark's text is wrapped horizontally IG_ARTX_WRAP_VERTICAL - mark's text is wrapped vertically.

Values:

IG_ARTX_WRAP_NONE
Indicates no wrapping method for text border (default)
IG_ARTX_WRAP_HORIZONTAL
Indicates horizontal wrapping for text border
IG_ARTX_WRAP_VERTICAL
Indicates vertical wrapping for text border


ImageGear ART Component API Reference

ImageGear ART Component API Reference

This Chapter presents the detailed API reference for the following ImageGear Professional v14 ActiveX Components:

  • ImageGear ART Component API
  • ART Component API Reference
NOTE: You can only attach one ART component. ART cannot be attached when ARTX is already attached.


ImageGear ART Component API

This section contains the complete description of the IGArtCtl ActiveX Control in ImageGear, along with the decriptions of all the related COM objects. For the ART Component ActiveX control and each COM object, there are Properties, Methods, Events and Enumerations.

Using the ART component, you can annotate any image that your application loads into ImageGear. The annotations are called "ART marks", or "marks" for short. Each time your application creates a new mark, it passes the IGPageDisplay object for the image to ART. ART internally tracks the marks that are associated with the image, and the ART and IGPageDisplay components work together to insure that an ART mark is always displayed on the correct part of the image (even as the image is scrolled, rotated, flipped and zoomed). Your application can save the image with the marks in a separate file with the .ART filename extension. Anytime the image is reloaded, the ART marks can be reloaded with a simple function-call.

The ART component consists of four primary objects:

  • IGArtCtl is the ActiveX control that you place in the user interface of your application, and which provides the main control functionality.
  • The ART ToolBar, which is a small window containing a set of buttons (one button per mark type, plus a selection-tool button). IGArtCtl manages the ART ToolBar window for your application.
  • IGArtPage is a COM object that contains all of the marks for a particular image, and provides all of the functionality for creating, managing, modifying and deleting marks.
  • The "Property Sheet" dialogs. These are modal dialogs implemented by the IGArtPage object. There are two separate dialogs for each mark type: one that sets the GlobalAttr... properties for that mark type, and the other that sets the Attr... properties for a specific mark.


Creating, Saving, Loading, Modifying and Deleting ART Marks

Creating a Mark via the ToolBar

End users can create a mark using the ART toolbar, or your application can create them directly by calling ART functions. This section describes how to create marks with user interaction through the ART toolbar.

When a button is selected from the toolbar, ART goes into "drawing mode", where the mouse is used to place and size the mark. The sequence of events depends on whether the mark is one of the types that contains text or not:

Mark does not contain text:

  • User drags a rectangle on the image
  • Mark is placed and sized on the image, and is selected.
  • Control returns to the application.

Mark contains text:

  • User drags a rectangle on the image
  • Mark is placed and sized on the image, and is placed in text-edit mode.
  • Blinking "I-Beam" insertion point is placed in the mark.
  • User types text into the mark, as desired.
  • User clicks the left mouse-button. Mark goes from text-edit mode to selected.
NOTE: The right mouse-button click should display the context menu and can not be used in the process of creating marks via the tool bar.
  • Control returns to the application

Note that your application must implement 3 event handlers to make the ART ToolBar operable and to allow the user to create and modify ART marks using the mouse. Those 3 event handlers are as follows:

Private Sub IGArtCtl1_ToolBarNotify(ByVal ButtonID As Long,
ByVal Reason As Long)
    If (Not artPage Is Nothing) And CurIGPage.IsValid Then
artPage.GlobalAttrMarkType = ButtonID
    End If
End Sub
Private Sub IGPageViewCtl1_MouseDown(ByVal Button As Integer,
ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
Dim hMarkIndex, hMarkSelected As Long
Dim fSelected As Boolean
Dim dwSelectCount As Long
    igCurPoint.XPos = X igCurPoint.YPos = Y
        If (Not artPage Is Nothing) And CurIGPage.IsValid Then
        If 1 = Button Then
    artPage.InteractionProcess Button, 1, igCurPoint
        End If
        End If
End Sub
Private Sub IGPageViewCtl1_MouseUp(ByVal Button As Integer,
ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
    igCurPoint.XPos = X
    igCurPoint.YPos = Y
        If (Not artPage Is Nothing) And CurIGPage.IsValid Then
        If 1 = Button Then
    artPage.InteractionProcess Button, 2, igCurPoint
        End If
        End If
End Sub
Private Sub IGPageViewCtl1_MouseMove(ByVal Button As Integer,
ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
Dim pointsArray As New IGPointArray
    igCurPoint.XPos = X
    igCurPoint.YPos = Y
        If (Not artPage Is Nothing) And CurIGPage.IsValid Then
        If 1 = Button Then
    artPage.InteractionProcess Button, 0, igCurPoint
        End If
        End If
End Sub

Creating a Mark via Function Calls

Some applications won't use the ART ToolBar, or will provide the ToolBar and other options, for creating marks. In that case, some function in your application will need to create the marks directly: to do that, your application will call MarkCreate. The way that MarkCreate works is that you specify the type of the desired mark in the parameter on the subroutine call. All of the characteristics of the mark (size, position, text contained within it, etc.) are specified via a set of properties named GlobalAttrxxx. Your application must set these properties before calling MarkCreate. For example, to add a Typed Text annotation programmatically:

    Dim lMark As Long

    artPage.GlobalAttrBounds.Left = 10        'set the bounding
rectangle
    artPage.GlobalAttrBounds.Top = 10
    artPage.GlobalAttrBounds.Right = 100
    artPage.GlobalAttrBounds.Bottom = 20

    artPage.GlobalAttrText = "my text mark"   'set the text

    lMark = artPage.MarkCreate(markTypedText) 'create it
    artPage.MarkPaint lMark                   'paint (draw) the
mark

Saving ART Marks

Once the end-user of your application has created some marks, they're probably going to want to save them somewhere. Your application has 3 choices of where to save them:

  • Save them to a separate .ART file. Using this method, your application will have to keep track of which .ART file goes with which image file, and load them together. Use the FileExport or SaveAnnotations methods to do this (SaveAnnotations is more flexible, but requires more code).
  • Save the art marks as tags inside the image file. This option is only available for image file formats that support tags (non-image data). In the case of TIFF files, IGArtCtl does this automatically, requiring no code in your application.
  • "Burn In" the ART marks. This converts the ART marks from their native representation to the format of the image file, which usually destroys a lot of their functionality (for instance, once a mark is burned in to a JPEG image, it cannot be moved, resized or hidden). Use the ImageBurnIn method to do this.
NOTE: .ART files can be read by any other application developed with ImageGear. In addition, the .ART file format is supported by the Imaging for Windows application (from Kodak) supplied with Windows.

Loading ART Marks

Once ART marks have been saved, they can be reloaded (by the same user or a different user, using the same program or using any other ImageGear-enabled application). The way that the marks were saved will determine how they must be reloaded:

.ART file: Your application loads the image using any of the IGFormatsCtl Loadxxx methods. It then constructs an IGArtPage for the image in the IGPage object, and finally loads the marks from the .ART file. Your application will use either FileImport(), FileAppend or LoadAnnotations to do this (LoadAnnotations is more flexible, but requires more code).

TIFF: Your application sets up IGPage, IGPageDisplay and IGArtPage objects, then loads the TIFF file using any of the IGFormatsCtl Loadxxx methods. Because the ART marks were stored as tags in the TIFF file, and because your application had the IGArtPage all set up before calling Loadxxx, the ART marks will be reloaded into the IGArtPage automatically.

Burned In: Your application loads the image using any of the IGFormatsCtl Loadxxx methods. The burned-in remains of the marks are loaded as part of the image.

Edit Mode, Run Mode and View Mode

Each IGArtPage object is always in one of three modes:

  • Edit mode lets users create or edit marks.
  • Run mode lets users operate on Encryption, Hot Spot, Audio, and Button activities.
  • View-only mode allows users to view marks--not add or modify them.

Your application can switch an IGArtPage from one mode to the other by simply setting the UserMode property.

While an IGArtPage is in View-only mode, your application will not have to deal with any ART-related events: it simply loads the image and ART marks and displays the image (the ART marks are displayed automatically).

If your application switches IGArtPage into Run mode, then it will have to start dealing with a specific ART-related event: MouseNotify. For example, for a Encryption mark, when the image and ART marks are first loaded and displayed, the Encryption mark will obscure some or all of the image. When the user moves the cursor over the mark, the cursor will change to the ART_CURSOR_OVER_MARK (pointing hand) and your MouseNotify handler will be called with a reason code of ART_MOUSE_ENTER. Your event handler could display a dialog box asking for the password to enable viewing of that portion of the image, and then (if the user gets the password right), unobscure the image. The code would look like this:

Private IGArtCtl1_MouseNotify(pPage As IGArtPage, MarkIndex As
Long, Reason As Long, PointX As Long, PointY As Long)
    Dim i As Long
    Dim password As String
    If Reason = ART_MOUSE_LBUTTON_UP Then
        artPage.MarkQuery MarkIndex
        If artPage.AttrMarkType = ART_MARK_ENCRYPTION Then
            password = InputBox(
        "Enter password to see this part of image:",
        "Encryption Mark")
            If password = artPage.AttrPassword Then
                artPage.MarkVisible MarkIndex, False
            End If
        End If
    End If
End Sub

If your application switches IGArtPage into Edit mode, then it will have to implement the 3 event handlers listed in Creating a Mark via the ToolBar, and (depending on the functionality you need to provide) others. Note that, while your IGArtPage is in Edit mode, then it will not raise the MouseNotify event.

Modifying Marks via Attribute Dialog

As long as the IGArtPage object is in Edit mode, marks can be modified. As with creating marks, there are two ways to modify marks. The first is to use the InteractionProcess method and "Property Sheet" dialogs, the second is to use the Attrxxx properties and the MarkModify method.

Geometric changes (like moving and resizing) are done automatically, as a result of your implementation of the IGPageViewCtl mouse event handlers, as shown in Creating a Mark via the ToolBar. To make other changes to a mark, your application makes a simple call to IGArtPage to have one of the MarkAttribute dialogs displayed, and IGArtPage takes care of the rest. For example, if you wanted your users to be able to right-mouse-click on a mark to bring up its Property Sheet, you would put the following code in your application:

Private Sub IGPageViewCtl1_MouseUp(ByVal Button As Integer,
ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
    Dim i As Long
    If Button = 2 Then
        i = artPage.MarkHitTest(X, Y)
        If i >= 0 Then
            artPage.MarkQuery i
            artPage.MarkAttributesShow (i)
        End If
    End If
End Sub

Note that there are 2 sets of Property Sheet dialogs. The preceeding example shows how to use the MarkAttributes dialogs. There are also a set of GlobalAttributes dialogs, which allow the user to set the GlobalAttrxxx properties of IGArtPage. Your application could, for instance, define a set of menu items, one per mark type, to provide these GlobalAttributes dialogs to your end user:

Private Sub mnuOptFilledRectangle_Click()
    artPage.GlobalAttributesShow markFilledRectangle
End Sub
Private Sub mnuOptHollowRectangle_Click()
    artPage.GlobalAttributesShow markHollowRectangle
End Sub
...

Modifying Marks via Function Call

The technique for modifying marks via function call is quite similar to the way that they are created. Your application will have to implement the user interface controls that gather the attributes to be applied to a mark. It will display that user interface for a specific mark - for instance, you could implement the SelectNotify event handler. In the handler, your code would use the MarkQuery method to get the selected mark's current attributes, then display your user interface to get new attribute values from the user, then modify the appropriate Attrxxx properties of IGArtPage, call MarkModify to update the mark, and finally call MarkPaint to repaint the mark. Your code would look something like this:

Private Sub IGArtCtl1_SelectNotify(ByVal pPage As
GearARTLibCtl.IIGArtPage, ByVal MarkIndex As Long, ByVal
fSelectionState As Boolean, ByVal SelectFlag As
GearARTLibCtl.IGArtEventParams)
    pPage.MarkQuery MarkIndex
    .
    .  <display pPage.AttrXXX values in your UI>
    .  <operate your UI to get new values from user>
    .
    ' Now set the AttrXXX values
    pPage.AttrArcRadius = xxx
    pPage.AttrArrowLength = xxx
    pPage.AttrArrowType = xxx
    .
    .
    ' Now update and repaint the mark
    pPage.MarkModify MarkIndex
    pPage.MarkPaint MarkIndex
End Sub

Deleting Marks

Marks are deleted via the MarkDelete method.


Operating with ART Marks

Clipboard Operations

ART marks can be cut from and copied to the clipboard as well as and pasted into an image individually or in groups. The IGArtPage object provides the following methods to perform clipboard operations:

EditCopy
Copies all selected marks to the clipboard
EditCut
Cuts all selected marks to the clipboard
EditPaste
Pastes all available marks from the clipboard to the current IGArtPage.
EditPasteCount
Returns the number of marks available for pasting from the clipboard.

Undoing Edits

The IGArtPage object maintains an "undo stack". This is a LIFO stack of actions performed by the IGArtPage object. The various actions that are recorded in the "undo stack" are mark creation, modification and deletion. Your application can turn this recording on and off. At any time (for instance, in reaction to the user clicking an "Undo" menu item), your application can call the "undo" method to have the last action popped off of the stack and reversed. The various methods used with the "undo stack" are as follows: :

EditUndo
Reverses (performs undos to) an action.
EditUndoClear
Clears all pending undos from the "undo stack".
EditUndoCount
Returns the number of entries in the "undo stack" (so that your application can disable the "Undo" menu item when the count is 0).
EditUndoRecord
Enables or disables the recording of actions in the "undo stack". Note that turning off recording does not clear the stack.

Iterating Through Marks

Sometimes, your application will need to iterate through the marks in an IGArtPage object. There are two mechanisms for doing this:

  • MarkFirst/MarkNext iterates through all of the marks
  • MarkSelectedFirst/MarkSelectedNext iterates through only the selected marks

When you use either of these techniques, you must call MarkQuery for each mark to place the mark's attributes into the IGArtPage Attr... properties. Your application can then perform the desired function. If the function was to modify the attributes, then your application must call MarkModify to apply the new attributes to the mark.

For example, to change the text of all selected marks to red, your application would do the following:

Dim hMark As Long
hMark = MarkIndex
Dim rgbvals As New IGPixel
Set rgbvals = IGCoreCtl1.CreateObject(IG_OBJ_PIXEL)
pPage.UserMode = userEditMode
pPage.MarkQuery hMark
rgbvals.RGB_R = 0
rgbvals.RGB_G = 50
rgbvals.RGB_B = 0
pPage.AttrForeColor = rgbvals
pPage.MarkModify hMark
pPage.MarkPaint hMark
IGPageViewCtl1.UpdateView

Mark Groups

IGArtPage provides a facility called "mark groups" (or just "groups", for short) that provides a powerful mechanism for implementing application features. Every mark belongs to one and only one group; by default all marks belong to a group named "(Untitled)". Your application can create as many groups as needed - each group is simply given a unique character string name. IGArtPage provides a set of methods that manipulate all of the marks in a group (hide them all, make them all visible, etc.). Your application could use groups to provide annotation layers (each "layer" would simply be a group), so that the user could choose which layer, and thus which set of annotations, to view. Alternatively, your application could use groups to provide private annotations (each person would only be able to see "their" annotations).

The various methods that operate on groups are as follows::

GroupAccess
Set access to allow edit or read-only
GroupBringToFront
Bring group of marks to the top of the ZOrder
GroupDelete
Delete all of the marks in the group
GroupEditCopy
Copy all of the marks in the group to the clipboard
GroupEditCut
Cut all of the marks in the group to the clipboard
GroupSelect
Select all of the marks in the group
GroupSendToBack
Send group of marks to the bottom of the ZOrder
GroupVisible
Make all marks in group visible or invisible

Event Handling

IGArtCtl raises several different types of events, which your application can use for different purposes:

CreateNotify,
PreCreateNotify,
PreModifyNotify
Used to validate the data stored in a mark
PostCreateNotify,
DeleteNotify,
ModifyNotify
Used to track the comings and goings of marks
MouseNotify
Used to react to mouse events while in Run mode (see Edit Mode, Run Mode and View Mode)
SelectNotify
Used to react to mouse events while in Edit mode
ToolBarNotify
Used to make the ToolBar functional (see Creating a Mark via the ToolBar)


The ART Marks Reference

This section describes each mark available in ImageGear ART component, and its associated attributes. For each mark, the pertinent Attrxxx IGArtPage properties are listed. Note that certain Attrxxx properties apply to all marks (and are not shown for each individual mark):

  • AttrMarkIndex
  • AttrMarkType
  • AttrGroup
NOTE: Some ART marks, such as Attach-a-Note, Text Stamp, Typed Text, may require Wang compatibility mode enabled to be saved properly. On the contrary the Highlighter mark should be saved without Wang compatibility mode on.
TIP: The Kodak Imaging for Windows product included with Windows can process ART marks (either in separate .ART files or embedded in TIFF files), but only the Wang-compatible annotations.
NOTE: These constants define a range of user marks reserved for customer use. ImageGear will never use this range of the mark IDs for its purposes.
#define ART_MARK_USER_FIRST 1000
#define ART_MARK_USER_LAST 1999

Arrow

The Arrow mark enables the end user to create an arrow over an image or document. It allows users to point to areas of a document that may be of interest to its reader.

Edit Mode: Users of the completed application can create this mark by clicking the Arrow button with the left mouse button, dragging the image, and then releasing. The head of the arrow is drawn at the point where the left mouse button is first pushed, and the tail (end) of the arrow is set at the location where the left mouse button is released. Pressing the right mouse button after the mark is created activates the popup edit menu.

Description
A line with a defined starting and ending point. An arrow head appears at the starting point.
Attr Properties
AttrArrowType, AttrArrowLength, AttrForeColor, AttrHighlight, AttrLineSize, AttrPointArray, AttrPointCount

Attach-a-Note

The Attach-A-Note mark enables your end users to add notes to their annotated image or document.

Edit Mode: In the edit mode, end users create this mark by clicking the Attach-A-Note button with the left mouse button and then dragging the resulting rectangle over the area to be annotated.

Pressing the right mouse button activates the popup menu that enables users to change the font or the background colors of the note.

The Choose Font option displays a dialog box that allows users to change text properties. If the application is in Edit mode, and an end user wants to modify the text, they simply double-click the left mouse button when the cursor is over the note. The cursor appears at the beginning of the text to allow editing.

The Set Background Color option enables end users to change the color of the note. When this option is selected, a dialog box appears with a range of options.

Description
A colored rectangle that contains text.
Attr Properties
AttrBackColor, AttrBounds, AttrForeColor, AttrText, AttrFont, AttrDisablePPM, AttrTextAlign

Audio

The Audio mark enables end users to hear sounds when annotating an image or document. It is useful for drawing attention to a particular area of a text or image file. This mark plays a waveform audio file (.WAV).

Edit Mode: In Edit mode, end users create this mark by clicking on the Sound button with the left mouse button and then dragging the mark (a loud-speaker-shaped bitmap) to its destination. To display the dialog box, the user double-clicks the left mouse button on the loud-speaker. This allows the user to specify the name of the .WAV file that plays during Run mode.

When the application is in the Run mode, the cursor changes to a pointing hand when it passes over the loud-speaker bitmap. As the mark is activated (makes a sound), lines representing sound waves appear and disappear from the end of the loud-speaker.

Description
A sound file (.wav) included by reference. If the file is not found when it is activated, an error returns.
Attr Properties
AttrBounds, AttrFileName

Button

The Button mark places a programmable button on an image. For example, a button can be programmed to zoom into part of an image. Actions are programmed by adding code to the MouseNotify event.

Edit Mode: In the Edit mode, end users create this mark by clicking on the Button button with the left mouse button and then dragging the resulting mark to its destination. The button can be resized by dragging the resize handles. You can set your application to respond to a right-mouse click by displaying the properties box and selecting the appropriate property. Your user can set several attributes for a button, including font, foreground color, background color and text.

When the application is in Run mode, the cursor changes to a pointing hand when it passes over the Button bitmap.

Description
A rectangular or oval button assigned to perform certain actions.
Attr Properties
AttrForeColor, AttrBackColor, AttrBounds, AttrFont, AttrText, AttrDisablePPM

Encryption

The Encryption mark enables your users to scramble all or part of the image.

Edit mode: End users create this mark by clicking the Encryption button with the left mouse button and then dragging the resulting rectangle over the area to be scrambled.

NOTE: Encrypted marks cannot overlap

Description
A scrambled rectangle in the image. The operation is reversible if the correct cypher is applied.
Attr Properties
AttrBounds, AttrPassword

Filled Ellipse

The Filled Ellipse mark enables end users to cover areas of an image or document with an ellipse.

Edit Mode: In the edit mode, end users create this mark by clicking the Filled Ellipse button with the left mouse button, dragging the image, and then releasing the left mouse button. Pressing the right mouse button after the mark is created activates the popup edit menu.

Description
A filled ellipse whose boundaries are defined by a rectangle. Two points define the rectangle; an upper left point and a bottom right point.
Attr Properties
AttrBounds, AttrForeColor, AttrHighlight, AttrLineSize

Filled Polygon

The Filled Polygon mark enables the end user to cover areas of an image or document with a polygon.

Edit Mode: To create a Filled Polygon mark, end users:

  1. Click the left mouse button at the point where the polygon starts.
  2. Drag the mouse to the location of a vertice and click the left mouse button.
  3. Repeat step 2 to add the desired number of vertices to the polygon, clicking the left mouse button to add a vertice.
  4. Double-click the left mouse button to complete the polygon.
  5. Press the right mouse button after the mark is created to activate the popup Edit menu.

    6. Description
    A series of lines where the starting point of line 1 is the same as the ending point of line n. The resulting polygon is filled with a solid color.
    Attr Properties
    AttrBounds, AttrForeColor, AttrHighlight, AttrLineSize, AttrPointCount, AttrPointArray

Filled Rectangle

The Filled Rectangle mark enables end users to cover areas of an image or document with a rectangle.

Edit Mode: In Edit mode, end users create this mark by clicking the Filled Rectangle button with the left mouse button and then dragging the resulting rectangle over the items to be covered. Pressing the right mouse button after the mark is created activates the popup edit menu.

Description
A rectangle with a filled center.
Attr Properties
AttrBounds, AttrForeColor, AttrHighlight

Form

The Form mark enables the developer to insert a bitmap image in a document or image. The inserted image must be the same size as the image or document it covers and must be one bit per pixel.

The Form mark is not on the toolbar. To use this mark the developer must cal MarkCreate method. End users cannot access this mark.

Description
A black and white image included by an indirect reference. Only one Form mark is allowed per image. It is placed on top of the base image before all other marks. If the image is not found at display time, an error is returned.
Attr Properties
AttrFileName, AttrTransparent

Freehand Line

The Freehand Line mark enables the end user to use freehand drawing for annotation. With this mark, end users create drawings as though they are using a pen and paper.

Edit Mode: In Edit mode, end users create this mark by clicking the Freehand Line button with the left mouse button, dragging the image, and then releasing the left mouse button. Pressing the right mouse button after the mark is created activates the popup edit menu.

Description
A series of lines where the starting point of line n+1 is the same as the ending point of line n.
Attr Properties
AttrForeColor, AttrHighlight, AttrLineSize, AttrPointCount, AttrPointArray

Highlighter

The Highlighter mark enables end users to highlight areas of their annotated image or document.

Edit Mode: In Edit mode, end users:

  1. Create this mark by clicking the Highlighter button with the left mouse button and then dragging the resulting rectangle over the items they wish to cover.
  2. The resulting rectangle highlights whatever is underneath it.
  3. Pressing the right mouse button after the mark is created user activates the popup Edit menu.

    4. Description
    A colored rectangle that highlights part of the image.
    Attr Properties
    AttrBounds, AttrForeColor

Hollow Ellipse

The Hollow Ellipse mark enables the end user to create a hollow ellipse to surround important areas.

Edit Mode: In Edit mode, end users of the completed application create this mark by clicking the Hollow Ellipse button with the left mouse button, dragging the image, and then releasing the left mouse button. Pressing the right mouse button after the mark is created activates the popup edit menu.

Description
A hollow ellipse whose boundaries are defined by a rectangle. Two points define the rectangle, an upper left point and a bottom right point.
Attr Properties
AttrBounds, AttrForeColor, AttrHighlight, AttrLineSize

Hollow Polygon

The Hollow Polygon mark enables the end user to surround areas of an image or document with a polygon.

Edit Mode: To create a Hollow Polygon mark, end users:

  1. Click the left mouse button at the point where the polygon starts.
  2. Drag and click the left mouse button to create each vertice you want to add.
  3. Double-click the left mouse button to complete the polygon.
  4. Press the right mouse button after the mark is created to activate the popup edit menu.

    5. Description
    A series of lines where the starting point of line 1 is the same as the ending point of line n.
    Attr Properties
    AttrForeColor, AttrHighlight, AttrLineSize, AttrPointArray, AttrPointCount

Hollow Rectangle

The Hollow Rectangle mark enables users to surround areas of an image or document with a hollow rectangle.

Edit Mode: In Edit mode, end users of your application create this mark by clicking the Hollow Rectangle button with the left mouse button and then dragging the resulting rectangle over the items to be surrounded. Pressing the right mouse button after the mark is created activates the popup edit menu.

Description
A rectangle with a center that is not filled.
Attr Properties
AttrBounds, AttrForeColor, AttrHighlight, AttrLineSize

Hot Spot

The Hot Spot mark enables the end user to define an invisible region in a document or image that can be used to hold hidden messages.

Edit Mode: In Edit mode, end users create this mark by clicking the Hot Spot button with the left mouse button, dragging the image, and then releasing the left mouse button. When the left mouse button is released, the resulting rectangle becomes the hot spot region. It remains visible while the application is in edit mode. Pressing the right mouse button after the mark is created activates the popup edit menu.

Run Mode: When a user passes the cursor over this region, the cursor changes, indicating that there is something special about the contents within the invisible region. If the user clicks the left mouse button while the cursor is in the region, your application sends a message detailing the information about the contents of the region.

NOTE: The Hot Spot region is visible only when the application is in Edit mode.

Description
An invisible rectangle over part of an image. When the cursor passes over the area, it changes, indicating that the area has a special meaning.
Attr Properties
AttrBounds, AttrForeColor

Image Embedded

The Image Embedded mark enables the end user to embed a bitmap image in a document or image.

Edit Mode: In Edit mode, end users embed an image by clicking the Image Embedded button with the left mouse button, dragging the image, and then releasing the left mouse button. When the left mouse button is released, the image becomes imbedded. Once the bitmap is in place on the annotation window, it can be re-sized by using the left mouse button. Pressing the right mouse button over the mark to activate the popup edit menu.

Image Embedded marks are intended for use with bitmaps that use no more than the standard 20 Windows colors. Therefore, 1-bit and 4-bit bitmaps are allowed. If you try to display an 8-bit bitmap in the mark, it is displayed using only the standard 20 colors.

Description
An embedded image.
Attr Properties
AttrBitmap, AttrBounds, AttrDIB, AttrTransparent, AttrImageAlign, AttrImageAspect, AttrImageFit

Image Reference

The Image Reference mark enables the end user to include an image by reference in a document or image.

Edit Mode: In Edit mode, end users reference an image by clicking the Image Reference button with the left mouse button, dragging the image, and then releasing the left mouse button. When the left mouse button is released, an image is displayed. To insert an image, press the right mouse button over the mark to activate the popup Edit menu and choose Properties. Select the image you wish to reference.

Description
An image included by reference. If the image is not found at display time, an error is returned.
Attr Properties
AttrBounds, AttrFileName, AttrTransparent, AttrImageAlign, AttrImageAspect, AttrImageFit

Pin Up Text

The Pin Up Text mark enables the user to create a mark that appears to be tacked onto the image with a push pin.

Edit Mode: This mark can have an optional label. The label indicates which data can be obtained by clicking on the pin in while in Run mode. You can add code to the MouseNotify event to display additional data when the push pin is pressed

Description
A push pin that has an optional description label indicating what data can be retrieved when the mark is activated.
Attr Properties
AttrForeColor, AttrBackColor, AttrBounds, AttrFont, AttrText, AttrDisablePPM, AttrTextAlign

Polyline

The Polyline mark enables the end user to create several connected straight lines by dragging and clicking the mouse.

Edit Mode: To create a Polyline mark in an application, end users:

  1. Click the left mouse button at the point where the polyline starts.
  2. Drag the left mouse button to the location of a vertice.
  3. Drag and click the left mouse button to create each additional vertice.
  4. Move the cursor to the location where the polyline ends.
  5. Double-click the left mouse button.

Pressing the right mouse button after the mark is created activates the popup Edit menu.

Description
A series of lines such that the starting point of line n+1 is the same as the ending point of line n.
Attr Properties
AttrForeColor, AttrHighlight, AttrLineSize, AttrPointArray, AttrPointCount, AttrArcRadius,

Protractor

The Protractor mark enables the end user to create an angle that displays the arc and the angle measurement.

Edit Mode: To create a measured angle, end users:

  1. Click the protractor button.
  2. Drag the mouse to create the first line of the angle.
  3. Click the left mouse button to end the first line. This click creates the vertex and begins the second line.
  4. Click the left mouse button where you want your second line to end. The measured angle is complete.
  5. Press the right mouse button after the mark is created to activate the popup Edit menu.

    6. Description
    Two lines that define an arc. The angle of the arc is displayed at the vertex of the lines.
    Attr Properties
    AttrForeColor, AttrHighlight, AttrLineSize, AttrPointArray, AttrPointCount, AttrPrecision

Redaction

The Redaction mark enables end users to hide or black out areas of their annotated image or document.

Edit Mode: In Edit mode, end users create this mark by clicking the Redaction button with the left mouse button and then dragging the resulting rectangle over the items they wish to cover. The rectangle covers whatever is underneath it. Pressing the right mouse button after the mark is created activates the popup Edit menu.

Description
A colored rectangle that permanently blocks out part of the image.
Attr Properties
AttrBounds, AttrForeColor

RTF

The RTF Edit mark enables end users to edit, load, and display RTF text.

Edit mode: In Edit mode, end users create this mark by clicking the RTF edit button with the left mouse button and then dragging the resulting rectangle over the area to be annotated. The RTF Edit window allows users to load RTF files and edit the RTF text using the menu and toolbar buttons.

Description
An object that allows editing and displaying RTF text
Attr Properties
AttrBounds, AttrText, AttrFont, AttrDisablePPM

Ruler

The Ruler mark enables the end user to create a line that displays its measurement.

Edit Mode: To create a measured line, the end users:

  1. Click on the Ruler button.
  2. Click the left mouse button where the end of the line begins and drag it to the end of the line.
  3. Release the left mouse button to complete the line.
  4. Press the right mouse button to activate the popup Edit menu.

    5. Description
    A line used to measure the distance with a predefined list of measurement units. The distance between points is displayed at the second point.
    Attr Properties
    AttrForeColor, AttrHighlight, AttrLineSize, AttrPointArray, AttrPointCount, AttrMeasurementUnits, AttrPrecision, AttrText

Straight Line

The Straight Line mark enables the end user to create straight lines on an image or document.

Edit Mode: To create this mark, end users:

  1. Click on the Straight Line button with the left mouse button.
  2. Click on the left mouse button at the point where the line shoud begin.
  3. While holding the left mouse button down, drag the line to the point at which the line should end.
  4. Release the left mouse button to complete the line.
  5. Press the right mouse button after the mark is created to activate the popup Edit menu.

    6. Description
    A line with a defined starting and ending point.
    Attr Properties
    AttrForeColor, AttrHighlight, AttrLineSize, AttrPointArray, AttrPointCount

Text from File

The Text From File mark enables the end user to add descriptive text to an annotated image or document. The text can be created in various fonts, sizes, colors, and even angles of presentation. The text appears to lay over the original image or document.

NOTE: If you wish to rotate the mark, you must use a Windows True Type font.

Edit mode: End users create this mark by clicking the Text From File button with the left mouse button and then dragging the rectangle over the area to be annotated. This rectangle helps to position the Text annotations. Text annotations are modified when the application is in Edit mode. To modify the text, the end user double-clicks the left mouse button when the cursor is over the text mark. The cursor appears at the beginning of the text, and transforms to allow editing.

While creating this mark and entering text, end users use the right mouse button to access a popup menu that enables them to change several attributes of the mark.

  • Choose Fontoption allows users to select the color of the text fonts.
  • Adjust Angle option enables end users to rotate the text mark with a dialog box. The square at the lower left corner of the Adjust Angle dialog box shows the appearance of the text mark with the selected text display angle.
  • Set Background Color option is identical to the one available while creating the Attach-a-Note mark.
  • Set Background Mode option enables end users to change the visibility level of the region within the Text mark. When this option is selected, a dialog box appears.
      • If Transparent is selected, the interior of the text mark is not visible; only the text is visible.
      • If Opaque is selected, end users are not able to see through the interior of the text mark.
      • If Tinted is selected, the text mark resembles a tinted glass. End users are able to see through the mark.
NOTE: If end users create a text mark without any text with a Transparent background, the resulting mark will exist but will not be visible.

Description
Text supplied from a file.
Attr Properties
AttrBounds, AttrFileName, AttrForeColor, AttrFont, AttrText, AttrDisablePPM

Text Stamp

The Text Stamp mark allows the end user to annotate documents and images with text.

Edit Mode: In Edit mode, end users create this mark by clicking on the Text Stamp button with the left mouse button. Pressing the right mouse button after the mark is created activates the popup Edit menu, which allows you to enter the text of the stamp.

Description
Text that contains a pre-defined string. The string may include, for example, the date and/or time that the mark was applied.
Attr Properties
AttrBounds, AttrFont, AttrForeColor, AttrText, AttrDisablePPM, AttrTextAlign

There are several codes that can be embedded into the string stored into the szAnotText field of the ART_TEXTPRIVDATA structure of the ART_BLOCK_ANTEXT named block. You may use these code when setting the AttrText property. For 32-Bit Products:

%a:
Abbreviated weekday name
%:
A Full weekday name
%b:
Abbreviated month name
%B:
Full month name
%c:
Local date and time representation appropriate
%d:
Day of the month in decimal number (01 - 31) format
%H:
Hour in the 24-hour format (00 - 23) format
%I:
Hour in the 12-hour format (01 - 12) format
%j:
Day of year as decimal number (001 - 366) format
%m:
Month in decimal number (01 - 12) format
%M:
Minute in decimal number (00 - 59) format
%p:
Current locale's A.M./P.M. indicator for the 12-hour clock
%S:
Seconds in decimal number (00 - 59) format
%U:
Week of year in decimal number format, with Sunday as the first day of the week (00 - 51)
%w:
Weekday in decimal number (0 - 6; Sunday is 0) format
%W
Week of year in decimal number format, with Monday as the first day of the week (00 - 51)
%x
Date representation for current locale
%X
Time representation for current locale
%y
Year without century, in decimal number (00 - 99) format
%Y
Year with century, in decimal number format
%z,%Z
Time-zone name or abbreviation; no characters if the time zone is unknown
%%
Percent sign

Typed Text

The Typed Text mark enables the end user to add descriptive text to their annotated image or document. The text can be created in various fonts, sizes, colors. The text appears over the original image or document.

NOTE: If you wish to rotate the mark, you must use a Windows True Type font (this is a Windows limitation).

Edit mode: End users create this mark by clicking the Typed Text button with the left mouse button and then dragging the resulting rectangle over the area to be annotated. This rectangle helps to position the Text annotations. Text annotations are easily modified when the application is in the Edit mode. To modify it, the end user double-clicks the left mouse button when the cursor is over the text mark. The cursor appears at the beginning of the text, and transforms to allow editing.

NOTE: If end users create a text mark without any text with a Transparent background, the resulting mark will exist but will not be visible.

Description
A series of characters entered from the keyboard.
Attr Properties
AttrBounds, AttrFont, AttrForeColor, AttrText, AttrDisablePPM, AttrTextAlign


ART Component API Reference

The ImageGear ART component exposes the following objects:

IGArtCtl
This is the ActiveX control that you place in the window for your application, and which provides ART functionality.
IGArtEventParams
Specifies parameters for IGArtCtl events.
IGArtMouseCursor
Specifies mouse cursor attributes used by MouseIconQueryEx.
IGArtPage
This is the ART analog of an IGPage - it contains the ART marks that are associated with the corresponding IGPage.

The following enumerations are used in ImageGear ART component:

enumIGArtArrowType
Enumerates the different types of Arrow marks.
enumIGArtCursorType
Enumerates the different cursor shapes.
enumIGArtControlOption
Enumerates ART control options that specifies default behaviour of current IGArtPage annotation objects..
enumIGArtMarkType
Enumerates the different types of ART marks.
enumIGArtMeasurementUnits
Enumerates the different measurement units that can be displayed for a Ruler mark.
enumIGArtModifyReason
Enumerates the different reasons that the ModifyNotify event is rasied.
enumIGArtMouseReason
Enumerates the different reasons that the MouseNotify event is rasied.
enumIGArtPenStyle
Enumerates the different pen styles that ART can use when drawing lines, rectangles and ellipses.
enumIGArtToolBarReason
Enumerates the different reasons that the ToolBarNotify event is rasied.
enumIGArtUserModeType
Enumerates the different ART operating mode (e.g., Edit mode, View mode, etc.).


IGArtCtl

Group: Control

Description:

IGArtCtl is the ActiveX control that you place in the user interface of your application, and which provides the main ImageGear ART Component functionality.

Interfaces:

IIGComponent extends IDispatchEx
IGArtCtl extends IIGComponent

Class Members:

ComponentInfo
property
Provides access to the IGComponentInfo object for IGArtCtl. The IGComponentInfo object identifies the particular version of IGArtCtl installed in the computer.
ComponentInterface
property
Provides access to the IIGComponent interface for IGArtCtl. Used in IGCoreCtl.AssociateComponent call.
hWndToolBar
property
Handle to the toolbar window.
CreateArtPage
method
Creates an IGArtPage in preparation for creating ART marks.
ToolBar
method
Causes the ART mark-creation toolbar to be displayed.
ToolBarButtonCheck
method
Set the visual indicator for a toolbar button.
ToolBarButtonEnable
method
Enable/disable a toolbar button.
ToolBarButtonHide
method
Hide a toolbar button.
ToolBarButtonText
method
Set the tooltip text for a toolbar button.
ToolBarIsButtonChecked
method
Test to see if the visual indicator is set for a toolbar button.
ToolBarIsButtonEnabled
method
Test to see if a toolbar button is enabled.
ToolBarIsButtonHidden
method
Test to see if a toolbar button is hidden.
CreateNotify
event
Called when a mark is created, after the user has dragged the mark rectangle. For marks that contain text, this is called before the text has been entered.
DeleteNotify
event
Called when a mark is deleted.
ModifyNotify
event
Called when a mark is modified.
MouseNotify
event
Called when a mouse event (click, etc.) occurs in a mark.
PostCreateNotify
event
Called when a mark is created. For marks that contain text, this is called when the user clicks the mouse button to signal that the text is complete.
PreCreateNotify
event
Called when a mark is created, before the user begins to drag the mark rectangle..
PreModifyNotify
event
Called when the mark goes into text-edit mode.
SelectNotify
event
Called when a mark is selected.
ToolBarNotify
event
Called when the user clicks on a toolbar button.


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGArtCtl. The IGComponentInfo object identifies the particular version of IGArtCtl installed in the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
ig_artCtrl_vb6.exe


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGArtCtl. Used in IGCoreCtl . AssociateComponent call.

Property Summary:

Data Type:
IIGComponent
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
ig_artCtrl_vb6.exe


CreateArtPage

Group: Method

Description:

Creates an IGArtPage in preparation for creating ART marks. If your application displays more than one image at a time, and allows the end-user to apply ART marks to more than one of those images, then your application must set up an IGArtPage for each IGPage/IGPageDisplay pair. Once your application calls CreateArtPage, the IGPage, IGPageDisplay and IGArtPage objects become dependent on each other. At the end of processing, save the ART marks (with FileExport, ImageBurnIn, or SaveAnnotations), then destroy the IGArtPage object.

Declaration:

CreateArtPage(pPage As IGPage, pPageDisplay As IGPageDisplay,
hWnd As Long) As IGArtPage

Parameters:

pPage
IGPage containing the image to which the annotations apply.
pPageDisplay
IGPageDisplay currently
hWnd
Set this to the HWND for the window in which the image that is to be annotated is displayed. This will typically be specified as IGPageViewCtl1.hWnd.

Return value:

The IGArtPage object used to hold the marks for the image.

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateNotify

Group: Event

Description:

The CreateNotify event is raised when you create a mark and when you load the .ART file. When you load the .ART file, this event is called once for each mark in the file. In most cases, when you create a mark or load an .ART file, a ModifyNotify event is also raised.

The following types of marks do not generate a ModifyNotify event when they are created or loaded:

  • Hollow & Filled Rectanle
  • Hollow & Filled Ellipse
  • Hot Spot
  • RedAction
  • Highlighter

The rest of the marks cause a ModifyNotify event to process, because of the internal handling of the load processing.

Your event handler determines whether the mark is created or not. If CreateFlag is set to True, the mark is created; if CreateFlag is set to False, the mark is not created.

NOTE: This event occurs part-way through the actual creation of the mark. For example, if the user is creating a Typed Text mark, PreCreateNotify is raised when the mouse is first pressed. The location where the mouse was pressed becomes the upper-left corner of the mark. The point where the user releases the mouse button becomes the lower-right corner. At that time CreateNotify is raised. The user then types the text into the mark, and then clicks the mouse-button again. At that time PostCreateNotify is raised.

Declaration:

Sub CreateNotify(pPage As IGArtPage, MarkIndex As Long, MarkType
As Long, CreateFlag As IGArtEventParams)

Parameters:

pPage
The IGArtPage in which the mark will be created.
MarkIndex
The index that will be assigned to the new mark, if it is successfully created.
MarkType
The type of the new mark - an enumIGArtMarkType value. Note that there is no markSelect type mark - that value is used to identify the Select button on the ToolBar.
CreateFlag
Your event handler should set longParam member of IGArtEventParams to 1 to tell ImageGear to continue process of the mark creation, or set it to 0 to tell ImageGear to stop the mark creation.

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DeleteNotify

Group: Event

Description:

This event is raised whenever a mark is deleted.

Your event handler determines whether the mark is created or not. If DeleteFlag is set to True, the mark is deleted; if DeleteFlag is set to False, the mark is not deleted.

Declaration:

Sub DeleteNotify(pPage As IGArtPage, MarkIndex As Long,
DeleteFlag As IGArtEventParams)

Parameters:

pPage
The IGArtPage in which the mark will be created.
MarkIndex
The index of the mark that is to be deleted.
DeleteFlag
Your event handler should set longParam member of IGArtEventParams to 1 to tell ImageGear to continue the process of the mark deletion, or set it to 0 to tell ImageGear to stop the mark deletion.

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


hWndToolBar

Group: Property

Description:

Handle to the toolbar window.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read-only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
N/A


ModifyNotify

Group: Event

Description:

This event is raised whenever a mark has been modified for any of the reasons listed in the enumIGArtModifyReason enumeration. It is raised after the modification is complete.

NOTE: This event occurs after the mark modifications are complete. For example, if the user changes the text in a Typed Text mark, PreModifyNotify is raised after the user has changed the text and then clicked outside of the mark. ImageGear then changes the text stored in the IGArtPage for the mark. After the change has been made, ModifyNotify is raised.

Declaration:

Sub ModifyNotify(pPage As IGArtPage, MarkIndex As Long, MarkType
As Long, Reason As Long)

Parameters:

pPage
The IGArtPage in which the mark has been modified.
MarkIndex
The index of the mark. Note that when the Reason is ART_MODIFY_INDEX, this is the new index for the mark.
MarkType
The type of the mark - an enumIGArtMarkType value. Note that there is no markSelect type mark - that value is used to identify the Select button on the ToolBar.
Reason
The reason that ModifyNotify has been raised - an enumIGArtModifyReason value.

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseNotify

Group: Event

Description:

This event is only raised for IGArtPage objects that are in Run Mode (see UserMode and enumIGArtUserModeType). It is raised whenever mouse-events occur for a mark. The various mouse-events are listed in the enumIGArtMouseReason enumeration.

Declaration:

Sub MouseNotify(pPage As IGArtPage, MarkIndex As Long, Reason As
Long, PointX As Long, PointY As Long)

Parameters:

pPage
The IGArtPage in which the mark has been modified.
MarkIndex
The index of the mark.
Reason
The reason that MouseNotify has been raised - an enumIGArtMouseReason value.
PointX
Gives the X screen coordinate of the position of the mouse at the time of the event
PointY
Gives the Y screen coordinate of the position of the mouse at the time of the event

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


NotifyWindowTitle

Group: Property

Description:

This property is used to modify the default title of ART GUI notification messages.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read/Write
Settings:
Any string
Bits Per Pixel:
N/A
Sample:
ig_artCtrl_vb6.exe


PostCreateNotify

Group: Event

Description:

This event is evoked just after the mark has been created, and before it is displayed. This event gives you the opportunity to change any of the mark's attributes.

NOTE: This event occurs at the very end of the actual creation of the mark. For example, if the user is creating a Typed Text mark, PreCreateNotify is raised when the mouse is first pressed. The location where the mouse was pressed becomes the upper-left corner of the mark. The point where the user releases the mouse button becomes the lower-right corner. At that time CreateNotify is raised. The user then types the text into the mark, and then clicks the mouse-button again. At that time PostCreateNotify is raised.

Declaration:

Sub PostCreateNotify(pPage As IGArtPage, MarkIndex As Long,
MarkType As Long)

Parameters:

pPage
The IGArtPage in which the mark has been modified.
MarkIndex
The index of the mark that has been created.
MarkType
The type of the mark - an enumIGArtMarkType value. Note that there is no markSelect type mark - that value is used to identify the Select button on the ToolBar.

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PreCreateNotify

Group: Event

Description:

This event is raised at the beginning of the process of creating a mark.

Your event handler determines whether the mark is created or not. If CreateFlag is set to True, the mark is created; if CreateFlag is set to False, the mark is not created.

NOTE: This event occurs at the very beginning of the actual creation of the mark. For example, if the user is creating a Typed Text mark, PreCreateNotify is raised when the mouse is first pressed. The location where the mouse was pressed becomes the upper-left corner of the mark. The point where the user releases the mouse button becomes the lower-right corner. At that time CreateNotify is raised. The user then types the text into the mark, and then clicks the mouse-button again. At that time PostCreateNotify is raised.

Declaration:

Sub PreCreateNotify(pPage As IGArtPage, MarkIndex As Long,
MarkType As Long, CreateFlag As IGArtEventParams)

Parameters:

pPage
The IGArtPage in which the mark will be created.
MarkIndex
The index that will be assigned to the new mark, if it is successfully created.
MarkType
The type of the new mark - an enumIGArtMarkType value. Note that there is no markSelect type mark - that value is used to identify the Select button on the ToolBar.
CreateFlag
Your event handler should set longParam member of IGArtEventParams to 1 to tell ImageGear to continue the process of the mark creation, or set it to 0 to tell ImageGear to stop the mark creation.

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PreModifyNotify

Group: Event

Description:

This event is raised after the user has modified the mark for any of the reasons listed in enumIGArtModifyReason, but before the changes have been recorded in the IGArtPage.

Your event handler determines whether the modifications will be recorded. If ModifyFlag is set to True, then the changes are recorded; if ModifyFlag is set to False, they are not.

NOTE: This event occurs part-way through the modification process. For example, if the user changes the text in a Typed Text mark, PreModifyNotify is raised after the user has changed the text and then clicked outside of the mark. ImageGear then changes the text stored in the IGArtPage for the mark. After the change has been made, ModifyNotify is raised.

Declaration:

Sub PreModifyNotify(pPage As IGArtPage, MarkIndex As Long,
MarkType As Long, Reason As Long, ModifyFlag As
IGArtEventParams)

Parameters:

pPage
The IGArtPage in which the mark is being modified.
MarkIndex
The index of the mark that is being modified.
MarkType
The type of the new mark - an enumIGArtMarkType value. Note that there is no markSelect type mark - that value is used to identify the Select button on the ToolBar.
Reason
The reason that PreModifyNotify has been raised - an enumIGArtModifyReason value.
ModifyFlag
Your event handler should set longParam member of IGArtEventParams to 1 to tell ImageGear to record the changes, or set it to 0 to tell ImageGear to not.

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SelectNotify

Group: Event

Description:

This event is raised when the selection state of a mark changes.

Declaration:

Sub SelectNotify(pPage As IGArtPage, MarkIndex As Long,
fSelectionState As Boolean, SelectFlag As IGArtEventParams)

Parameters:

pPage
The IGArtPage in which the mark will be selected or unselected.
MarkIndex
The index of the mark that is to be selected or unselected.
fSelectionState
True means the mark is going to be selected, False means it is going to be unselected.
SelectFlag
Your event handler should set longParam member of IGArtEventParams to 1 to allow to change the selection state, or set it to 0 to prevent the change.

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBar

Group: Method

Description:

This method shows (or hides) the ART ToolBar. Note that your application must implement 3 event handlers to make the ToolBar operate - see Creating a Mark via the ToolBar.

Declaration:

ToolBar(hWndParent As Long, bShow As Boolean, lXPosition As
Long, lYPosition As Long)

Parameters:

hWnd
Set this to the HWND for the main window in your application. It will be used as the parent for the ToolBar window.
bShow
True causes the ToolBar to be displayed, False causes it to be hidden.
lXPosition
Screen X-coordinate for the upper-left corner of the ToolBar.
lYPosition
Screen Y-coordinate for the upper-left corner of the ToolBar.

Return value:

N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarButtonCheck

Group: Method

Description:

Sets the visual appearance of a ToolBar button.

Declaration:

ToolBarButtonCheck(ButtonID As Long, bState As Boolean)

Parameters:

ButtonID
The button to change - an enumIGArtMarkType value.
bState
True means to make the visual appearance that of a "down" button. False means to make the visual appearance that of an "up" button.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarButtonEnable

Group: Method

Description:

Enables or disables a ToolBar button.

Declaration:

ToolBarButtonEnable(ButtonID As Long, bState As Boolean)

Parameters:

ButtonID
The button to change - an enumIGArtMarkType value.
bState
True means to enable the button. False means to disable the button.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarButtonHide

Group: Method

Description:

Hides or shows a ToolBar button.

Declaration:

ToolBarButtonHide(ButtonID As Long, bState As Boolean)

Parameters:

ButtonID
The button to change - an enumIGArtMarkType value.
bState
True means to hide the button. False means to show the button.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarButtonText

Group: Method

Description:

Changes the tooltip text for a ToolBar button.

Declaration:

ToolBarButtonText(ButtonID As Long, Text As String)

Parameters:

ButtonID
The button to change - an enumIGArtMarkType value.
Text
The text to use for the button's tooltip.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarIsButtonChecked

Group: Method

Description:

Determines the visual appearance of a ToolBar button.

Declaration:

ToolBarIsButtonChecked(ButtonID As Long) As Boolean

Parameters:

ButtonID
The button to check - an enumIGArtMarkType value.

Return value:

True means the visual appearance is that of a "down" button. False means the visual appearance is that of an "up" button.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarIsButtonEnabled

Group: Method

Description:

Determines if a ToolBar button is enabled.

Declaration:

ToolBarIsButtonEnabled(ButtonID As Long) As Boolean

Parameters:

ButtonID
The button to check - an enumIGArtMarkType value.

Return value:

True means the button is enabled. False means the button is disabled.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarIsButtonHidden

Group: Method

Description:

Determines if a ToolBar button is hidden.

Declaration:

ToolBarIsButtonHidden(ButtonID As Long) As Boolean

Parameters:

ButtonID
The button to check - an enumIGArtMarkType value.

Return value:

True means the button is hidden. False means the button is visible.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ToolBarNotify

Group: Event

Description:

This event is raised whenever the user changes the button selection in the ToolBar.

NOTE: Your application must implement this event handler to make the ToolBar operate - see Creating a Mark via the ToolBar.

Declaration:

Sub ToolBarNotify(ButtonID As Long, Reason As Long)

Parameters:

ButtonID
The button that was selected (if Reason is ART_GUI_TOOLBAR_BUTTON_SELECTED) - an enumIGArtMarkType value. Note that there is no markSelect type mark - that value is used to identify the Select button on the ToolBar.
Reason
The reason that ToolBarNotify has been raised - an enumIGArtToolBarReason value.

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGArtEventParams

Type: Class

Description:

Parameters for IGArtCtl events.

Class Members:

longParam
property
Specifies whether to continue the event or discontinue.


longParam

Group: Property

Description:

Specifies whether to continue the event or discontinue. A value of 1 continues the event; a value of 0 cancels the action.

Property Summary:

Data Type:
Long
Default Value:
1
Access:
Read/Write
Settings:
1, 0
Bits Per Pixel:
N/A
Sample:
ig_artCtrl_vb6.exe


IGArtMouseCursor

Type: Class

Description:

Specifies mouse cursor attributes used by MouseIconQueryEx.

Class Members:

hCursor
property
Handle to the cursor for nCursorID cursor type.
ipictCursor
property
The icon for nCursorID cursor type.
nCursorID
property
One of the enumIGArtCursorType values.


hCursor

Group: Property

Description:

Handle to the cursor for nCursorID cursor type.

Property Summary:

Data Type:
wireHICON
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
N/A


ipictCursor

Group: Property

Description:

The icon for nCursorID cursor type.

Property Summary:

Data Type:
IPictureDisp
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
N/A


nCursorID

Group: Property

Description:

One of the enumIGArtCursorType values.

Property Summary:

Data Type:
enumIGArtCursorType
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGArtCursorType
Bits Per Pixel:
N/A
Sample:
N/A


IGArtPage

Group: Object

Description:

This object contains the collection of ART marks for an image. Every time the user operates a button on the ToolBar, another mark is added to the collection. In addition to holding the collection of marks, this object is used for the following purposes:

    • Add and delete marks.
    • Create and modify individual marks.
    • Manage the global attributes (attributes that are automatically applied to new marks as they are created)
    • Manage mark groups (groups can be used for various purposes - for example, to implement a "mark layer" capability in your application).
    • Loading and saving annotations (including "burning them in" to the image).

Interface:

IIGArtPage extends IIGObject

Class Members:

AttrArcRadius
property
Radius, in pixels, of the little arc drawn in a Protractor mark
AttrArrowLength
property
Arrowhead length, in pixels, of a Arrow mark
AttrArrowType
property
Arrowhead type of a Arrow mark
AttrBackColor
property
Background color of a Attach-a-Note, Button, or Pin Up Text mark
AttrBitmap
property
OLE Picture of a Image Embedded mark
AttrBounds
property
Rectangle, in image coordinates, of a mark
AttrDIB
property
DIB of a Image Embedded mark
AttrDisablePPM
property
Specifies whether the image PPM will be used to calculate font size for text annotations (Typed Text, Text From File, attach-a-note, Button, RTF, Pin-Up-Text, Text Stamp)
AttrFileName
property
FileName of a Form, Image Reference, Text from File or Audio mark
AttrFont
property
Font of a Attach-a-Note, Pin Up Text, Text from File, Text Stamp, or Typed Text mark.
AttrForeColor
property
Foreground color (color of text or color of line) of a mark
AttrGroup
property
Group to which a mark belongs.
AttrHighlight
property
Specifies whether a mark is highlighted.
AttrImageAlign
property
Alignment of a Image Embedded or Image Reference mark
AttrImageAspect
property
Aspect ratio of a Image Embedded or Image Reference mark
AttrImageFit
property
Fit mode of a Image Embedded or Image Reference mark
AttrLineSize
property
Width of line with which a mark is drawn.
AttrMarkIndex
property
Index of a mark.
AttrMarkType
property
Type of a mark
AttrMeasurementUnits
property
Measurement units of a Ruler mark
AttrPassword
property
Password for a Encryption mark
AttrPenStyle
property
Pen style (dashed, solid, etc.) of the line used to draw a mark
AttrPointArray
property
(x,y) vertices of a Freehand Line, Straight Line, Filled Polygon, Hollow Polygon, Polyline or Arrow mark
AttrPointCount
property
Count of (x,y) vertices of a Freehand Line, Straight Line, Filled Polygon, Hollow Polygon, Polyline or Arrow mark
AttrPrecision
property
Number of decimal digits displayed for a Protractor or Ruler mark
AttrText
property
Text of a Attach-a-Note, Pin Up Text, Text Stamp, or Typed Text mark.
AttrTextAlign
property
Text alignment of a Attach-a-Note, Pin Up Text, Text from File, Text Stamp, or Typed Text mark.
AttrTextOrientation
property
Gets or sets orientation of the text in a Attach-a-Note, Pin Up Text, Text Stamp, or Typed Text mark.
AttrTransparent
property
Specifies whether a Form, Image Embedded, or Image Reference mark is transparent.
GlobalAttrArcRadius
property
Value to use for AttrArcRadius for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrArrowLength
property
Value to use for AttrArrowLength for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrArrowType
property
Value to use for AttrArrowType for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrBackColor
property
Value to use for AttrBackColor for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrBitmap
property
Value to use for AttrBitmap for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrBounds
property
Value to use for AttrBounds for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrDIB
property
Value to use for AttrDIB for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrFileName
property
Value to use for AttrFileName for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrFont
property
Value to use for AttrFont for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrFontBold
property
Controls whether text in newly created marks will be bold or not.
GlobalAttrFontItalic
property
Controls whether text in newly created marks will be italic or not.
GlobalAttrFontName
property
Specifies the font to use for text in newly created marks.
GlobalAttrFontSize
property
Specifies the font size to use for text in newly created marks.
GlobalAttrFontStrikeout
property
Controls whether text in newly created marks will be strikeout or not.
GlobalAttrFontUnderline
property
Controls whether text in newly created marks will be underlined or not.
GlobalAttrForeColor
property
Value to use for AttrForeColor for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrGroup
property
Value to use for AttrGroup for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrHighlight
property
Value to use for AttrHighlight for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttributesShow
property
Causes the property sheet for the specified mark type to be shown, so that the user can set the various GlobalAttrXXX properties..
GlobalAttrLineSize
property
Value to use for AttrLineSize for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrMarkIndex
property
Value to use for AttrMarkIndex for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrMarkType
property
Value to use for AttrMarkType for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrMeasurementUnits
property
Value to use for AttrMeasurementUnits for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrPassword
property
Value to use for AttrPassword for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrPenStyle
property
Value to use for AttrPenStyle for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrPointArray
property
Value to use for AttrPointArray for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrPrecision
property
Value to use for AttrPrecision for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrText
property
Value to use for AttrText for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrTextAlign
property
Value to use for AttrTextAlign for the next MarkCreate() call or the next mark created from the toolbar.
GlobalAttrTextOrientation
property
A default value property - the value of this property will be used for AttrText whenever a new mark is created.
GlobalAttrTransparent
property
Value to use for AttrTransparent for the next MarkCreate() call or the next mark created from the toolbar.
MouseIconSet
property
Set the image used when the mouse is over a markor over one of the resize-handles for a mark..
Page
property
Returns the IGPage associated with this IGArtPage.
PageDisplay
property
Returns the IGPageDisplay associated with this IGArtPage.
Rotation
property
Causes the entire set of marks to be rotated by the amount specified in RotationAngle
RotationAngle
property
The amount that the entire collection of ART marks is to be rotated. This property is ignored if Rotation is False.
UserMode
property
Sets the ART component operating mode to edit, view or run.
AttrCreationTimeGet
method
Gets the date/time of when a mark was creaed.
AttrModifyTimeGet
method
Gets the date/time of when a mark was last modified.
EditCopy
method
Copy the currently selected mark(s) to the Windows clipboard.
EditCut
method
Cut the currently selected mark(s) to the Windows clipboard.
EditPaste
method
Create new mark(s) by pasting from the Windows clipboard.
EditPasteCount
method
Count of marks currently available for paste from the Windows clipboard.
EditUndo
method
Undo the last ART mark action.
EditUndoClear
method
Clear the ART mark "undo stack".
EditUndoCount
method
Count of reversible actions currently in the ART mark "undo stack".
EditUndoRecord
method
Enable or disable the ART mark "undo" processing.
FileAppend
method
Append the marks in an .ART file to the marks already in this IGArtPage.
FileExport
method
Save the marks in this IGArtPage to an .ART file.
FileImport
method
Load this IGArtPage with the marks in an .ART file.
GetControlOption
method
Obtains value of ART control option
GlobalAttrUserDataGet
method
Get application-specific data that will be saved with each mark as it is subsequently created.
GlobalAttrUserDataSet
method
Set application-specific data that will be saved with each mark as it is subsequently created.
GroupAccess
method
Set the access mode (view-only or edit) for all the marks in a group.
GroupBringToFront
method
Bring all the marks in a group to the front.
GroupDelete
method
Delete a group and all the marks in it.
GroupEditCopy
method
Copy all of the marks in a group to the Windows clipboard.
GroupEditCut
method
Cut all of the marks in a group to the Windows clipboard.
GroupSelect
method
Select all of the marks in a group.
GroupSendToBack
method
Send all of the marks in a group to the back.
GroupVisible
method
Controls whether the marks in a group are visible or not.
ImageBurnIn
method
Burn some or all of the marks in this IGArtPage into the image in the related IGPage.
InteractionProcess
method
Call this from your IGPageViewCtl mouse event handlers, so that the ART component can process the mouse event.
LoadAnnotations
method
Load this IGArtPage with the marks in an .ART file (specified by IGIOLocation, rather than by FileName).
MarkAccess
method
Set the access mode (view-only or edit) for a mark.
MarkAttributesShow
method
Show the property sheet for a specific mark.
MarkBringToFront
method
Bring a mark to the front.
MarkCount
method
Get the count of marks in this IGArtPage.
MarkCreate
method
Create a new mark.
MarkDelete
method
Delete a mark.
MarkFirst
method
Get the index of the first mark in this IGArtPage.
MarkHitTest
method
Used to determine if there is a mark at a given set of screen coordinates.
MarkIsAccessGranted
method
Used to detemine whether the access mode for the given mark is view-only or editable.
MarkIsSelected
method
Used to detemine whether the given mark is selected.
MarkIsVisible
method
Used to detemine whether the given mark is visible.
MarkModify
method
Apply the various AttrXXX properties to a specific mark.
MarkNext
method
Get the index of the next mark in this IGArtPage.
MarkPaint
method
Repaint a specific mark
MarkQuery
method
Set the AttrXXX properties of IGArtPage to be
MarkRotate
method
Rotate the image of the specified mark.
markSelect
method
Select the specified mark.
MarkSelectCount
method
Returns the count of currently selected marks.
MarkSelectedFirst
method
Returns the index of the first mark that is currently selected.
MarkSelectedNext
method
Returns the index of the next mark that is currently selected.
MarkSendToBack
method
Send the specified mark to the back.
MarkVisible
method
Make the specified mark visible or not.
MouseIconGet
method
Get the image used when the mouse is over a mark or over one of the resize-handles for a mark.
MouseIconIDQuery
method
Determine which cursor image would be used if the mouse were over a particular image-coordinate.
MouseIconQuery
method
Determine which cursor image would be used if the mouse were over a particular image-coordinate.
MouseIconQueryEx
method
Determine which cursor image would be used if the mouse were over a particular image-coordinate.
SaveAnnotations
method
Save the marks in this IGArtPage to a .ART file (specified by IGIOLocation rather than FileName).
SetControlOption
method
Changes value of ART control option
UserDataGet
method
Get application-specific data saved with a specific mark.
UserDataSet
method
Set application-specific data to be saved with a specific mark.


AttrArcRadius

Group: Property

Description:

Gets or sets the radius, in pixels, of the little arc drawn in a Protractor mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
As per GlobalAttrArcRadius
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrArrowLength

Group: Property

Description:

Gets or sets the arrowhead length, in pixels, of a Arrow mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
As per GlobalAttrArrowLength
Access:
Read-write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrArrowType

Group: Property

Description:

Gets or sets the arrowhead type of a Arrow mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
As per GlobalAttrArrowType
Access:
Read-write
Settings:
Use one of the enumIGArtArrowType values.
Bits Per Pixel:
N/A
Sample:
<none>


AttrBackColor

Group: Property

Description:

Gets or sets the background color of a Attach-a-Note, Button, or Pin Up Text mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
IGPixel
Default Value:
As per GlobalAttrBackColor
Access:
Read-write
Settings:
Any valid RGB value
Bits Per Pixel:
N/A
Sample:
<none>


AttrBitmap

Group: Property

Description:

Gets or sets the OLE Picture of a Image Embedded mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
IPictureDisp
Default Value:
As per GlobalAttrBitmap
Access:
Read-Write
Settings:
Any valid OLE picture object. Note that GlobalAttrBitmap and GlobalAttrDIB are mutually exclusive - use one or the other for a given mark.
Bits Per Pixel:
N/A
Sample:
<none>


AttrBounds

Group: Property

Description:

Gets or sets the rectangle, in image coordinates, of a mark. For marks like Hollow Rectangle, this is the size of the mark. For marks like Pin Up Text, this rectangle specifies the position, height and width of the mark Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
IGRectangle
Default Value:
As per GlobalAttrBounds
Access:
Read-Write
Settings:
The rectangle must be within the ImageRect of the IGPageDisplay.
Bits Per Pixel:
N/A
Sample:
<none>


AttrCreationTimeGet

Group: Method

Description:

Gets the date/time stamp of when a mark was created, returned as a string. Your application specifies the format of the string. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Declaration:

AttrCreationTimeGet(strFormat As String) As String

Parameters:

strFormat
A format-specification string, like "%m/%d/%y %H:%M:%S". See AttrText for the full description of format specification strings.

Return value:

Date/time stamp, as a formatted string, of when the "current" mark was created.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AttrDIB

Group: Property

Description:

Gets or sets the raw bitmap (DIB) of a Image Embedded mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling IGArtPage.

The following code demonstrates how to get a pointer to a DIB from an IGPage object, how to create an embedded bitmap mark from a DIB, and how to replace that DIB with another one using AttrDIB. Note, that Embedded bitmap mark images MUST be 4bpp or less.

' Given an IGPage object, returns a pointer to the image's DIB
' The following two Win32 API declarations are necessary for
this to work:
' (make them Public and put them in a module, or Private and put
them at the top of a form)
' Public Declare Function GlobalLock Lib "kernel32" (ByVal hMem
As Long) As Long
' Public Declare Function GlobalUnlock Lib "kernel32" (ByVal
hMem As Long) As Long
Function getDIBPtr(page As IGPage) As Long
    Dim DIBHandle As Long
    DIBHandle = page.GetDIBHandle
    getDIBPtr = GlobalLock(DIBHandle)
    GlobalUnlock DIBHandle
End Function
    ' Load the image to be annotated and make an ART page
    IGFormatsCtl1.LoadPageFromFile currentPage,
"c:\temp\test2.jpg", 0
    Set artPage = IGArtCtl1.CreateArtPage(currentPage,
currentPageDisp, IGPageViewCtl1.hWnd)

    ' Load image 1
    Dim pageMark1 As IGPage
    Set pageMark1 = IGCoreCtl1.CreatePage
    IGFormatsCtl1.LoadPageFromFile pageMark1,
"c:\temp\smile.bmp", 0

    ' Load image 2
    Dim pageMark2 As IGPage
    Set pageMark2 = IGCoreCtl1.CreatePage
    IGFormatsCtl1.LoadPageFromFile pageMark2,
"c:\temp\frown.bmp", 0

    ' Create a mark using image 1
    artPage.GlobalAttrDIB = getDIBPtr(pageMark1)
    artPage.GlobalAttrBounds.Left = 100
    artPage.GlobalAttrBounds.Top = 100
    artPage.GlobalAttrBounds.Right = 164
    artPage.GlobalAttrBounds.Bottom = 164
    Dim markIndex As Long
    markIndex = artPage.MarkCreate(markImageEmbedded)

    ' Replace it with image 2
    artPage.MarkQuery markIndex
    artPage.AttrDIB = getDIBPtr(pageMark2)

Property Summary:

Data Type:
Long
Default Value:
As per GlobalAttrDIB
Access:
Read-Write
Settings:
Typically, you'll call the IGPage GetImagePtr method to get an image pointer that can be used to set this property.
Bits Per Pixel:
N/A
Sample:
<none>


AttrDisablePPM

Group: Property

Description:

Specifies whether the image PPM will be used to calculate font size for text annotations (Typed Text, Text from File, Attach-a-Note, Button, RTF, Pin Up Text, Text Stamp).

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read-Write
Settings:
True (disable image PPM), False (image PPM affects size of text annotations font)
Bits Per Pixel:
N/A
Sample:
<none>


AttrFileName

Group: Property

Description:

Gets or sets the FileName of a Form, Image Reference, Text from File or Audio mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
String
Default Value:
As per GlobalAttrFileName
Access:
Read-Write
Settings:
Any valid path/filename. An image must be of a format supported by ImageGear.
Bits Per Pixel:
N/A
Sample:
<none>


AttrFont

Group: Property

Description:

Gets or sets the font of a Attach-a-Note, Pin Up Text, Text from File, Text Stamp, or Typed Text mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
IFontDisp
Default Value:
As per GlobalAttrFont
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrForeColor

Group: Property

Description:

Gets or sets the foreground color (color of text or color of line) of a mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
IGPixel
Default Value:
As per GlobalAttrForeColor
Access:
Read-write
Settings:
Any valid RGB value
Bits Per Pixel:
N/A
Sample:
<none>


AttrGroup

Group: Property

Description:

Gets or sets the group of a mark. When using this property to set the group, if a group of the specified name exists, then the mark is moved from its old group to the named group. If the specified group does not exist, then it is created, then the mark is moved into the new group. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
String
Default Value:
As per GlobalAttrGroup
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrHighlight

Group: Property

Description:

Gets or sets the highlight state of a Filled Rectangle, Freehand Line, Hollow Rectangle, Straight Line, Filled Polygon, Hollow Polygon, Polyline, Filled Ellipse, or Hollow Ellipse mark. "Highlight" is a bit of a misnomer, as Highlight = True means that the mark is transparent, and Highlight = False means that the mark is opaque. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Boolean
Default Value:
As per GlobalAttrHighlight
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrImageAlign

Group: Property

Description:

Gets or sets the alignment of a Image Embedded or Image Reference mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
17 (equivalent to IG_DSPL_ALIGN_X_CENTER Or IG_DSPL_ALIGN_Y_CENTER)
Access:
Read-Write
Settings:
Use the enumIGDsplAlignModes values
Bits Per Pixel:
N/A
Sample:
<none>


AttrImageAspect

Group: Property

Description:

Gets or sets the aspect ratio of a Image Embedded or Image Reference mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Double
Default Value:
1.0
Access:
Read-Write
Settings:
Same as for IGDisplayLayout.AspectRatioValue
Bits Per Pixel:
N/A
Sample:
<none>


AttrImageFit

Group: Property

Description:

Gets or sets the "display fit" setting of a Image Embedded or Image Reference mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
IG_DSPL_FIT_TO_DEVICE
Access:
Read-Write
Settings:
Use the enumIGDsplFitModes values
Bits Per Pixel:
N/A
Sample:
<none>


AttrLineSize

Group: Property

Description:

Gets or sets the width of line with which a mark is drawn. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
As per GlobalAttrLineSize
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrMarkIndex

Group: Property

Description:

Gets the index of a mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
-1
Access:
Read-Only
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrMarkType

Group: Property

Description:

Gets the type of a mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
enumIGArtMarkType
Default Value:
ART_SELECT_TOOL
Access:
Read-Only
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrMeasurementUnits

Group: Property

Description:

Gets or sets the measurement units of a Ruler mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
enumIGArtMeasurementUnits
Default Value:
As per GlobalAttrMeasurementUnits
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrModifyTimeGet

Group: Method

Description:

Gets the date/time stamp of when a mark was last modified, returned as a string. Your application specifies the format of the string. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Declaration:

AttrModifyTimeGet(strFormat As String) As String

Parameters:

strFormat
A format-specification string, like "%m/%d/%y %H:%M:%S". See AttrText for the full description of format specification strings.

Return value:

Date/time stamp, as a formatted string, of when the "current" mark was last modified.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AttrPassword

Group: Property

Description:

Gets or sets the password of a Encryption mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
String
Default Value:
As per GlobalAttrPassword
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrPenStyle

Group: Property

Description:

Gets or sets the pen style (dashed, solid, etc.) of the line used to draw a mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
enumIGArtPenStyle
Default Value:
As per GlobalAttrPenStyle
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrPointArray

Group: Property

Description:

Gets or sets the array of (x,y) vertices of a Freehand Line, Straight Line, Filled Polygon, Hollow Polygon, Polyline or Arrow mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

NOTE: The points that are stored in the array are relative to the AttrBounds values of the mark (i.e., the leftmost point in the array will have X,Y = (0,0))

Property Summary:

Data Type:
IGPointArray
Default Value:
As per GlobalAttrPointArray
Access:
Read-Write
Settings:
The points must all be within the ImageRect of the IGPageDisplay.
Bits Per Pixel:
N/A
Sample:
<none>


AttrPointCount

Group: Property

Description:

Gets or sets the size of the array of (x,y) vertices of a Freehand Line, Straight Line, Filled Polygon, Hollow Polygon, Polyline or Arrow mark. Setting this property accomplishes the same thing as calling the IGPointArray Resize method. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
Size of a AttrPointArray
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrPrecision

Group: Property

Description:

Gets or sets the number of decimal digits displayed for a Protractor or Ruler mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Integer
Default Value:
As per GlobalAttrPrecision
Access:
Read-Write
Settings:
Any non-negative value
Bits Per Pixel:
N/A
Sample:
<none>


AttrText

Group: Property

Description:

Gets or sets the text of a Attach-a-Note, Pin Up Text, Text Stamp, or Typed Text mark.. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

If the mark is a Text Stamp, there are many special codes that can be embedded into the string, as follows:

%a:
Abbreviated weekday name
%:
A Full weekday name
%b:
Abbreviated month name
%B:
Full month name
%c:
Local date and time representation appropriate
%d:
Day of the month in decimal number (01 - 31) format
%H:
Hour in the 24-hour format (00 - 23) format
%I:
Hour in the 12-hour format (01 - 12) format
%j:
Day of year as decimal number (001 - 366) format
%m:
Month in decimal number (01 - 12) format
%M:
Minute in decimal number (00 - 59) format
%p:
Current locale's A.M./P.M. indicator for the 12-hour clock
%S:
Seconds in decimal number (00 - 59) format
%U:
Week of year in decimal number format, with Sunday as the first day of the week (00 - 51)
%w:
Weekday in decimal number (0 - 6; Sunday is 0) format
%W
Week of year in decimal number format, with Monday as the first day of the week (00 - 51)
%x
Date representation for current locale
%X
Time representation for current locale
%y
Year without century, in decimal number (00 - 99) format
%Y
Year with century, in decimal number format
%z,%Z
Time-zone name or abbreviation; no characters if the time zone is unknown

Property Summary:

Data Type:
String
Default Value:
As per GlobalAttrText
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


AttrTextAlign

Group: Property

Description:

Gets or sets the alignment of the text in a Attach-a-Note, Pin Up Text, Text Stamp, or Typed Text mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Long
Default Value:
As per GlobalAttrTextAlign
Access:
Read-Write
Settings:
Use the enumIGArtTextAlignMode values to specify the alignment. For example:
AttrTextAlign = ART_TEXT_TOP + ART_TEXT_LEFT
will result in top-aligned, left justified
AttrTextAlign = ART_TEXT_BOTTOM + ART_TEXT_RIGHT
will result in bottom-aligned, right justified.
Note that you should only use bottom-alignment for single-line text - anything over 1 line long will be partially hidden.
Bits Per Pixel:
N/A
Sample:
<none>


AttrTextOrientation

Group: Property

Description:

Gets or sets orientation of the text in a Attach-a-Note, Pin Up Text, Text Stamp, Ruler, Protractor, or Typed Text mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Declaration:

Property AttrTextOrientation As Long

Property Summary:

Data Type:
Long
Default Value:
As per GlobalAttrTextOrientation
Access:
Read-Write
Settings:
Angle of text baseline to image in tenths of a degree; valid values are 0, 900, 1800, 2700.
Bits Per Pixel:
N/A
Sample:
<none>


AttrTransparent

Group: Property

Description:

Gets or sets the "transparency" setting for a Form, Image Embedded, or Image Reference mark. Before using this property, you must load the IGArtPage AttrXXX properties with the values from a specific mark by calling MarkQuery.

Property Summary:

Data Type:
Boolean
Default Value:
As per GlobalAttrTransparent
Access:
Read-Write
Settings:
True (use transparency), False (no transparency)
Bits Per Pixel:
N/A
Sample:
<none>


EditCopy

Group: Method

Description:

Copies the currently selected mark(s) to the Windows clipboard.

Declaration:

EditCopy()

Return value: N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EditCut

Group: Method

Description:

Cuts and copies the currently selected mark(s) to the Windows clipboard.

Declaration:

EditCut()

Return value: N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EditPaste

Group: Method

Description:

Paste all of the marks currently in the Windows clipboard into the IGArtPage.

Declaration:

EditPaste()

Return value: N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EditPasteCount

Group: Method

Description:

Get the count of the number of marks currently in the Windows clipboard.

Declaration:

EditPasteCount() As Long

Return value:

The number of marks available for EditPaste processing.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EditUndo

Group: Method

Description:

This method reverses (performs the undo function) a changes made to a mark. Reversible operations include: creation, modification, selection, and deletions of marks. ART maintains an "undo stack" (once your application calls EditUndoRecord( True )) - each reversible action is pushed onto the "undo stack". Each call to EditUndo() reverses the action on the top of the "undo stack" and then pops it off of the stack.

Declaration:

EditUndo()

Return value: N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EditUndoClear

Group: Method

Description:

ART maintains an "undo stack" (once your application calls EditUndoRecord( True )), which records each time a mark is created, modified, selected or deleted. This method empties the stack, and does not reverse any changes.

Declaration:

EditUndoClear()

Return value: N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EditUndoCount

Group: Method

Description:

ART maintains an "undo stack" (once your application calls EditUndoRecord( True )), which records each time a mark is created, modified, selected or deleted. This method returns the number of actions recorded in the stack.

Declaration:

EditUndoCount() As Long

Return value:

The number of reversible actions in the "undo stack".

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EditUndoRecord

Group: Method

Description:

ART maintains an "undo stack", which records each time a mark is created, modified, selected or deleted. This method starts or stops pushing actions onto the stack (but does not alter the stack - if it has actions in it, and your application stops recording new ones, the old actions remain in the stack).

Declaration:

EditUndoRecord(RecordActions As Boolean)

Parameters:

RecordActions
True to start recording actions in the "undo stack", False to stop recording.

Return value: N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FileAppend

Group: Method

Description:

Loads a set of ART marks from an .ART file and appends them to the marks already in the IGArtPage (if any).

Declaration:

FileAppend(FileName As String, PageNumber As Long) As Long

Parameters:

FileName
A separate .ART file from which marks should be appended
PageNumber
Number of page (from multipage .ART file) you are going to import. Pages are numbered from 0; if file is single-page, set PageNumber to 0.

Return value:

Returns the number of ImageGear errors that occurred during this method call. If there are no errors, the return value is 0.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FileExport

Group: Method

Description:

This method saves the marks to a separate .ART file. If the .ART file has multiple pages you can save a specific page by setting PageNumber. The OverwritePage flag is used if there is already an .ART file with the same name and page number: if you set OverwritePage = True, the old page is replaced with the new page; if OverwritePage = False, the new page is inserted at page PageNumber and all of the pages below it are moved down..

Declaration:

FileExport(FileName As String, PageNumber As Long, OverwritePage
As Boolean) As Long

Parameters:

FileName
A separate .ART file to which the ART marks should be written.
PageNumber
Number of page (for multipage .ART file) you wish to write. Pages are numbered from 0; if file is single-page, set PageNumber to 0.
OverwritePage
True means "replace the page in the file if it is already there", False means "insert the page in the file"

Return value:

Returns the number of ImageGear errors that occurred during this method call. If there are no errors, the return value is 0.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FileImport

Group: Method

Description:

Clears all of the ART marks from the IGArtPage, and then loads a new set of ART marks from an .ART file.

Declaration:

FileImport(FileName As String, PageNumber As Long) As Long

Parameters:

FileName
A separate .ART file from which marks should be loaded
PageNumber
Number of page (from multipage .ART file) you are going to import. Pages are numbered from 0; if file is single-page, set PageNumber to 0.

Return value:

Returns the number of ImageGear errors that occurred during this method call. If there are no errors, the return value is 0.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetControlOption

Group: Method

Description:

Returns value of default IGArtPage settings.

Declaration:

GetControlOption(nControlOption As enumIGArtControlOption) as
Long

Parameters:

nControlOptionValue
Specifies the control parameter to return

Return value:

Value of the control parameter specified. For actual types and values see description of enumIGArtControlOption.

Bits Per Pixel: N/A

Sample: Art

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GlobalAttrArcRadius

Group: Property

Description:

A default value property - the value of this property will be used for AttrArcRadius whenever a new mark is created. Specifies the radius, in pixels, of the little arc drawn in a Protractor mark.

Property Summary:

Data Type:
Long
Default Value:
30
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrArrowLength

Group: Property

Description:

A default value property - the value of this property will be used for AttrArrowLength whenever a new mark is created. Specifies the arrowhead length, in pixels, of an Arrow mark.

Property Summary:

Data Type:
Long
Default Value:
25
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrArrowType

Group: Property

Description:

A default value property - the value of this property will be used for AttrArrowType whenever a new mark is created. Specifies the arrowhead type of an Arrow mark.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Use one of the enumIGArtArrowType values.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrBackColor

Group: Property

Description:

A default value property - the value of this property will be used for AttrBackColor whenever a new mark is created. Specifies the background color of an Attach-a-Note, Button, or Pin Up Text mark.

Property Summary:

Data Type:
IGPixel
Default Value:
RGB pixel of (255,255,255) - white.
Access:
Read only
Settings:
Any valid RGB value
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrBitmap

Group: Property

Description:

A default value property - the value of this property will be used for AttrBitmap whenever a new mark is created. Specifies the OLE Picture of an Image Embedded mark.

Property Summary:

Data Type:
IPictureDisp
Default Value:
<none>
Access:
Read-Write
Settings:
Any valid OLE picture object. Note that GlobalAttrBitmap and GlobalAttrDIB are mutually exclusive - setting one clears the other.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrBounds

Group: Property

Description:

A default value property - the value of this property will be used for AttrBounds whenever a new mark is created. Specifies the rectangle, in image coordinates, of a mark. For marks like Hollow Rectangle, this is the size of the mark. For marks like Pin Up Text, this rectangle specifies the position, height and width of the mark

Property Summary:

Data Type:
IGRectangle
Default Value:
The (0,0,0,0) rectangle
Access:
Read only
Settings:
The rectangle must be within the ImageRect of the IGPageDisplay.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrDIB

Group: Property

Description:

A default value property - the value of this property will be used for AttrDIB whenever a new mark is created. Specifies the raw bitmap (DIB) of an Image Embedded mark.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Typically, you'll call the IGPage .GetImagePtr method to get an image pointer that can be used to set this property. Note that GlobalAttrBitmap and GlobalAttrDIB are mutually exclusive - setting one clears the other.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFileName

Group: Property

Description:

A default value property - the value of this property will be used for AttrFileName whenever a new mark is created. Specifies the FileName of a Form, Image Reference, Text from File or Audio mark.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read-Write
Settings:
Any valid path/filename. An image must be of a format supported by ImageGear.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFont

Group: Property

Description:

A default value property - the value of this property will be used for AttrFont whenever a new mark is created. Specifies the font of an Attach-a-Note, Pin Up Text, Text from File, Text Stamp, or Typed Text mark.

Property Summary:

Data Type:
IFontDisp
Default Value:
Arial font
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFontBold

Group: Property

Description:

A shortcut property - equivalent to accessing GlobalAttrFont.Bold property.

Property Summary:

Data Type:
Long
Default Value:
0 (same as GlobalAttrFont.Bold = False)
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFontItalic

Group: Property

Description:

A shortcut property - equivalent to accessing GlobalAttrFont.Italic property.

Property Summary:

Data Type:
Long
Default Value:
0 (same as GlobalAttrFont.Italic = False)
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFontName

Group: Property

Description:

A shortcut property - equivalent to accessing GlobalAttrFont.Name property.

Property Summary:

Data Type:
String
Default Value:
"Arial"
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFontSize

Group: Property

Description:

A shortcut property - equivalent to accessing GlobalAttrFont.Size property.

Property Summary:

Data Type:
Long
Default Value:
12
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFontStrikeout

Group: Property

Description:

A shortcut property - equivalent to accessing GlobalAttrFont.Strikeout property.

Property Summary:

Data Type:
Long
Default Value:
0 (same as GlobalAttrFont.Strikeout = False)
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrFontUnderline

Group: Property

Description:

A shortcut property - equivalent to accessing GlobalAttrFont.Underline property.

Property Summary:

Data Type:
Long
Default Value:
0 (same as GlobalAttrFont.Underline = False)
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrForeColor

Group: Property

Description:

A default value property - the value of this property will be used for AttrForeColor whenever a new mark is created. Specifies the foreground color (color of text or color of line) of a mark.

Property Summary:

Data Type:
IGPixel
Default Value:
RGB pixel of (0,0,0) - black.
Access:
Read only
Settings:
Any valid RGB value
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrGroup

Group: Property

Description:

A default value property - the value of this property will be used for AttrGroup whenever a new mark is created. Specifies the group of a mark.

Property Summary:

Data Type:
String
Default Value:
"[Untitled]"
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrHighlight

Group: Property

Description:

A default value property - the value of this property will be used for AttrHighlight whenever a new mark is created. Specifies the highlight state of a Filled Rectangle, Freehand Line, Hollow Rectangle, Straight Line, Filled Polygon, Hollow Polygon, Polyline, Filled Ellipse, or Hollow Ellipse mark. "Highlight" is a bit of a misnomer, as Highlight = True means that the mark is transparent, and Highlight = False means that the mark is opaque.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttributesShow

Group: Method

Description:

This method presents an attribute dialog box called a "Property Sheet" that displays attributes for the mark specified by MarkType parameter. Changes are stored into the GlobalAttrXXX properties and affect the next mark created.

Declaration:

GlobalAttributesShow(MarkType As enumIGArtMarkType) As Boolean

Parameters:

MarkType
Identifies the type of mark whose Property Sheet is to be displayed - an enumIGArtMarkType value. Note that there is no markSelect type mark - that value is used to identify the Select button on the ToolBar.

Return value:

Returns True if the OK button was pressed, False - for the Cancel button.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GlobalAttrLineSize

Group: Property

Description:

A default value property - the value of this property will be used for AttrLineSize whenever a new mark is created. Specifies the width of line with which a mark is drawn.

Property Summary:

Data Type:
Long
Default Value:
1
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrMarkIndex

Group: Property

Description:

A default value property - the value of this property will be used for AttrMarkIndex whenever a new mark is created. Specifies the index for the mark.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read-Write
Settings:
Automatically incremented every time a mark is created.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrMarkType

Group: Property

Description:

A default value property - the value of this property will be used for AttrMarkType whenever a new mark is created. Specifies the type of the mark.

Property Summary:

Data Type:
enumIGArtMarkType
Default Value:
ART_SELECT_TOOL (-1, which will prevent marks from being created)
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrMeasurementUnits

Group: Property

Description:

A default value property - the value of this property will be used for AttrMeasurementUnits whenever a new mark is created. Specifies the measurement units of a Ruler mark.

Property Summary:

Data Type:
enumIGArtMeasurementUnits
Default Value:
unitMillimeters
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrPassword

Group: Property

Description:

A default value property - the value of this property will be used for AttrPassword whenever a new mark is created. Specifies the password of an Encryption mark.

Property Summary:

Data Type:
String
Default Value:
"Password"
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrPenStyle

Group: Property

Description:

A default value property - the value of this property will be used for AttrPenStyle whenever a new mark is created. Specifies the pen style (dashed, solid, etc.) of the line used to draw a mark.

Property Summary:

Data Type:
enumIGArtPenStyle
Default Value:
SOLID
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrPointArray

Group: Property

Description:

A default value property - the value of this property will be used for AttrPointArray whenever a new mark is created. Specifies the array of (x,y) vertices of a Freehand Line, Straight Line, Filled Polygon, Hollow Polygon, Polyline or Arrow mark.

Property Summary:

Data Type:
IGPointArray
Default Value:
<an empty array>
Access:
Read only
Settings:
The points must all be within the ImageRect of the IGPageDisplay.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrPrecision

Group: Property

Description:

A default value property - the value of this property will be used for AttrPrecision whenever a new mark is created. Specifies the number of decimal digits displayed for a Protractor or Ruler mark.

Property Summary:

Data Type:
Integer
Default Value:
2
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrText

Group: Property

Description:

A default value property - the value of this property will be used for AttrText whenever a new mark is created. Specifies the text of a Attach-a-Note, Pin Up Text, Text Stamp, or Typed Text mark.

If the mark is a Text Stamp, there are many special codes that can be embedded into the string. See AttrText for a description of those codes.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrTextAlign

Group: Property

Description:

A default value property - the value of this property will be used for AttrText whenever a new mark is created. Specifies the alignment of the text in a Attach-a-Note, Pin Up Text, Text Stamp, or Typed Text mark.

Property Summary:

Data Type:
Long
Default Value:
ART_TEXT_TOP + ART_TEXT_LEFT
Access:
Read-Write
Settings:
Use the enumIGArtTextAlignMode values to specify the alignment. For example:
AttrTextAlign = ART_TEXT_TOP + ART_TEXT_LEFT
will result in top-aligned, left justified
AttrTextAlign = ART_TEXT_BOTTOM + ART_TEXT_RIGHT
will result in bottom-aligned, right justified.
Note that you should only use bottom-alignment for single-line text - anything over 1 line long will be partially hidden.
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrTextOrientation

Group: Property

Description:

A default value property - the value of this property will be used for AttrText whenever a new mark is created. Specifies the orientation of the text in a Attach-a-Note, Pin Up Text, Text Stamp, Ruler, Protractor, or Typed Text mark.

Declaration:

Property GlobalAttrTextOrientation As Long

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Angle of text baseline to image in tenths of a degree; valid values are 0, 900, 1800, 2700..
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrTransparent

Group: Property

Description:

A default value property - the value of this property will be used for AttrText whenever a new mark is created. Specifies the "transparency" setting for a Form, Image Embedded, or Image Reference mark.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read-Write
Settings:
True (use transparency), False (no transparency)
Bits Per Pixel:
N/A
Sample:
<none>


GlobalAttrUserDataGet

Group: Method

Description:

Used to get a default value property - the value returned by this method will be used as if it had been supplied to UserDataSet whenever a new mark is created. The value must have previously been saved with GlobalAttrUserDataSet. Specifies the "User Data" for a mark.

Declaration:

GlobalAttrUserDataGet(lIndex As Long) As String

Parameters:

lIndex
Index of the entry in the default "User Data" array to get.

Return value:

String into which the default "User Data" value will be returned.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GlobalAttrUserDataSet

Group: Method

Description:

Used to set a default value property - the value specified to this method will be used as if it had been supplied to UserDataSet whenever a new mark is created. Specifies the "User Data" for a mark.

Declaration:

GlobalAttrUserDataSet(lIndex As Long, pData As String)

Parameters:

lIndex
Index of the entry in the default "User Data" array to get.
pData
String to place into the default "User Data" array.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupAccess

Group: Method

Description:

This method sets the access control (editable or view-only) to the marks in the group specified by GroupName. When Access is set to True, the end user is allowed to edit or modify marks in the group; when set to False the end user is not allowed to edit or modify marks in the group.

Declaration:

GroupAccess(GroupName As String, Access As Boolean)

Parameters:

GroupName
Specifies the group of marks to set the access control to.
Access
If True - the marks are editable, if False - the marks are not editable.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupBringToFront

Group: Method

Description:

This method moves a group of marks referenced by GroupName to the top of the ZOrder.

Declaration:

GroupBringToFront(GroupName As String)

Parameters:

GroupName
Specifies the group of marks to bring to the front.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupDelete

Group: Method

Description:

This method deletes any marks that belong to the mark group GroupName.

Declaration:

GroupDelete(GroupName As String)

Parameters:

GroupName
Specifies the group of marks to delete.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupEditCopy

Group: Method

Description:

Copy all of the marks in the GroupName group to the Windows clipboard.

Declaration:

GroupEditCopy(GroupName As String)

Parameters:

GroupName
Specifies the group of marks to copy.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupEditCut

Group: Method

Description:

Cut all of the marks in the GroupName group to the Windows clipboard, removing them from the IGArtPage.

Declaration:

GroupEditCut(GroupName As String)

Parameters:

GroupName
Specifies the group of marks to cut.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupSelect

Group: Method

Description:

Change the selection of all the marks in the GroupName group (make them selected or unselected).

Declaration:

GroupSelect(GroupName As String, Select As Boolean)

Parameters:

GroupName
Specifies the group of marks to (un)select.
Select
If True - the group of marks is selected, if False - they are deselected.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupSendToBack

Group: Method

Description:

This method moves a group of marks referenced by GroupName to the bottom of the ZOrder.

Declaration:

GroupSendToBack(GroupName As String)

Parameters:

GroupName
Specifies the group of marks to send to the back.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GroupVisible

Group: Method

Description:

Change the visibility of all the marks in the GroupName group (make them visible or hidden).

Declaration:

GroupVisible(GroupName As String, Visible As Boolean)

Parameters:

GroupName
Specifies the group of marks to (un)select.
Visible
If True - the group of marks are shown, if False - they are hidden.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageBurnIn

Group: Method

Description:

This method merges marks permanently into the image in the associated IGPage. They are converted from vector-format constructs into raster-format. The image may be temporarily promoted to a higher bit-depth for the purpose of the merge (see enumIGArtBurnInMode).

Declaration:

ImageBurnIn(Options As Long, GroupName As String)

Parameters:

Options
Specifies which marks are merged - see enumIGArtBurnInMode. The enumIGArtBurnInMode values can be combined. For example: ART_BURN_IN_ALL + ART_BURN_IN_AUTO_PROMOTE .
GroupName
Specifies the group of marks to be burned in. This parameter is ignored unless Options = ART_BURN_IN_GROUP.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


InteractionProcess

Group: Method

Description:

This method is used to transfer mouse events from your application's IGPageViewCtl object to the IGArtPage object, so that the ART component can react to mouse events.

NOTE: Your application must implement MouseDown and MouseMove event handlers for the IGPageViewCtl object to make the ToolBar operate. It will call InteractionProcess in those handlers - see Creating a Mark via the ToolBar.

Declaration:

InteractionProcess(Button As Long, Event As long, ptPoint As
IGPoint)

Parameters:

Button
Identifies the mouse button number:
  • 1 - Left Button down
  • 2 - Right Button down
  • 3 - Middle Button down
Event
Identifies the type of event happened:
0 - Mouse Movement event. In this case first argument Button is ignored, ptPoint is a current mouse coordinates.
  • 1 - Mouse Button Down event. First argument Button may have values as described above. ptPoint is a current mouse coordinates.
  • 2 - Mouse Button Up event. First argument Button may have values as described above. ptPoint is a current mouse coordinates.
  • 3 - Mouse Button DoubleClick event. First argument Button may have values as described above. ptPoint is a current mouse coordinates.
IGPoint
Identifies the screen location of the mouse event. Construct an IGPoint object from the X and Y values from the IGPageViewCtl_MouseDown event.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LoadAnnotations

Group: Method

Description:

Clears all of the ART marks from the IGArtPage, and then loads a new set of ART marks from an an .ART file identified by an IIGIOLocation object.

Declaration:

LoadAnnotations(pIOLocation As IIGIOLocation, PageNum As Long)
As Long

Parameters:

pIOLocation
An IIGIOLocation object that identifies an .ART file from which marks should be loaded
PageNumber
Number of page (from multipage .ART file) you are going to import. Pages are numbered from 0; if file is single-page, set PageNumber to 0.

Return value:

Returns the number of ImageGear errors that occurred during this method call. If there are no errors, the return value is 0.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkAccess

Group: Method

Description:

This method allows or restricts access to (ability to edit) a specific mark. When Access is set to True, the mark can be edited. When Access is set to False, the mark is disabled for editing.

Declaration:

MarkAccess(MarkIndex As Long, Access As Boolean)

Parameters:

MarkIndex
Index of the mark whose access is to be changed.
Access
True: the mark can be edited, False: the mark cannot be edited

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkAttributesShow

Group: Method

Description:

This method presents an attribute dialog box called a "Property Sheet" that displays attributes for the specific mark. Changes are stored into the AttrXXX properties of the specified mark.

Declaration:

MarkAttributesShow(MarkIndex As Long) As Boolean

Parameters:

MarkIndex
Index of the mark whose Property Sheet is to be displayed.

Return value:

The return value is True if the OK button was pressed; False if the Cancel button was pressed.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkBringToFront

Group: Method

Description:

This method moves a specified mark to the top of the ZOrder.

Declaration:

MarkBringToFront(MarkIndex As Long)

Parameters:

MarkIndex
Index of the mark to bring to the front.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkCount

Group: Method

Description:

Returns the total number of marks in the IGArtPage.

Declaration:

MarkCount() As Long

Return value:

The total number of marks (in all groups, selected or not, visible or not, editable or not).

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkCreate

Group: Method

Description:

Create a new mark of the specified type. The new mark's attributes will be taken from the various GlobalAttrxxx property values.

Declaration:

MarkCreate(MarkType As Long) As Long

Parameters:

MarkType
The type of mark to be created.

Return value:

Index of the created mark, or -1 if mark creation was cancelled by your PreCreateNotify or CreateNotify event handler.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkDelete

Group: Method

Description:

Delete the specified mark.

Declaration:

MarkDelete(MarkIndex As Long)

Parameters:

MarkIndex
Index of the mark to delete.

Return value:

N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkFirst

Group: Method

Description:

Returns the index of the first mark.

Declaration:

MarkFirst() As Long

Return value:

-1 means "no marks", otherwise the index of the first mark in the IGArtPage is returned.

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkHitTest

Group: Method

Description:

This method returns the Index of the mark located at the screen position [x, y]. If there are no marks at [x,y], the return value from this method is -1.

Declaration:

MarkHitTest(XPos As Long, YPos As Long) As Long

Parameters:

XPos
Screen X Position to test.
YPos
Screen Y Position to test.

Return value:

Index of the mark at the specified coordinates, or -1 if there is none.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkIsAccessGranted

Group: Method

Description:

Checks the specified mark to see if it is editable.

Declaration:

MarkIsAccessGranted(MarkIndex As Long) As Boolean

Parameters:

MarkIndex
Index of the mark to check.

Return value:

True if the mark is editable, and False if the mark is not editable.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkIsSelected

Group: Method

Description:

Checks the specified mark to see if it is selected.

Declaration:

MarkIsSelected(MarkIndex As Long) As Boolean

Parameters:

MarkIndex
Index of the mark to check.

Return value:

True if the mark is selected, and False if the mark is not selected.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkIsVisible

Group: Method

Description:

Checks the specified mark to see if it is visible.

Declaration:

MarkIsVisible(MarkIndex As Long) As Boolean

Parameters:

MarkIndex
Index of the mark to check.

Return value:

True if the mark is visible, and False if the mark is hidden

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkModify

Group: Method

Description:

Modify the specified mark, by replacing all of its attributes with the values of the various Attrxxx properties. Your application should call MarkQuery to set all of the Attrxxx properties, then change them as needed, and then call MarkModify to modify the mark.

Declaration:

MarkModify(MarkIndex As Long) As Boolean

Parameters:

MarkIndex
Index of the mark to check.

Return value:

True if the mark was modified successfully, False if the modification failed or if your PreModifyNotify event handler cancelled the modfiication..

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkNext

Group: Method

Description:

Returns the index of the next mark following the specified mark. Note that, since marks can be deleted, that the mark indexes are not necessarily contiguous - use MarkFirst/MarkNext to iterate over the marks in the IGArtPage.

Declaration:

MarkNext(MarkIndex As Long) As Long

Parameters:

MarkIndex
Index of the mark whose successor is wanted.

Return value:

Index of the next mark in the IGArtPage, or -1 if there are no more marks

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkPaint

Group: Method

Description:

Causes the specified mark to be repainted on the computer screen. If the MarkIndex value is specified as -1, then all marks are repainted.

Declaration:

MarkPaint(MarkIndex As Long)

Parameters:

MarkIndex
Index of the mark to repaint (specify -1 to repaint all marks).

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkQuery

Group: Method

Description:

Load the IGArtPage Attrxxx properties with the attributes of the specified mark. Your application must call MarkQuery before using the values in the Attrxxx properties.

Declaration:

MarkQuery(MarkIndex As Long) As Boolean

Parameters:

MarkIndex
Index of the mark whose attributes are to be loaded into the Attrxxx properties.

Return value:

Returns True if this method is successfully processed, otherwise returns False.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkRotate

Group: Method

Description:

Rotate the specified Image Embedded or Image Reference mark.

Declaration:

MarkRotate(MarkIndex As Long, Angle As Double)

Parameters:

MarkIndex
Index of the mark to be rotated.
Angle
Angle to rotate the mark

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


markSelect

Group: Method

Description:

Select or unselect the specified mark.

Declaration:

markSelect(MarkIndex As Long, Select As Boolean)

Parameters:

MarkIndex
Index of the mark to be changed.
Select
True: select mark, False: unselect mark

Return value:

N/A

Bits Per Pixel: N/A

Sample: ig_artCtrl_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSelectCount

Group: Method

Description:

Returns the count of selected marks.

Declaration:

MarkSelectCount() As Long

Return value:

Count of selected marks (0 if none are selected).

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSelectedFirst

Group: Method

Description:

Returns the index of the first mark.

Declaration:

MarkSelectedFirst() As Long

Return value:

-1 means "no selected marks", otherwise the index of the first selected mark is returned.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSelectedNext

Group: Method

Description:

Returns the index of the next mark following the specified mark.

Declaration:

MarkSelectedNext(MarkIndex As Long) As Long

Parameters:

MarkIndex
Index of the mark whose selected successor is wanted.

Return value:

Index of the next selected mark in the IGArtPage, or -1 if there are no more selected marks

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkSendToBack

Group: Method

Description:

This method moves a specified marks to the bottom of the ZOrder.

Declaration:

MarkSendToBack(MarkIndex As Long)

Parameters:

MarkIndex
Index of the mark to be sent to the back.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MarkVisible

Group: Method

Description:

Change the visibility of the specified mark.

Declaration:

MarkVisible(MarkIndex As Long, Visible As Boolean)

Parameters:

MarkIndex
Index of the mark to be changed.
Visible
True: show mark, False: hide mark

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseIconGet

Group: Method

Description:

Gets the cursor icon that will be used when the user passes the mouse over an icon or a specific resize-handle of an icon.

Declaration:

MouseIconGet(CursorType As enumIGArtCursorType) As IPictureDisp

Parameters:

CursorType
One of the enumIGArtCursorType values - the icon for this cursor type will be returned.

Return value:

Icon used for the mouse cursor when the mouse passes over the indicated part of a mark.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseIconIDQuery

Group: Method

Description:

Used to determine which mouse cursor icon would be used if the mouse were to be placed at the specified coordinates.

Declaration:

MouseIconIDQuery(pt As IGPoint) As enumIGArtCursorType

Parameters:

pt
Used to provide the screen (X,Y) coordinates to check

Return value:

One of the enumIGArtCursorType values specifying the mouse cursor to display when the mouse passes over the indicated screen coordinates.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseIconQuery

Group: Method

Description:

Used to determine which mouse cursor icon would be used if the mouse were to be placed at the specified coordinates.

Declaration:

MouseIconQuery(pt As IGPoint) As IPictureDisp

Parameters:

pt
Used to provide the screen (X,Y) coordinates to check

Return value:

Icon used for the mouse cursor when the mouse passes over the indicated screen coordinates.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MouseIconQueryEx

Group: Method

Description:

Used to determine which mouse cursor icon would be used if the mouse were to be placed at the specified coordinates.

Declaration:

MouseIconQueryEx(pt As IGPoint) As IIGArtMouseCursor

Parameters:

pt
Used to provide the screen (X,Y) coordinates to check

Return value:

IGArtMouseCursor used for the mouse cursor when the mouse passes over the indicated screen coordinates.

Bits Per Pixel:

N/A

Sample:

<none>


MouseIconSet

Group: Method

Description:

Sets the cursor icon that will be used when the user passes the mouse over an icon or a specific resize-handle of an icon.

Declaration:

MouseIconSet(CursorType As enumIGArtCursorType, newVal As
IPictureDisp)

Parameters:

CursorType
One of the enumIGArtCursorType values - the icon for this cursor type will be replaced.
newVal
Must be an icon-type OLE IPicture. The ART component will use this icon for the specified cursor type from now on.

Return value:

N/A

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Page

Group: Property

Description:

Used to get the IGPage associated with this IGArtPage. The IGPage was established when the IGArtPage was created (see CreateArtPage), and cannot be changed.

Property Summary:

Data Type:
IGPage
Default Value:
pPage parameter from CreateArtPage
Access:
Read-Only
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


PageDisplay

Group: Property

Description:

Used to get the IGPageDisplay associated with this IGArtPage. The IGPageDisplay was established when the IGArtPage was created (see CreateArtPage), and cannot be changed.

Property Summary:

Data Type:
IGPageDisplay
Default Value:
pPageDisplay parameter from CreateArtPage ()
Access:
Read-Only
Settings:
Bits Per Pixel:
N/A
Sample:
<none>


Rotation

Group: Property

Description:

Causes the entire set of marks to be rotated by the amount specified in RotationAngle. This property is valid only if RotationAngle is set to right rotation angle: 0, 90, 180, 270, 360.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read-Write
Settings:
True: The entire collection of ART marks will be rotated by the amount in RotationAngle False: Rotation is not performed.
Bits Per Pixel:
N/A
Sample:
<none>


RotationAngle

Group: Property

Description:

The amount that the entire collection of ART marks is to be rotated. Should be set to the right rotation angle only: 0, 90, 180, 270, 360. This property is ignored if Rotation is False.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
0, 90, 180, 270 and 360.
Bits Per Pixel:
N/A
Sample:
<none>


SaveAnnotations

Group: Method

Description:

This method saves the marks to a separate .ART file. If the .ART file has multiple pages you can save a specific page by setting PageNum. The Mode flag is used if there is already an .ART file with the same name and page number.

Declaration:

SaveAnnotations(pIOLocation As IIGIOLocation, PageNum As Long,
Mode As enumIGPageSaveModes) As Long

Parameters:

pIOLocation
An IIGIOLocation object that identifies a separate .ART file to which marks should be saved.
PageNumber
Number of page (from multipage .ART file) you wish to write. Pages are numbered from 0; if file is single-page, set PageNumber to 0.
Mode
One of the enumIGPageSaveModes values.

Return value:

Returns the number of ImageGear errors that occurred during this method call. If there are no errors, the return value is 0.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetControlOption

Group: Method

Description:

Modifies the default IGArtPage settings, changing the default behavior of the annotation objects.

Declaration:

Sub SetControlOption(nControlOption As enumIGArtControlOption,
lValue As Long)

Parameters:

nControlOptionValue
Specifies the control parameter to be updated
lValue
New value of the control parameter specified.

Return value: N/A

Bits Per Pixel: N/A

Sample: Art

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UserDataGet

Group: Method

Description:

Gets a value from the "User Data" array for a mark. Before using this method, you must load the IGArtPage Attrxxx properties with the values from a specific mark by calling MarkQuery. The "User Data" array is an array of strings that is stored with a mark. Each mark has its own array. The "User Data" is for the use of the application program - ImageGear only stores and retrieves it for the applicaiton.

Declaration:

UserDataGet(lIndex As Long) As String

Parameters:

lIndex
Index of the entry in a mark's "User Data" array to get. Must be a number from 0 to 999.

Return value:

String into which the "User Data" value will be returned.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UserDataSet

Group: Method

Description:

Sets a value in the "User Data" array for a mark. Before using this method, you must load the IGArtPage Attrxxx properties with the values from a specific mark by calling MarkQuery. The "User Data" array is an array of strings that is stored with a mark. Each mark has its own array. The "User Data" is for the use of the application program - ImageGear only stores and retrieves it for the applicaiton.

Declaration:

UserDataSet(lIndex As Long, pData As String)

Parameters:

lIndex
Index of the entry in a mark's "User Data" array to set. Must be a number from 0 to 999.
pData
String to be stored in the "User Data" array.

Return value:

None.

Bits Per Pixel: N/A

Sample: <none>

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UserMode

Group: Property

Description:

Sets the overall operating mode for the ART Component. See enumIGArtUserModeType for a description of the different modes.

Property Summary:

Data Type:
enumIGArtUserModeType
Default Value:
userEditMode
Access:
Read-Write
Settings:
Bits Per Pixel:
N/A
Sample:
ig_artCtrl_vb6.exe


ART Component Enumerations

This section represents an alphabetized reference of enumerations defined in ImageGear ART component:

    • enumIGArtArrowType
    • enumIGArtBurnInMode
    • enumIGArtControlOption
    • enumIGArtCursorType
    • enumIGArtMarkType
    • enumIGArtMeasurementUnits
    • enumIGArtModifyReason
    • enumIGArtMouseReason
    • enumIGArtPenStyle
    • enumIGArtTextAlignMode
    • enumIGArtToolBarReason
    • enumIGArtUserModeType


enumIGArtArrowType

Group: Enumeration

Description:

Enumerates the various Arrow mark arrowheads.

Values:

arrowOpen

arrowPointer

arrowPointerSolid

arrowSolid


enumIGArtBurnInMode

Group: Enumeration

Description:

Enumerates the various image burn-in modes when calling ImageBurnIn.

Values:

burnInAll
Burns in all annotation marks
burnInDeleteMarks
Deletes affected marks after burning them in.
burnInGroup
Burns in a group of marks
burnInList
Burns in a list of marks
burnInVisible
Burns in all visible marks
burnInSelected
Burns in all selected marks
burnInPromoteAuto
"Or" with any of the above. Automatically promotes the bit depth of the IGPage image to allow the marks to blend with it. The image is automatically reduced in bit depth after the mark(s) are burned in.
burnInPromoteNone
"Or" with any of the first 4 above. No bit depth promotion is made before the marks are burned in.
burnInThreshold
"Or" with ART_BURN_IN_AUTO_PROMOTE: Set threshold method for color reduction

The settings ART_BURN_IN_AUTO_PROMOTE and ART_BURN_IN_NO_PROMOTE affect whether the IGPage image undergoes a bit depth promotion before the marks are burned in.

There are three variants of this method behavior for the bit depth promotion:

  1. Default behavior (neither ART_BURN_IN_AUTO_PROMOTE nor ART_BURN_IN_NO_PROMOTE is used):
    • For 1-bit images: promote to 8, burn-in, then reduce back to 1.
    • For 4 and 8: promote to 24, burn-in, then reduce to original bit depth.
    • For 24: no promote, burn-in, and no reducing.
  2. When ART_BURN_IN_NO_PROMOTE is used:
    • All promotion is suppressed.
  3. When ART_BURN_IN_AUTO_PROMOTE is used:
    • For 1 and 4-bit images: promote to 24, burn-in, then reduce to 4 bits per pixel.
    • For 8-bit images: promote to 24, burn-in, then reduce to 8 bits per pixel.
    • For 24: no promote, burn-in, and no reducing.


enumIGArtControlOption

Group: Enumeration

Description:

Enumerates ART control options that specifies default behaviour of current IGArtPage annotation objects.

Values:

Name
Control parameter type
Default value
Description
ctrlArtClipText
BOOL
True
Text marks are clipped if they do not fit within the bounds of the annotation.
ctrlArtCreateScroll
BOOL
False
Does auto scrolling for the zoomed image when annotation is created. Applicable for Filled Rectangle Hollow Rectangle, Highlighter, Typed text, Attach-a-Note, RTF text, Text file, Text Stamp, Hot Spot, Redaction, Button, Encryption, Filled Ellipse and Hollow Ellipse marks.
ctrlArtDisableClipping
BOOL
False
When True, disables clipping through the Windows API call SelectClipRgn. Set this option to True during usage of the MFC print preview facility. See the Microsoft Knowledge Base Article ID: Q128334 for more information.
ctrlArtDisablePainting
BOOL
False
When True, disables painting of all marks.
ctrlArtDisablePPM
BOOL
False
When True, disables PPM in font size calculations.
ctrlArtDoNotModifyCursor
BOOL
False
When True, disables cursor modifications.
ctrlArtEnableFullTextMarksSelect
BOOL
False
When True, enables selecting a text mark when text is not visible.
ctrlArtEnableSelection
BOOL
True
When set to False selections are no longer placed to undo stack.
ctrlArtHideHotSpots
BOOL
False
When True, disables painting of hot spot marks.
ctrlArtHideSelectionIndicator
BOOL
False
When True, disables painting of the selection rectangle.
ctrlArtLargeFonts
BOOL
False
When True then the use of very large fonts are enabled for text marks.
ctrlArtLoadOrientation
BOOL
True
When True, enables loading orientation of annotation .
ctrlArtLockViewing
BOOL
False
When True, indicate access of a mark with a pad lock.
ctrlArtPrint
BOOL
True
When True, enables printing of marks with the image.
ctrlArtRecordDebugInfo
BOOL
False
When True, disables debug information.
ctrlArtRectSelect
BOOL
True
When True, indicates the selection width of the rectangle around the mark.
ctrlArtResize
BOO L
True
When True, enables resizing or changing shape of mark in EditMode.
ctrlArtSave
BOOL
True
When True, enables saving of marks as an embeded file with a TIFF image.
ctrlArtSaveOrientation
BOOL
True
When True, enables saving orientation of annotation.
ctrlArtSelectNoClip
BOOL
False
When True, ignores clipping during selection.
ctrlArtSelectScroll
BOOL
False
When True, allows scroll and select at the same time.
ctrlArtShadowFonts
BOOL
False
When True, enables shadow fonts.
ctrlArtShowTextWarningValue
BOOL
True
When True, enables showing of warning message if you run out of the space in the text marks
ctrlArtThresholdValue
Long
128
Threshold value for ART_BURN_IN_THRESHOLD_METHOD. Possible value is in range [0..255]
ctrlArtUseOneAsFalse
BOOL
False
When True, enables using 1 as False value.
ctrlArtWangLoadCompatibility
BOOL
False
When True, disables wang compatibility for loading.
ctrlArtWangSaveCompatibility
BOOL
False
When True, disables wang compatibility for saving.


enumIGArtCursorType

Group: Enumeration

Description:

Enumerates the various cursor icons that can be used MouseIconGet and MouseIconSet calls.

Values:

cursorNESW

cursorNS

cursorNWSE

cursorEW

cursorWE

cursorSENW

cursorSN

cursorAny

cursorNotOverMark

cursorWait

cursorMove

cursorOverMark

cursorCreateMark

cursorSWNE


enumIGArtMarkType

Group: Enumeration

Description:

Enumerates the various ART mark types, plus provides a value for the "select tool" which appears on the ART Toolbar but is not an actual mark type. See The ART Marks Reference for descriptions of the various mark types.

Values:

markArrow
Arrow
markAttachANote
Attach A Note
markAudio
Audio
markButton
Button
markEncryption
Encryption
markFilledEllipse
Filled Ellipse
markFilledPolygon
Filled Polygon
markFilledRectangle
Filled Rectangle
markForm
Form
markFreehandLine
Freehand Line
markHighlighter
Highlighter
markHollowEllipse
Hollow Ellipse
markHollowPolygon
Hollow Polygon
markHollowRectangle
Hollow Rectangle
markHotSpot
Hot Spot
markImageEmbedded
Image Embedded
markImageReference
Image Reference
markPinUpText
Pin Up Text
markPolyline
Polyline
markProtractor
Protractor
markRedaction
Redaction
markRtfEdit
RTF Edit
markRuler
Ruler
markSelect
Select
markStraightLine
Straight Line
markTextFromFile
Text From File
markTextStamp
Text Stamp
markTypedText
Typed Text

NOTE: ART_MARK_SELECT enum is used to specify the 'tool' currently selected for Art GUI. Art GUI includes all possible mark types plus ART_MARK_SELECT when mouse is used not to create new annotation but to select, point, resize it, etc... I.e. ART_MARK_SELECT is the special value that is not used for mark creation.
NOTE: These constants define a range of user marks reserved for customer use. ImageGear will never use this range of the mark IDs for its purposes.
#define ART_MARK_USER_FIRST 1000
#define ART_MARK_USER_LAST 1999


enumIGArtMeasurementUnits

Group: Enumeration

Description:

Enumerates the different measurement units values that can be used with the AttrMeasurementUnits and GlobalAttrMeasurementUnits properties.

Values:

unitInches
unitFeet
unitYards
unitMiles
unitMicrometers
Millionths of a meter
unitMillimeters
Thousandths of a meter
unitCentimeters
Hundreds of a meter
unitDecimeters
Tenths of a meter
unitMeters
unitKilometers
Thousand meters
unitDekameter
Ten meters


enumIGArtModifyReason

Group: Enumeration

Description:

Enumerates the various reasons for raising the ModifyNotify and PreModifyNotify events.

Values:

reasonModifyAttributes
One or more attributes are modified (from the "Attr" properties).
reasonModifyAnoData
The number of points that have changed.
reasonModifyFileName
The filename of the modified file.
reasonModifyDib
The embedded DIB that was changed.
reasonModifyGroup
The mark's group that was modified.
reasonModifyIndex
The mark's index was changed.
reasonModifyAnnText
The orientation or length of the modified text mark.
reasonModifyNamedBlock
The named block that was modified.


enumIGArtMouseReason

Group: Enumeration

Description:

Enumerates the various reasons for raising the MouseNotify event.

Values:

reasonMouseLButtonDown
Left button down.
reasonMouseLButtonDbl
Left button double-clicked.
reasonMouseLButtonUp
Left button up.
reasonMouseLButtonDown
Right button down.
reasonMouseRButtonDbl
Right button double-clicked.
reasonMouseRButtonUp
Right button up.
reasonMouseEnter
The mouse moves over any visible portion of a mark.
reasonMouseLeave
The mouse was over a mark; the mouse moved; and the mouse is now off a mark.


enumIGArtPenStyle

Group: Enumeration

Description:

Enumerates the various pen-styles that can be used for the AttrPenStyle and GlobalAttrPenStyle properties.

Values:

DASH

DASHDOT

DASHDOTDOT

DOT

SOLID


enumIGArtTextAlignMode

Group: Enumeration

Description:

Enumerates the various text alignment modes when setting AttrTextAlign. When setting lkj, combine a vertical alignment value and a horizontal alignment value: e.g.:

artPage.AttrTextAlign = textAlignVCenter + textAlignCenter

Values:

textAlignLeftTop
Vertical alignment: top; Hoizontal alignment: left justify
textAlignBottom
Vertical alignment: bottom
textAlignRight
Hoizontal alignment: right justify
textAlignCenter
Hoizontal alignment: center
textAlignVCenter
Vertical alignment: top


enumIGArtToolBarReason

Group: Enumeration

Description:

Enumerates the various reasons for raising the ToolBarNotify event.

Values:

reasonToolbarButton
A button has been selected.
reasonToolbarNone
No button is selected.
reasonToolbarHidden
A button on toolbar caption is clicked.
reasonToolbarDEstroyed
The toolbar is about to be destroyed.


enumIGArtUserModeType

Group: Enumeration

Description:

Enumerates the various ART component operating modes that can be used with the UserMode property.

Values:

userEditMode
Provides users with the possibility to create or edit marks
userRunMode
Provides users with the possibility to operate Encryption, Hot Spot, Audio, and Button marks
userViewMode
Provides users with the possibility to view the marks


ImageGear Core Component API Reference

ImageGear Core Component API Reference

ImageGear Core component is a foundation for all other components and contains shared objects used in other componennts such as IGPage, IGRectangle and global attributes such as error handling objects, licensing, component info. ImageGear Core exposes the following objects:

IGColorBook
This class represents a color book.
IGColorBookColor
This class represents a color in the color book.
IGColorBooks
This class represents a collection of color books.
IGColorProfile
This object provides information about a global or local (assigned to the particular image) color profile
IGColorProfileManager
This object provides an access to the global color profiles.
IGColorSpaceConverter
This object provides access to the new color space conversion engine. This color space converter uses a new enumeration for color spaces: enumIGColorSpaceIDs.
IGComponentInfo
Contains information about IG component e.g. version, name, ProgID
IGCoreCtl
The main control that provides access for all other core objects
IGDataArray
Universal array capable of storing the elements of different types
IGDataItem
Universal data contsiner capable of storing the elements of different types
IGDIBInfo
Contains information about image DIB header
IGDLong
Respresents 64-bit integer value
IGDocument
Document is a collection of pages. It can work as a standalone collection not associated with the external file in which case different pages can be loaded to the document from the different sources. Alternatively, document can be associated with the external file in which case it provides the capabilities on in-memory document editing with the ability to save changes back to the external file. It's possible to work with the individual page contained in the document by obtaining a reference to it.
IGDoubleMatrix
Represents a two dimensional matrix which elements have Double type.
IGDoublePoint
The pair of floating-point coordinates
IGDoublePointArray
The array of IGDoublePoint elements
IGDoubleRectangle
Represents a rectangle with the coordinates of Double type.
IGEllipse
Ellispe as defined by the bounding rectangle
IGExtraChannelInfo
A class specifying the extra channel info.
IGExtraChannelInfoArray
A class specifying the array of extra channel info attached to IGPage.
IGGlobalParameter
Data container used to represent ImageGear global parameter value
IGImageAllocationParams
An object used for specifying image allocation paramters
IGImageLayer
Image layer and its attributes
IGImageResolution
Image resolution attributes
IGIntegerArray
An array capable of storing the integer values occupying 1, 2, and 4 bytes
IGLayer
General attributes of the layer
IGLayerArray
Defines composition of layers
IGLicense
This object is contained inside IGCoreCtl and provides access to the licesning API
IGLUT
Provides access to single-channel look up table (LUT).
IGObjectCollection
Collection of objects derived from IIGObject interface
IGPage
This object represents a single page image
IGPalette
This object represents an image palette
IGPaletteEntry
This object represents an entry of the image palette
IGPixel
This object represents a pixel
IGPixelArray
Array of pixels
IGPlatformDIB
Represents a platform-specific DIB. This object is typically created by using the IIGPage.ExportPlatformDIB method.
IGPoint
The pair of integer coordinates
IGPointArray
An array of elements of IGPoint type - 88
IGPolygon
A polygon represented as an array of points
IGRectangle
Rectangle
IGResult
This object is contained inside IGCoreCtl and provides error handling capabilities.
IGResultRecord
Represents a record (error or warning) on the result stack
IGROI
Represents ROI (region of interest) associated with IGPage, there are 3 types of ROI: whole image, rectangle, and non-rectangular area (NRA)
IGSettings
This object is contained inside IGCoreCtl and provides access to global settings.
IGStatusReport
This object represents status report and is passed as a parameter to the IGStatus event
IGStringArray
An array of strings

The following interfaces that don't have corresponding objects are defined in ImageGear Core component:

IIGArray
Base interface for all array objects
IIGComponent
Base interface for all ImageGear components.
IIGCore
Base interface for IGCoreCtl
IIGObject
Base interface for all objects that can be created using CreateObject methods
IIGShape
Base interface for all shapes. Currentlly there are 3 types of shapes: rectangle, ellipse, and polygon

The following enumerations are used in ImageGear Core component:

enumIGAbsDataType
Identifies all abstract data types, absttract data types are a subset of the OLE compatible data types that is used in ImageGear
enumIGArrayType
Identifies the different array types
enumIGBiCompression
Identifies the different compression schemes used for storing image in memory
enumIGColorChannels
Identifies the different color components.
enumIGColorSpaceIDs
Identifies a color space ID.
enumIGColorSpaces
Identifies the different color spaces, RGB, CMYK etc.
enumIGCoreObjType
Identifies all types of creatable objects
enumIGDepthChangeMode
Identifies modes used for changing channel depths of an image.
enumIGDIBExportFormats
Identifies DIB format to be used for a DIB export operation.
enumIGDocumentType
Determines the type of ImageGear document.
enumIGErrorHandlingFlags
Identifies the different error handling flags
enumIGExtraChannelColorType
Specifies extra channel's color type.
enumIGExtraChannelType
Specifies types of extra channels (Unknown, Mask or Spot).
enumIGLayerType
Supported layer types.
enumIGLicenseType
Identifies the different types of product license - evaluation, development, or deployment
enumIGMaskChannelModes
Specifies mode of Mask channel (selected area or masked area).
enumIGMergeModes
Identifies the type of arithmetic operation (merge method)
enumIGPaletteFormats
Identifies the different formats used for storing image palette in the external file
enumIGPixelAccessType
Identifies the different methods of accessing pixel values
enumIGPixelArrayType
Identifies the different types of pixel array
enumIGPixelType
Identifies the different pixel types
enumIGResolutionUnits
Identifies the different resolution units
enumIGROIType
Identifies the different ROI (region of interest) types
enumIGShapeType
Identifies the different shape types
enumIGSpotColorVendorIDs
Specifies predefined Vendor IDs.

Below is an alphabetized reference of ImageGear Core objects and interfaces and their API (properties, methods, and events).


IGColorBook

Type: Class

Description:

This class represents a color book.

Declaration:

Class IGColorBook

Members:

ColorsPerPage
property
Specifies the number of colors per page.
ColorType
property
Specifies the color space Value: used for displaying all the colors from the color book.
Description:
property
Specifies description of the color book.
FileName
property
Specifies the color book file name.
KeyColorPage
property
Specifies the key color on the page.
NumberOfColors
property
Specifies the number of colors in the color book.
Postfix
property
Specifies the color book postfix string Value:.
Prefix
property
Specifies the color book prefix string Value:.
Title
property
Specifies the color book title.
VendorID
property
Specifies the color book vendor ID.
AddColor
method
Adds color to the color book.
AddNewColor
method
Adds new color to the color book.
GetColor
method
Returns a color with the specified ID from the color book.
GetColorByIndex
method
Returns a color with the specified index from the color book.


AddColor

Group: Method

Declaration:

Sub AddColor(Color As IGColorBookColor)

Description:

This method adds a new color to the color book.

Parameters:

Color
Color to add to the color book (IGColorBookColor)

Return Value:

N/A

Sample

Display_View


AddNewColor

Group: Method

Declaration:

Sub AddNewColor(Name As String, ColorID As IGDLong, Pixel As
IGPixel)

Description:

This method creates and adds a new color to the color book.

Parameters:

Name
Name of the color book
ColorID
Color ID of the color book
Pixel
Color space and value of the color (IGPixel)

Return Value:

N/A

Sample:

Display_View


GetColor

Group: Method

Declaration:

GetColor(ColorID As IGDLong) As IGColorBookColor

Description:

This method gets a color with the specified ID from the color book.

Parameters:

ColorID
Color ID of the requested color in the color book.

Return Value:

Obtained IGColorBookColor object.

Sample

Display_View


GetColorByIndex

Group: Method

Declaration:

GetColorByIndex(Index As Long) As IGColorBookColor

Description:

This method gets a color with the specified index from the color book.

Parameters:

Index
Index of the requested color in the color book

Return Value:

Obtained IGColorBookColor object.

Sample

Display_View


ColorsPerPage

Group: Property

Declaration:

Property ColorsPerPage As Long

Description:

This property specifies the number of colors per page in the color book (should be not greater than 9).

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
should be not greater than 9
Sample:
Display_View


ColorType

Group: Property

Declaration:

Property ColorType As enumIGColorSpaceIDs

Description:

This property specifies color book's color type.

Property Summary:

Data Type:
enumIGColorSpaceIDs
Default Value:
N/A
Access:
Read only
Settings:
any value of enumIGColorSpaceIDs
Sample:
Display_View


Description

Group: Property

Declaration:

Property Description As String

Description:

This property specifies description of the color book.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
any
Sample:
Display_View


FileName

Group: Property

Declaration:

Property FileName As String

Description:

This property specifies filename of the color book if it was read from the file.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
any
Sample:
Display_View


KeyColorPage

Group: Property

Declaration:

Property KeyColorPage As Long

Description:

This property specifies KeyColorPage attribute of the color book (should not be greater than colors per page count).

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any (should not be greater than colors per page count)
Sample:
Display_View


NumberOfColors

Group: Property

Declaration:

Property NumberOfColors As Long

Description:

This property specifies the number of colors in the color book.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any
Sample:
Display_View


Postfix

Group: Property

Declaration:

Property Postfix As String

Description:

This property specifies postfix of the color book.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
any
Sample:
Display_View


Prefix

Group: Property

Declaration:

Property Prefix As String

Description:

This property specifies prefix of the color book.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
any
Sample:
Display_View


Title

Group: Property

Declaration:

Property Title As String

Description:

This property specifies the title of the color book.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
any
Sample:
Display_View


VendorID

Group: Property

Declaration:

Property VendorID As enumIGSpotColorVendorIDs

Description:

This property specifies the Vendor ID of the color book.

Property Summary:

Data Type:
enumIGSpotColorVendorIDs
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGSpotColorVendorIDs
Sample:
Display_View


IGColorBookColor

Description:

This class represents a color in the color book.

Declaration:

Class IGColorBookColor

Members

ColorSpace
property
Color space of the color color.
Name
property
Name of the color book color.
GetColorID
method
Gets the color ID of the color book color.
GetColorValue
method
Gets the color value of the color book color.


ColorSpace

Declaration:

Property ColorSpace As enumIGColorSpaceIDs

Description:

This property specifies the color space of the color book color.

Property Summary:

Data Type:
enumIGColorSpaceIDs
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGColorSpaceIDs
Sample:
Display_View


GetColorID

Group: Method

Declaration:

GetColorID() As IGDLong

Description:

This method gets Color ID of the specified color book color.

Parameters:

N/A

Return Value:

Color ID of the color book color

Sample

Display_View


GetColorValue

Group: Method

Declaration:

GetColorValue() As IGPixel

Description:

This method gets the color value of the color book color.

Parameters:

N/A

Return Value:

IGPixel representing color value of the color book color

Sample

Display_View


Name

Group: Property

Declaration:

Property Name As String

Description:

This property specifies the name of the color book color.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
Any
Sample:
Display_View


IGColorBooks

Type: Class

Description:

This class represents a collection of color books.

Declaration:

Class IGColorBooks

Members:

Count
property
Specifies the number of color books in the collection.
Add
method
Adds a new color book to the collection.
AddBookFromFile
method
Adds a new color book to the collection from the specified file name.
AddNewBook
method
Creates and adds a new color book to the collection.
Get
method
Returns a color book for the specified vendor ID.
GetByIndex
method
Returns a color book with the specified index.
GetSynonym
method
Returns the synonym vendor ID with the specified index.
GetSynonymCount
method
Returns the number of synonym vendor IDs associated with the specified ID.
Remove
method
Removes color book for the specified vendor ID.
RemoveByIndex
method
Removes color book with the specified index.


Add

Group: Method

Declaration:

Sub Add(ColorBook As IGColorBook)

Description:

This method adds the specified color book to the color books collection.

Parameters:

ColorBook
Color book to add (IGColorBook).

Return Value:

N/A

Sample:

Display_View


AddBookFromFile

Group: Method

Declaration:

Sub AddBookFromFile(FileName As String)

Parameters:

FileName
Color book filename (an *.acb file).

Description:

This method adds a color book from file to the color books collection.

Return Value:

N/A

Sample:

Display_View


AddNewBook

Group: Method

Declaration:

Sub AddNewBook(VendorID As enumIGSpotColorVendorIDs, Title As
String, ColorType As enumIGColorSpaceIDs)

Parameters:

VendorID
Vendor ID of the new color book (enumIGSpotColorVendorIDs)
lpTitle
Title of the new color book
ColorType
Color space of new color book (enumIGColorSpaceIDs)

Description:

This method creates and adds new color book from the specified parameters.

Return Value:

N/A

Sample:

Display_View


Count

Group: Property

Declaration:

Property Count As Long

Description:

This property specifies the number of color books in the color books collection.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Sample:
Display_View


Get

Group: Method

Declaration:

Get(VendorID As enumIGSpotColorVendorIDs) As IGColorBook

Parameters:

VendorID
Vendor ID of the requested ColorBook (enumIGSpotColorVendorIDs).

Description:

This method gets a color book object with specified Vendor ID from the color books collection.

Return Value:

Obtained IGColorBook object or NULL if no color book is found.

Sample:

Display_View


GetByIndex

Group: Method

Declaration:

GetByIndex(Index As Long) As IGColorBook

Parameters:

Index
Index of the requested ColorBook.

Description:

This method gets a color book object with the specified index from the color books collection.

Return Value:

Obtained IGColorBook object or NULL if no color book is found.

Sample:

Display_View


GetSynonymCount

Group: Method

Declaration:

GetSynonymCount(SynonymID As enumIGSpotColorVendorIDs) As Long

Parameters:

SynonymID
Synonym ID to get the number of synonyms for (enumIGSpotColorVendorIDs)

Description:

This method gets the number of synonyms for the specified Vendor ID.

Return Value:

The number of synonyms for the specified Vendor ID.

Sample:

Display_View


GetSynonym

Group: Method

Declaration:

GetSynonym(SynonymID As enumIGSpotColorVendorIDs, Index As
Long) As enumIGSpotColorVendorIDs

Parameters:

SynonymID
Synonym ID to get a synonym for (.enumIGSpotColorVendorIDs)
Index
Index of the synonym to get.

Description:

This method gets a synonym Vendor ID with the specified index for the specified Vendor ID.

Return Value:

Synonym ID for the specified Vendor ID (enumIGSpotColorVendorIDs)

Sample:

Display_View


Remove

Group: Method

Declaration:

Sub Remove(VendorID As enumIGSpotColorVendorIDs)

Parameters:

VendorID
Vendor ID of the color book to remove (enumIGSpotColorVendorIDs).

Description:

This method removes color book object with the specified Vendor ID from the color books collection.

Return Value:

None

Sample:

Display_View


RemoveByIndex

Group: Method

Declaration:

Sub RemoveByIndex(Index As Long)

Parameters:

Index
Index of the color book to remove.

Description:

This method removes a color book object with the specified index from the color books collection.

Return Value:

None

Sample:

Display_View


IGColorProfile

Group: Object

Description:

This object provides information about a global or local (assigned to the particular image) color profile.

Interface:

IIGColorProfile extends IIGObject

Class Members:

ColorSpace
property
This property returns the color space constant associated with the color profile.
Description
property
This property returns the text information about color profile.
Local
property
This property returns True, if the color profile is attached to the global color profile storage and False in case of image color profile.
DataGetCopy
method
This method returns a copy of the color profile binary data.
DataUpdateFrom
method
This method updates binary color profile data from the external byte array.


ColorSpace

Group: Property

Description:

This property returns the color space constant associated with the color profile.

Property Summary:

Data Type:
enumeration enumIGColorSpaceIDs
Default Value:
N/A
Access:
Read only
Settings:
The only valid values are:
  • IG_COLOR_SPACE_ID_RGB
  • IG_COLOR_SPACE_ID_CMYK
  • IG_COLOR_SPACE_ID_I
Sample:
None


DataGetCopy

Group: Method

Description:

This method returns a copy of the color profile binary data.

Declaration:

DataGetCopy() as Variant

Return value:

A byte array with the binary data.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DataUpdateFrom

Group: Method

Description:

This method updates binary color profile data from the external byte array.

Declaration:

DataUpdateFrom(ByVal NewData as Variant)

Parameters:

NewData
Array of bytes containing binary data to be set.

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Description

Group: Property

Description:

This property returns the text information about color profile.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Text string with color profile information.
Sample:
None


Local

Group: Property

Description:

This property returns True, if the color profile is attached to the global color profile storage and False in case of image color profile.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read only
Settings:
True, False
Sample:
None


IGColorProfileManager

Group: Object

Description:

This object provides an access to the global color profiles.

Interface:

IIGColorProfileManager extends IIGObject

Class Members:

ColorProfileCreateEmpty
method
This method creates an empty color profile object.
ColorProfileGetCopy
method
This method returns the global color profile according to the specified color space and profile group.
ColorProfileResetAll
method
This method resets all global color profiles to the default values.
ColorProfileUpdateFrom
method
This method updates the global color profile.


ColorProfileCreateEmpty

Group: Method

Description:

This method creates an empty color profile object.

Declaration:

ColorProfileCreateEmpty() as IIGColorProfile

Return value:

Empty color profile being created.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorProfileGetCopy

Group: Method

Description:

This method returns the global color profile according to the specified color space and profile group (see enumIGColorProfileGroups).

Declaration:

ColorProfileGetCopy(ColorSpace as enumIGColorSpaceIDs,
ProfileGroup as enumIGColorProfileGroups) as IIGColorProfile

Parameters:

ColorSpace
Color space of the requested color profile. The only valid values are:
  • IG_COLOR_SPACE_ID_RGB
  • IG_COLOR_SPACE_ID_CMYK
  • IG_COLOR_SPACE_ID_I
ProfileGroup
Profile group of the requested color profile. Possible values are:
  • IG_CP_GRP_WORKING = 0
  • IG_CP_GRP_IMPORT = 1
  • IG_CP_GRP_EXPORT = 2

Return value:

Global color profile for the specified color space and profile group.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorProfileResetAll

Group: Method

Description:

This method resets all global color profiles to the default values.

Declaration:

ColorProfileResetAll(Convert as Boolean)

Parameters:

Convert
If True then all images associated with global profiles are converted according to the default color profile values

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorProfileUpdateFrom

Group: Method

Description:

This method updates the global color profile.

Declaration:

ColorProfileUpdateFrom(ColorSpace as enumIGColorSpaceIDs,
ProfileGroup as enumIGColorProfileGroups, ColorProfile as
IIGColorProfile, Convert as Boolean)

Parameters:

ColorSpace
Color space of the color profile. The only valid values are:
  • IG_COLOR_SPACE_ID_RGB
  • IG_COLOR_SPACE_ID_CMYK
  • IG_COLOR_SPACE_ID_I
ProfileGroup
Profile group the color profile is updated in. See enumIGColorProfileGroups
ColorProfile
Color profile to be copied into the global color profile storage.
Convert
If True, then the method convers all images associated with old profile to new profile, but if False, then it simply replaces profile without any conversion.

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGColorSpaceConverter

Group: Object

Description:

This object provides access to the new color space conversion engine. This color space converter uses a new enumeration for color spaces: enumIGColorSpaceIDs. These IDs can be combined to specify not only a color space, but also whether or not alpha and extra channels are present, as well as what type of alpha channel is present.

The procedure for using this color space converter is simple:

  1. Create an IGColorSpaceConverter object.
  2. Set its properties according to the type of conversion you want to do.
  3. Then call its ApplyToPage method to apply the conversion to an image stored in an IGPage object.

Interface:

IGColorSpaceConverter extends IIGObject

Class Members:

AlphaBlendApply
property
Specifies whether or not an image with an alpha channel should be blended with the background color specified by AlphaBlendBkGnd
AlphaBlendBkGnd
property
Background color used for alpha blending, if AlphaBlendApply is True
ColorSpace
property
Destination color space ID (see enumIGColorSpaceIDs)
ExtraChannelCount
property
Number of extra channels to transfer from source to result, if ExtraRange is True
ExtraRange
property
Specifies whether or not a specific range of extra channels should be transferred from source to result. If False, all extra channels are transferred. If True, extra channels specified by ExtraStartChannel and ExtraChannelCount are transferred
ExtraStartChannel
property
Index of first extra channel to transfer from source to result, if ExtraRange is True
ApplyToPage
method
Applies color space conversion to an image


AlphaBlendApply

Group: Property

Description:

This property specifies whether or not an image with an alpha channel should be blended with the background color specified by AlphaBlendBkGnd.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


AlphaBlendBkGnd

Group: Property

Description:

This property specifies a background color used for alpha blending. This is only used if AlphaBlendApply is set to True.

Property Summary:

Data Type:
IIGPixel
Default Value:
0 (black)
Access:
Read only
Settings:
background color
Bits Per Pixel:
N/A
Sample:
None


ApplyToPage

Group: Method

Description:

This method applies color space conversion to an image stored in an IGPage object.

Declaration:

ApplyToPage(Page as IIGPage)

Parameters:

Page
IGPage object containing image to apply color space conversion to

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorSpace

Group: Property

Description:

This property specifies the color space to convert to. It is a color space ID of type enumIGColorSpaceIDs. This ID is a bit field which can combine multiple values from enumIGColorSpaceIDs. It can be made up of one, two, or three components. It must describe the color space (RGB, CMYK, grayscale, etc). It may also indicate that a type of alpha channel is present (alpha, pre-multiplied alpha) and/or the presence of one or more extra channels. For example:

  • IG_COLOR_SPACE_ID_RGB - RGB with no alpha or extra channels.
  • IG_COLOR_SPACE_ID_Gy or IG_COLOR_SPACE_ID_A - grayscale with an alpha channel.
  • IG_COLOR_SPACE_ID_RGB or IG_COLOR_SPACE_ID_P or IG_COLOR_SPACE_ID_Ex - RGB with a pre-multiplied alpha channel and one or more extra channels.

Property Summary:

Data Type:
enumIGColorSpaceIDs
Default Value:
IG_COLOR_SPACE_ID_None
Access:
Read/Write
Settings:
any valid combination of enumIGColorSpaceIDs
Bits Per Pixel:
N/A
Sample:
None


ExtraChannelCount

Group: Property

Description:

This property specifies the number of extra channels to transfer from source to result, if ExtraRange is set to True.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 to number of extra channels present in source image starting at ExtraRange
Bits Per Pixel:
N/A
Sample:
None


ExtraRange

Group: Property

Description:

This property specifies whether or not a specific range of extra channels should be transferred from source to result. If False, all extra channels are transferred. If True, extra channels specified by ExtraStartChannel and ExtraChannelCount are transferred.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
None


ExtraStartChannel

Group: Property

Description:

This property specifies the index of the first extra channel to transfer from source to result, if ExtraRange is set to True.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 to the number of extra channels present in source image - 1
Bits Per Pixel:
N/A
Sample:
None


IGComponentInfo

Group: Object

Description:

This object provides information about ImageGear component.

Interface:

IIGComponentInfo

Class Members:

BuildDateInfo
property
This property provides the date when component has been built
Info
property
This property provides the description of component
Name
property
This property provides the component name
ProgID
property
This property provides the ProgID of component
VersionMajor
property
This property provides the major version of component
VersionMinor
property
This property provides the minor version of component
VersionUpdate
property
This property provides the update version (build identifier) of component


BuildDateInfo

Group: Property

Description:

This property provides the date when component has been built.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Any string
Bits Per Pixel:
N/A
Sample:
Core


Info

Group: Property

Description:

This property provides the description of component.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Name

Group: Property

Description:

This property provides the component name.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
Not applicable
Sample:
Core


ProgID

Group: Property

Description:

This property provides the ProgID of component.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


VersionMajor

Group: Property

Description:

This property provides the major version of component.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


VersionMinor

Group: Property

Description:

This property provides the minor version of component.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


VersionUpdate

Group: Property

Description:

This property provides the update version (build identifier) of component.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGCoreCtl

Group: Control

Description:

The Core ImageGear component. It should be included into every application using ImageGear. The instance of IGCoreCtl should be either added to the form during design time, or created dynamically during run time. All other Core objects are either contained inside IGCoreCtl or created using its methods.

Interface:

IIGCoreCtl extends IIGCore

Class Members:

ColorBooks
property
This property specifies the color book collection loaded in ImageGear.
ComponentCount
property
The total number of components associated with the Core including the Core itself.
Cpm
property
This property provides an access to the global color profile manager.
License
property
Provides access to the IGLicense object contained inside of the IG Core control.
Result
property
Provides access to the IGResult object contained inside of the IG Core control.
Settings
property
Provides access to the IGSettings object contained inside of the IG Core control. IGSettings object provides access to the ImageGear global settings.
StatusEventEnabled
property
This property enables/disables status events.
AssociateComponent
method
Associates ImageGear component with ImageGear Core control. Every component has to be explicitly associated with the Core component using this method before it can be used.
CreateColorChannelInfo
method
Creates a new spot channel that uses regular color space like RGB, CMYK etc and color value.
CreateComponent
method
Creates new ImageGear component based on its ProgID
CreateDocument
method
Creates a new instance of the IGDocument object
CreateImageLayer
method
Creates an image layer from the raster page.
CreateMaskColorChannelInfo
method
Creates a new alpha mask channel that uses regular color space like RGB, CMYK etc and color value.
CreateMaskSpotChannelInfo
method
Creates a new alpha mask channel that uses a special (like Pantone) color.
CreateObject
method
Creates a new instance of any object that implements IIGObject interface. All the creatable objects contained inside Core implement this interface.
CreatePage
method
Creates a new instance of the IGPage object
CreateSpotChannelInfo
method
Creates a new spot channel that uses a special (like Pantone) color.
GetComponentInfo
method
Returns a new object (IGComponentInfo) containing information about IG component based on the component's index
GetComponentInfoByName
method
Returns a new object (IGComponentInfo) containing information about IG component based on the component's name
GetComponentInfoByProgID
method
Returns a new object (IGComponentInfo) containing information about IG component based on the component's ProgID
RasterSizeGet
method
This method calculates the size of a raster in bytes based on a specified raster width and number of bits per pixel.
SafeArrayGet
method
This method returns a safe array using the given parameters.
IGError
event
Error event, if enabled, it's fired each time a new error or warning is added to the result stack.
IGStatus
event
Status event, if enabled, it's fired each time IG operation reports the progress. The number of reports is usually linear to the image height, e.g. progress is reported after decoding each raster during image loading.


AssociateComponent

Group: Method

Description:

This method associates ImageGear component with ImageGear Core control. Every component has to be explicitly associated with the Core component using this method before it can be used.

Declaration:

AssociateComponent (pComponent As IGComponent)

Parameters:

pComponent
ImageGear component to be associated with the Core

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorBooks

Group: Property

Declaration:

Property ColorBooks As IGColorBooks

Description:

This property specifies the color book collection loaded in ImageGear.

Property Summary:

Data Type:
IGColorBooks
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display_View


ComponentCount

Group: Property

Description:

This property returns the total number of components associated with the Core including the Core itself.

Property Summary:

Data Type:
Long
Default Value:
1
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Cpm

Group: Property

Description:

This property provides an access to the global color profile manager.

Property Summary:

Data Type:
IIGColorProfileManager
Default Value:
N/A
Access:
Read only
Settings:
Valid IGColorProfileManager object
Bits Per Pixel:
N/A
Sample:
Core


CreateColorChannelInfo

Group: Method

Declaration:

CreateColorChannelInfo(Pixel As IGPixel) As IGExtraChannelInfo

Parameters:

Pixel
IGPixel object specifying color space and value for the new color channel

Description:

This method creates a new spot channel that uses regular color space like RGB, CMYK etc and color value.

Return Value:

IGExtraChannelInfo object representing new spot channel info.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateComponent

Group: Method

Description:

This method creates new ImageGear component based on its ProgID.

Declaration:

CreateComponent (sProgID As String) As IGComponent

Parameters:

sProgID
an OLE ProgID string of the component

Return value:

A new instance of the IG component object (or control).

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateDocument

Group: Method

Description:

This method creates a new instance of the IGDocument object.

Declaration:

CreateDocument (NumPages As Long) As IGDocument

Parameters:

NumPages
The initial number of empty pages in the document.

Return value:

A new instance of the IGDocument object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateImageLayer

Group: Method

Description:

This method creates the image layer from the raster page.

Declaration:

CreateImageLayer (Page as IGPage) as IGImageLayer

Parameters:

Page
Raster IGPage to create image layer from

Return Value:

IGImageLayer


CreateMaskColorChannelInfo

Group: Method

Description:

This method creates a new alpha mask channel that uses regular color space like RGB, CMYK etc and color value.

Declaration:

CreateMaskColorChannelInfo(Mode As enumIGMaskChannelModes,
Pixel As IGPixel) As IGExtraChannelInfo

Parameters:

Mode
Mask mode for the new mask channel (enumIGMaskChannelModes).
Pixel
IGPixel object specifying color space and value for the new color channel

Return Value:

IGExtraChannelInfo object representing new alpha mask channel info.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateMaskSpotChannelInfo

Group: Method

Description:

This method creates a new alpha mask channel that uses a special (like Pantone) color. This channel does not store a color name, but looks it up from the loaded color books.

Declaration:

CreateMaskSpotChannelInfo(Mode As enumIGMaskChannelModes,
VendorID As enumIGSpotColorVendorIDs, ColorID As IGDLong) As
IGExtraChannelInfo

Parameters:

Mode
Mask mode for the new mask channel (enumIGMaskChannelModes)
VendorID
Vendor ID for the new mask channel
ColorID
Color ID for the new mask channel

Return Value:

IGExtraChannelInfo object representing new alpha mask channel info.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateObject

Group: Method

Description:

This method creates a new instance of any object that implements IIGObject interface. All the creatable objects contained inside Core implement this interface.

Declaration:

CreateObject (ObjType As enumIGCoreObjType) As IGObject

Parameters:

ObjType
The type of object to be created, see enumIGCoreObjType

Return value:

A new object of the requested type.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreatePage

Group: Method

Description:

This method creates a new instance of the IGPage object.

Declaration:

CreatePage () As IGPage

Parameters: N/A

Return value:

A new instance of IGPage object

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateSpotChannelInfo

Group: Method

Declaration:

CreateSpotChannelInfo(VendorID As enumIGSpotColorVendorIDs,
ColorID As IGDLong) As IGExtraChannelInfo

Parameters:

vendorID
Vendor ID for the new spot channel (enumIGSpotColorVendorIDs)
colorID
Color ID for the new spot channel

Description:

This method creates a new spot channel that uses a special (like Pantone) color. This channel does not store a color name, but looks it up from the loaded color books.

Return Value:

IGExtraChannelInfo object representing new spot channel info.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetComponentInfo

Group: Method

Description:

This method creates a new object containing information about IG component based on the component's index.

Declaration:

GetComponentInfo (Index As Long) As IGComponentInfo

Parameters:

Index
Index of the component inside ImageGear's list of asscociated components. Can be within [0..ComponentCount-1] range.

Return value:

A new instance of the IGComponentInfo object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetComponentInfoByName

Group: Method

Description:

This method returns a new object containing information about IG component based on the component's name.

Declaration:

GetComponentInfoByName (sCompName As String) As IGComponentInfo

Parameters:

sCompName
The name of the component.

Return value:

A new instance of the IGComponentInfo object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetComponentInfoByProgID

Group: Method

Description:

This method returns a new object containing information about IG component based on the component's ProgID.

Declaration:

GetComponentInfoByProgID (sProgID As String) As IGComponentInfo

Parameters:

sProgID
OLE ProgID string of the component

Return value:

A new instance of the IGComponentInfo object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGError

Group: Event

Description:

Error event, if enabled, it's fired each time a new error or warning is added to the result stack. A new IGResultRecord object is created and filled with the info about error or warning each time the event is fired. This event can be turned on/off using the IGGearCtl.Result. NotificationFlags property.

Declaration:

Sub IGCoreCtl1_IGError (ByVal pResRecord As IIGResultRecord)

Parameters:

pResRecord
An object containing info about an error or warning


IGStatus

Group: Event

Description:

Status event, if enabled, it's fired each time IG operation reports the progress. The number of reports is usually linear to the image height, e.g. progress is reported after decoding each raster during image loading. New IGStatusReport object is created each time the event is fired.

Declaration:

Sub IGCoreCtl1_IGStatus (ByVal pStatusReport As
IIGStatusReport)

Parameters:

pStatusReport
A new object containing info about the progress.


License

Group: Property

Description:

This property provides access to the IGLicense object contained inside of the IG Core control.

Property Summary:

Data Type:
IGLicense
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


RasterSizeGet

Group: Method

Description:

This method calculates the size of a raster in bytes based on a specified raster width and number of bits per pixel. The size is calculated assuming that the raster uses DWORD-padding as is the case in standard DIB format. Also, bit counts of 9-15 are treated as 16. The calculation is (Width * BitCount) / 8, with DWORD padding.

Declaration:

RasterSizeGet(Width as Long, BitCount as Long) as Long

Parameters:

Width
Width of raster in pixels
BitCount
Number of bits per pixel

Return value:

Size of raster in bytes.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Result

Group: Property

Description:

This property provides access to the IGResult object contained inside of the IG Core control. The IGResult object provides all the information about result stack including the number of errors, number of warning, as well as the information about each individual error or warning.

Property Summary:

Data Type:
IGResult
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


SafeArrayGet

Group: Method

Description:

This method returns a safe array using the given parameters. This allows you to access memory contents safely given a pointer to the beginning of the data in memory, the size of each item, and the number of items.

Declaration:

SafeArrayGet(
ArrayPtr as Long,
ItemSize as Long,
ItemCount as Long) as Variant

Parameters:

ArrayPtr
Pointer to the beginning of data in memory
ItemSize
Size of an individual item in the data
ItemCount
Number of items in the data

Return value:

Safe array for accessing the given memory as described.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Settings

Group: Property

Description:

This property provides access to the IGSettings object contained inside of the IG Core control. IGSettings object provides access to the ImageGear global settings.

Property Summary:

Data Type:
IGSettings
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


StatusEventEnabled

Group: Property

Description:

This property enables/disables status events. If this property is True, then IGStatus event is fired every time the row of the image has been processed.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Core


IGDataArray

Group: Object

Description:

This object implements the array of an arbitrary elements. It can keep the data of the following types: Boolean, String, Long, Double, IGDLong (64-bit integer), and IGRectangle.

NOTE: The items of IGDataArray are IGDataArray objects. IGDataArray is a generalized data type (analog of VARIANT in VB) that can have any of the types defined by DataType property

Interface:

IIGDataArray extends IIGArray

Class Members:

Boolean
property
This indexed property provides access to the array element in case if array elements are of the Boolean type.
DataType
property
This property returns the type of the data
Double
property
This indexed property provides access to the array element in case if array elements are of the Double type.
Long
property
This indexed property provides access to the array element in case if array elements are of the Long type.
Size
property
This property returns the number of elements currently stored in the array.
String
property
This indexed property provides access to the array element in case if array elements are of the String type.
Type
property
This property returns the type of data elements stored in the array.
ChangeAttrs
method
This method changes array attributes such as the type and the number of elements stored in the array.
GetDLongCopy
method
This method creates a new object containing a copy of the specified array element of the IGDLong type.
GetDoubleRectangleCopy
method
This method creates a new object containing a copy of the specified array element of the IGDoubleRectangle type.
GetLUTCopy
method
This method creates a new object containing a copy of the specified array element of the IGLUT type.
GetRectangleCopy
method
This method creates a new object containing a copy of the specified array element of the IGRectangle type.
UpdateDLongFrom
method
This method updates the specified element in the array from the IGDLong object passed as a parameter. The IGDLong object passed as a parameter is not referenced inside the array, but rather its data is copied into it.
UpdateDoubleRectangleFrom
method
This method updates the specified element in the array from the IGDoubleRectangle object passed as a parameter. The IGDoubleRectangle object passed as a parameter is not referenced inside the array, but rather its data is copied into it.
UpdateLUTFrom
method
This method updates the specified element in the array from the IGLUT object passed as a parameter.
UpdateRectangleFrom
method
This method updates the specified element in the array from the IGRectangle object passed as a parameter. The IGDLong object passed as a parameter is not referenced inside the array, but rather its data is copied into it.


Boolean

Group: Property

Description:

This indexed property provides access to the array element in case if array elements are of the Boolean type.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Index
[0..Size-1]
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Core


ChangeAttrs

Group: Method

Description:

This method changes array attributes such as the type and the number of elements stored in the array. If the type of array elements is not changed the previous values are preserved in the array.

Declaration:

ChangeAttrs (NewType As enumIGAbsDataType, NewSize As Long)

Parameters:

NewType
New type of the array, see all enumIGAbsDataType values except of IG_DATA_ARRAY
NewSize
New size of the array (the number of elements)

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DataType

Group: Property

Description:

This property returns the type of the data in IGDataArray objects.

NOTE: The items of IGDataArray are IGDataArray objects. IGDataArray is a generalized data type (analog of VARIANT in VB) that can have any of the types defined by DataType property

Property Summary:

Data Type:
enumIGAbsDataType
Default Value:
IG_DATA_LONG
Access:
Read only
Settings:
see enumIGAbsDataType
Bits Per Pixel:
N/A
Sample:
Core


Double

Group: Property

Description:

This indexed property provides access to the array element in case if array elements are of the Double type.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


GetDLongCopy

Group: Method

Description:

This method creates a new object containing a copy of the specified array element of the IGDLong type.

Declaration:

GetDLongCopy (Index As Long) As IGDLong

Parameters:

Index
Can be in the [0..Size-1] range.

Return value:

A new instance of the IGDLong object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetDoubleRectangleCopy

Group: Method

Description:

This method creates a new object containing a copy of the specified array element of the IGDoubleRectangle type.

Declaration:

GetDoubleRectangleCopy(Index As Long) As IGDoubleRectangle

Parameters:

Index
Can be in the [0..Size-1] range.

Return value:

Returns the new copy of IGDoubleRectangle object.

Bits Per Pixel:

N/A

Sample:

None


GetLUTCopy

Group: Method

Description:

This method creates a new object containing a copy of the specified array element of the IGLUT type.

Declaration:

GetLUTCopy (Index As Long) As IGLUT

Parameters:

Index
Can be in the [0..Size-1] range.

Return value:

A new instance of the IGLUT object.

Bits Per Pixel:

N/A

Sample:

None


GetRectangleCopy

Group: Method

Description:

This method creates a new object containing a copy of the specified array element of the IGRectangle type.

Declaration:

GetRectangleCopy (Index As Long) As IGRectangle

Parameters:

Index
Can be in the [0..Size-1] range.

Return value:

A new instance of the IGRectangle object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Long

Group: Property

Description:

This indexed property provides access to the array element in case if array elements are of the Long type.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Size

Group: Property

Description:

This property returns the number of elements currently stored in the array.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


String

Group: Property

Description:

This indexed property provides access to the array element in case if array elements are of the String type.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Index
[0..Size-1]
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property returns the type of data elements stored in the array.

Property Summary:

Data Type:
enumIGArrayType
Default Value:
IG_ARRAY_DATA
Access:
Read only
Settings:
see enumIGArrayType
Bits Per Pixel:
N/A
Sample:
Core


UpdateDLongFrom

Group: Method

Description:

This method updates the specified element in the array from the IGDLong object passed as a parameter. The IGDLong object passed as a parameter is not referenced inside the array, but rather its data is copied into it.

Declaration:

UpdateDLongFrom (Index As Long, pObject As IGDLong)

Parameters:

Index
Can be within the [0..Size-1] range.
pObject
IGDLong object to copy data from.

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateDoubleRectangleFrom

Group: Method

Description:

This method updates the specified element in the array from the IGDoubleRectangle object passed as a parameter. The IGDoubleRectangle object passed as a parameter is not referenced inside the array, but rather its data is copied into it.

Declaration:

UpdateDoubleRectangleFrom(Index As Long, Rectangle As
IGDoubleRectangle)

Parameters:

Index
Can be within the [0..Size-1] range.
Rectangle
IGDoubleRectangle object to copy data from.

Return value:

None

Bits Per Pixel:

N/A

Sample:

None


UpdateLUTFrom

Group: Method

Description:

This method updates the specified element in the array from the IGLUT object passed as a parameter. The IGLUT object passed as a parameter is not referenced inside the array, but rather its data is copied into it.

Declaration:

UpdateLUTFrom (Index As Long, pObject As IGLUT)

Parameters:

Index
Can be in the [0..Size-1] range.
pObject
IGLUT object to copy data from.

Return value:

N/A

Bits Per Pixel:

N/A

Sample:

None


UpdateRectangleFrom

Group: Method

Description:

This method updates the specified element in the array from the IGRectangle object passed as a parameter. The IGDLong object passed as a parameter is not referenced inside the array, but rather its data is copied into it.

Declaration:

UpdateRectangleFrom (Index As Long, pObject As IGRectangle)

Parameters:

Index
Can be within the [0..Size-1] range.
pObject
IGRectangle object to copy data from.

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGDataItem

Group: Object

Description:

This object represents the universal data contsiner capable of storing a single value of different types.

Interface:

IIGDataItem

Class Members:

Array
property
This property returns a reference for the IGDataArray member of the object.
Boolean
property
This property provides access to the Boolean member of the object.
DLong
property
This property returns a reference for the IGDLong member of the object.
Double
property
This property provides access to the Double member of the object.
DoubleRectangle
property
This property returns a reference for the IGDoubleRectangle member of the object.
Long
property
This property provides access to the Long member of the object.
Rectangle
property
This property returns a reference for the IGRectangle member of the object.
String
property
This property provides access to the String member of the object.
Type
property
This property returns the current type of data stored inside the object.
ChangeType
method
This method changes the type of data stored inside the object


Array

Group: Property

Description:

This property returns a reference for the IGDataArray member of the object.

Property Summary:

Data Type:
IGDataArray
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


Boolean

Group: Property

Description:

This property provides access to the Boolean member of the object.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Core


ChangeType

Group: Method

Description:

This method changes the type of data stored inside the object.

Declaration:

ChangeType (NewType As enumIGAbsDataType)

Parameters:

NewType
New data type, see enumIGAbsDataType

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DLong

Group: Property

Description:

This property returns a reference for the IGDLong member of the object.

Property Summary:

Data Type:
IGDLong
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


Double

Group: Property

Description:

This property provides access to the Double member of the object.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


DoubleRectangle

Group: Property

Description:

This property returns a reference for the IGDoubleRectangle member of the object.

Property Summary:

Data Type:
IGDoubleRectangle
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
None


Long

Group: Property

Description:

This property provides access to the Long member of the object.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Rectangle

Group: Property

Description:

This property returns a reference for the IGRectangle member of the object.

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


String

Group: Property

Description:

This property provides access to the String member of the object.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property returns the current type of data stored inside the object.

Property Summary:

Data Type:
enumIGAbsDataType
Default Value:
IG_DATA_LONG
Access:
Read only
Settings:
See enumIGAbsDataType
Bits Per Pixel:
N/A
Sample:
Core


IGDIBInfo

Group: Object

Description:

This object contains information about image DIB header.

Interface:

IIGDIBInfo

Class Members:

BitCount
property
This property provides the number of bits that image pixel occupies.
Compression
property
This property provides image compression attribute.
ClrUsed
property
This property provides the number of colors available in the image palette.
ClrImportant
property
This property provides the number of colors actually used in the image or 0 if this value should be calculated explicitly.
Height
property
This property provides the height of image.
ImageSize
property
This property provides the size of the image data in bytes.
Planes
property
This property provides the number of planes in the image.
Size
property
This property provides the size of the DIB header (as it's stored in memory) in bytes.
Width
property
This property provides the width of image.
XPelsPerMeter
property
This property provides the X component of the image resolution in pixels per meter units.
YPelsPerMeter
property
This property provides the Y component of the image resolution in pixels per meter units.
GetPtr
method
This method returns the pointer to the DIB in memory.


BitCount

Group: Property

Description:

This property provides the number of bits that image pixel occupies.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
1,4,8,16,24,32
Bits Per Pixel:
N/A
Sample:
Core


Compression

Group: Property

Description:

This property provides image compression attribute.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
See enumIGBiCompression values
Bits Per Pixel:
N/A
Sample:
Core


ClrUsed

Group: Property

Description:

This property provides the number of colors available in the image palette.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


ClrImportant

Group: Property

Description:

This property provides the number of colors actually used in the image or 0 if this value should be calculated explicitly.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


GetPtr

Group: Method

Description:

This method returns the pointer to the DIB in memory.

Declaration:

GetPtr() As Long

Return value:

A pointer to the DIB as it's stored in memory inside IGPage object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Height

Group: Property

Description:

This property provides the height of image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


ImageSize

Group: Property

Description:

This property provides the size of the image data in bytes.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Planes

Group: Property

Description:

This property provides the number of planes in the image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Size

Group: Property

Description:

This property provides the size of the DIB header (as it's stored in memory) in bytes.

Property Summary:

Data Type:
Long
Default Value:
40
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Width

Group: Property

Description:

This property provides the width of image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


XPelsPerMeter

Group: Property

Description:

This property provides the X component of the image resolution in pixels per meter units.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


YPelsPerMeter

Group: Property

Description:

This property provides the Y component of the image resolution in pixels per meter units.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGDLong

Group: Object

Description:.

This object respresents a 64-bit integer value that can be acessed via the `High' 4 bytes, and `Low' 4 bytes.

Interface:

IIGDLong

Class Members:

High
property
This property provides high 4 bytes of 8 byte value
Low
property
This property provides low 4 bytes of 8 byte value


High

Group: Property

Description:

This property provides high 4 bytes of 8 byte value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Low

Group: Property

Description:

This property provides low 4 bytes of 8 byte value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGDocument

Group: Object

Description:

IGDocument object represents a collection of IGPage object. It can work as a standalone collection not associated with the external file in which case different pages can be loaded to the document from the different sources. Alternatively, document can be associated with the external file in which case it provides the capabilities on in-memory document editing with the ability to save changes back to the external file. It's possible to work with the individual IGPage object contained in the document by obtaining a reference to it. This object is created explicitly using IGCoreCtl . CreateDocument or IGCoreCtl . CreateObject.

Interface:

IIGDocument extends IIGObject

Class Members:

Page
property
This indexed property allows to get/set IGPage reference in the collection at the specified position.
PageCount
property
This property returns the total number of pages within document.
Type
property
Document's type.
ValidPagesCount
property
This property returns total number of valid pages (pages with a valid image content, i.e. where IGPage . IsValid is True)
Clear
method
This method removes all pages from the document.
GetNextPageIndex
method
This method gets the index of the next valid page in the collection after the specified index.
GetPreviousPageIndex
method
This method gets the index of the previous valid page in the collection before the specified index.
RemovePage
method
This method removes a page from the document.


Clear

Group: Method

Description:

This method removes all pages from the document.

Declaration:

Clear() As Long

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetNextPageIndex

Group: Method

Description:

This method gets the index of the next valid page in the document starting at the specified index. If the specified index is less than 0 or greater than or equal to the number of pages in the document, this method returns -1. If the specified index is less than or equal to the index of the first valid page in the document, this method returns the index of the first valid page in the document. If the specified index is greater than the index of the last valid page in the document but less than the number of pages in the document, this method returns the number of pages in the document.

Declaration:

GetNextPageIndex (Index As Long) As Long

Parameters:

Index
Position in the document after which to look for a valid page

Return value:

Index of the valid page.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPreviousPageIndex

Group: Method

Description:

This method gets the index of the previous valid page in the document before the specified Index. If the Index is greater than the last valid index the index for the last page is returned. If the Index is equal to or smaller than the first valid index, an ImageGear error is set.

Declaration:

GetPreviousPageIndex (Index As Long) As Long

Parameters:

Index
Position in the document before which to look for a valid page

Return value:

Index of the valid page.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Page

Group: Property

Description:

This indexed property allows to get/set IGPage reference in the collection at the specified position.

NOTE: The concept of the document doesn't assume continuous range of pages, i.e. the there could be pages 1, 2, 3,10, 25, 90, 1000 - 7 pages total.

Property Summary:

Data Type:
IGPage
Default Value:
N/A
Access:
Read/Write
Index
[0..PageCount-1]
Settings:
IGPage object
Bits Per Pixel:
N/A
Sample:
Core


PageCount

Group: Property

Description:

This property returns the total number of pages within document.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


RemovePage

Group: Method

Description:

This method removes an IGPage object from the document.

Declaration:

RemovePage (Index As Long)

Parameters:

Index
Index of the page to be removed.

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Type

Group: Property

Description:

This property determines the type of the document.

Property Summary:

Data Type:
enumIGDocumentType
Default Value:
0
Access:
Read
Settings:
any value of enumIGDocumentType
Bits Per Pixel:
N/A
Sample:
None


ValidPagesCount

Group: Property

Description:

This property provides total number of valid pages (pages with a valid image content, i.e. where IGPage . IsValid is True).

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGDoubleMatrix

Type: Object

Description:

Represents a two dimensional matrix which elements have Double type.

Interface:

IGDoubleMatrix

Class Members:

Name
Type
Description
ColumnCount
property
Gets the number of columns in the matrix
RowCount
property
Gets the number of rows in the matrix
ChangeAttrs
method
Changes attributes of IGDoubleMatrix object
GetItem
method
Gets element of the matrix
SetItem
method
Sets element of the matrix


ChangeAttrs

Group: Method

Description:

This method changes attributes of IGDoubleMatrix.

Declaration:

ChangeAttrs(
    RowCount As Integer, ColCount As Integer)

Parameters:

RowCount
Number of rows
ColCount
Number of columns


ColumnCount

Group: Property

Description:

Returns number of columns in the matrix.

Property Summary:

Data Type:
Integer
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


RowCount

Group: Property

Description:

Returns number of rows in the matrix.

Property Summary:

Data Type:
Integer
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


GetItem

Group: Method

Description:

This method returns an element of the matrix. Row and Column indices are 0-based.

Declaration:

GetItem(
    Row As Integer, Column As Integer) As Double

Parameters:

Row
Row of the element
Column
Column of the element


SetItem

Group: Method

Description:

This method sets a value of a matrix element. Row and Column indices are 0-based.

Declaration:

SetItem(
    Row As Integer, Column As Integer, Element As Double)

Parameters:

Row
Row of the element
Column
Column of the element
Element
New value of the element


IGDoublePoint

Group: Object

Description:

This object represents the pair of floating-point coordinates.

Interface:

IIGDoublePoint extends IIGObject

Class Members:

XPos
property
This property gets/sets the X component of point.
YPos
property
This property gets/sets the Y component of point.


XPos

Group: Property

Description:

This property gets/sets the X component of point.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display/View


YPos

Group: Property

Description:

This property gets/sets the Y component of point.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display/View


IGDoublePointArray

Group: Object

Description:

This object represents the array of `IGDoublePoint' elements.

Interface:

IIGDoublePointArray extends IIGObject

Class Members:

Size
property
This property returns the number of points in the array.
Type
property
This property returns the type of data elements stored in the array.
XPos
property
This indexed property get/set X Position of the specified point in the array.
YPos
property
This indexed property get/set Y Position of the specified point in the array.
GetItemCopy
method
This method creates a new object containing a copy of the point stored at the specified index in the array.
Resize
method
This method re-sizes the array.
UpdateItemFrom
method
This method updates point in the array stored at the specified index.


GetItemCopy

Group: Method

Description:

This method creates a new object containing a copy of the point stored at the specified index in the array.

Declaration:

GetItemCopy(Index As Long) As IGDoublePoint

Parameters:

Index
Index of the point in the array.

Return value:

A new instance of the IGDoublePoint object containing the copy of the required pixel.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Resize

Group: Method

Description:

This method resizes the array. Data stored at the positions that remain valid after resizing is preserved during the operation.

Declaration:

Resize (NewSize As Long)

Parameters:

NewSize
New size of the array

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the number of points in the array.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display/View


XPos

Group: Property

Description:

This indexed property get/set X Position of the specified point in the array.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display/View


YPos

Group: Property

Description:

This indexed property get/set Y Position of the specified point in the array.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display/View


UpdateItemFrom

Group: Method

Description:

This method updates point in the array stored at the specified index.

Declaration:

UpdateItemFrom (Index As Long, pPoint As IGDoublePoint)

Parameters:

Index
Index of point to be updated
pPoint
IGDoublePoint object to copy data from

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGDoubleRectangle

Group: Object

Description:

This object represents a rectangle with the coordinates of Double type. It can be used as the data type of IGDataArray object.

Interface:

IIGDoubleRectangle extends IIGShape

Class Members:

Bottom
property
This property provides access to the Y coordinate of the right/bottom point of the rectangle.
Height
property
This property provides access to the height of the rectangle.
IsEmpty
property
This boolean property tells whether the rectangle is empty. The rectangle is empty when both Width and Heightare equal to 0.
IsValid
property
This boolean property tells whether the object holds values representing a valid rectagle. Empty rectangle is deemed to be valid as well.
Left
property
This property provides access to the X coordinate of the left/top point of the rectangle.
Right
property
This property provides access to the X coordinate of the right/bottom point of the rectangle.
Top
property
This property provides access to the Y coordinate of the left/top point of the rectangle.
Width
property
This property provides access to the width of the rectangle.
Empty
method
This method makes the rectangle empty by changing its Width and Height to 0.


Bottom

Group: Property

Description:

This property provides access to the Y coordinate of the right/bottom point of the rectangle.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


Empty

Group: Method

Description:

This method makes the rectangle empty by changing its Width and Height to 0.

Declaration:

 Sub Empty ()

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Height

Group: Property

Description:

This property provides access to the height of the rectangle.

NOTE: The Height property assumes that the rectangle is being used with endpoint- inclusive semantics. Using endpoint-inclusive semantics, a rectangle with left, top, right, and bottom coordinates all equal to 0 is one pixel wide and one pixel tall. So, for example, the Width property is calculated as Right - Left + 1. Sometimes rectangles are used with endpoint-exclusive semantics, in which the width of the rectangle should be calculated as Right - Left. In this case, the Height property should not be used.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


IsEmpty

Group: Property

Description:

This boolean property tells whether the rectangle is empty. The rectangle is empty when both Width and Height are equal to 0.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


IsValid

Group: Property

Description:

This boolean property tells whether the object holds values representing a valid rectagle. Empty rectangle is deemed to be valid as well.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


Left

Group: Property

Description:

This property provides access to the X coordinate of the left/top point of the rectangle.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


Right

Group: Property

Description:

This property provides access to the X coordinate of the right/bottom point of the rectangle.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


Top

Group: Property

Description:

This property provides access to the Y coordinate of the left/top point of the rectangle.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


Width

Group: Property

Description:

This property provides access to the width of the rectangle.

NOTE: The Width property assumes that the rectangle is being used with endpoint- inclusive semantics. Using endpoint-inclusive semantics, a rectangle with left, top, right, and bottom coordinates all equal to 0 is one pixel wide and one pixel tall. So, for example, the Width property is calculated as Right - Left + 1. Sometimes rectangles are used with endpoint-exclusive semantics, in which the width of the rectangle should be calculated as Right - Left. In this case, the Width property should not be used.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


IGEllipse

Group: Object

Description:

This object represents the ellipse as defined by the bounding rectangle. The ellipse object is used to define NRA (non rectangular area) on the image.

Interface:

IIGEllipse extends IIGShape

Class Members:

LeftTop
property
This property allows to access the left/top point of the bounding rectangle.
RightBottom
property
This property allows to access the right/bottom point of the bounding rectangle.
Type
property
This property defines a shape type.


LeftTop

Group: Property

Description:

This property returns a reference to the IGPoint object containing the coordinates of the left/top point of the bounding rectangle of an ellipse.

Property Summary:

Data Type:
IGPoint
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
IP/FX


RightBottom

Group: Property

Description:

This property returns a reference to the IGPoint object containing the coordinates of the right/bottom point of the bounding rectangle of an ellipse.

Property Summary:

Data Type:
IGPoint
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
IP/FX


Type

Group: Property

Description:

This read only property specifies a type of the shape

Property Summary:

Data Type:
enumIGShapeType
Access:
Read only
Settings:
IG_SHAPE_RECTANGLE, IG_SHAPE_POLYGON, IG_SHAPE_ELLIPSE
Bits Per Pixel:
N/A
Sample:
IP/FX


IGExtraChannelInfo

Type: Class

Description:

This is a class specifying the extra channel info. Each extra channel in an image has an IGExtraChannelInfo object associated with it.

Declaration:

Class IGExtraChannelInfo

Members:

ColorID
property
Specifies ID of the spot color.
ColorSpace
property
Specifies color channel's color space.
ColorType
property
Specifies color type of extra channel.
Mode
property
Specifies mask channel mode.
Name
property
Specifies name of extra channel.
Opacity
property
Specifies opacity of the spot color.
Type
property
Specifies type of extra channel.
VendorID
property
Specifies vendor ID of the spot color.
GetColorValue
method
Returns a copy of the color value.
GetColorValue16
method
Returns a copy of the color value in 16-bit format.
GetColorValue8
method
Returns a copy of the color value in 8-bit format.


ColorID

Group: Property

Declaration:

Property ColorID As IGDLong

Description:

This property specifies Color ID of the extra channel.

NOTE: Only applicable to the extra channel object with IG_EXTRA_CHANNEL_COLOR_TYPE_Vendor color type.

Property Summary:

Data Type:
IGDLong
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample
Display_View


ColorSpace

Group: Property

Declaration:

Property ColorSpace As enumIGColorSpaceIDs

Description:

This property specifies color space of the extra channel.

NOTE: Only applicable to the extra channel object with IG_EXTRA_CHANNEL_COLOR_TYPE_Colorspace color type.

Property Summary:

Data Type:
enumIGColorSpaceIDs
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGColorSpaceIDs
Bits Per Pixel:
N/A
Sample
Display_View


ColorType

Group: Property

Declaration:

Property ColorType As enumIGExtraChannelColorType

Description:

This property specifies extra channel color type (Color space or Vendor).

Property Summary:

Data Type:
enumIGExtraChannelColorType
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGExtraChannelColorType
Bits Per Pixel:
N/A
Sample
Display_View


GetColorValue

Group: Method

Declaration:

GetColorValue() As IGPixel

Description:

This method gets color value of the extra channel.

NOTE: This method is only applicable to the extra channel object with IG_EXTRA_CHANNEL_COLOR_TYPE_Colorspace color type.

Parameters:

N/A

Return Value:

IGPixel object specifying color value of the extra channel.

Sample:

Display_View


GetColorValue16

Group: Method

Declaration:

GetColorValue16() As IGPixel

Description:

This method gets color value of the extra channel.

NOTE: This method is only applicable to the extra channel object with IG_EXTRA_CHANNEL_COLOR_TYPE_Colorspace color type.

Parameters:

N/A

Return Value:

IGPixel object specifying color value of the extra channel.

Sample:

Display_View


GetColorValue8

Group: Method

Declaration:

GetColorValue8() As IGPixel

Description:

This method gets color value of the extra channel.

NOTE: This method is only applicable to the extra channel object with IG_EXTRA_CHANNEL_COLOR_TYPE_Colorspace color type.

Parameters:

N/A

Return Value:

IGPixel object specifying color value of the extra channel.

Sample:

Display_View


Mode

Group: Property

Declaration:

Property Mode As enumIGMaskChannelModes

Description:

This property specifies mode of Mask extra channel.

NOTE: This method is only applicable for IG_EXTRA_CHANNEL_TYPE_Mask channel type.

Property Summary:

Data Type:
enumIGMaskChannelModes
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGMaskChannelModes
Bits Per Pixel:
N/A
Sample
Display_View


Name

Group: Property

Declaration:

Property Name As String

Description:

This property specifies the name of the extra channel.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample
Display_View


Opacity

Group: Property

Declaration:

Property Opacity As Integer

Description:

This property specifies the opacity of the extra channel.

NOTE: Applicable to any type of extra channels except IG_EXTRA_CHANNEL_TYPE_Unknown.

Property Summary:

Data Type:
Integer
Default Value:
100
Access:
Read/Write
Settings:
0..100
Bits Per Pixel:
N/A
Sample
Display_View


Type

Group: Property

Declaration:

Property Type As enumIGExtraChannelType

Description:

This property specifies extra channel type (Unknown, Mask or Spot).

Property Summary:

Data Type:
enumIGExtraChannelType
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGExtraChannelType
Bits Per Pixel:
N/A
Sample
Display_View


VendorID

Group: Property

Declaration:

Property VendorID As enumIGSpotColorVendorIDs

Description:

This property specifies the Vendor ID of the extra channel.

NOTE: This method is only applicable to the extra channel object with IG_EXTRA_CHANNEL_COLOR_TYPE_Vendor color type.

Property Summary:

Data Type:
enumIGSpotColorVendorIDs
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGSpotColorVendorIDs
Bits Per Pixel:
N/A
Sample
Display_View


IGExtraChannelInfoArray

Type: Class

Description:

This is a class specifying the array of extra channel info attached to IGPage.

Declaration:

Class IGExtraChannelInfoArray

Members:

Count
property
Specifies the number of IGExtraChannelInfo entries in the array.
Item
property
Accesses the indexed IGExtraChannelInfo entry.
Clear
method
Removes all IGExtraChannelInfo entries from the array.
RemoveAt
method
Removes IGExtraChannelInfo entry at the specified position.


Clear

Group: Method

Declaration:

Sub Clear()

Description:

This method removes all IGExtraChannelInfo entries from the array.

Parameters:

N/A

Return Value:

N/A

Sample

Display_View


Count

Group: Property

Declaration:

Property Count As Long

Description:

This property specifies the number of IGExtraChannelInfo entries in the array.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample
Display_View


Item

Group: Property

Declaration:

Property Item(Index As Long) As IGExtraChannelInfo

Description:

This property accesses the IGExtraChannelInfo entries in the array.

Parameters:

Index
Index of the entry to remove

Property Summary:

Data Type:
IGExtraChannelInfo
Default Value:
N/A
Access:
Read only
Settings:
Any value of IGExtraChannelInfo
Bits Per Pixel:
N/A
Sample
Display_View


RemoveAt

Group: Method

Declaration:

Sub RemoveAt(Index As Long)

Description:

This method removes IGExtraChannelInfo entry at the indexed position.

Parameters:

Index
Index of the entry to remove

Return Value:

N/A

Sample

Display_View


IGGlobalParameter

Group: Object

Description:

This object is a data container used for getting and setting ImageGear global parameters.

Interface:

IIGGlobalParameter extends IIGObject

Class Members:

Info
property
This property provides info about the global control parameter.
Name
property
This property provides the name of global control parameter.
Value
property
This property provides the value of global control parameter.


Info

Group: Property

Description:

This property provides info about the global control parameter.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample
Core


Name

Group: Property

Description:

This property provides the name of global control parameter.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample
Core


Value

Group: Property

Description:

This property returns the reference for the IGDataItem object that stores the value of global control parameter.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


IGImageAllocationParams

Group: Object

Description:

This object is used for specifying image allocation parameters.

Interface:

IIGImageAllocationParams extends IIGObject

Class Members:

BitDepth
property
This property provides bit depth of the image.
Compression
property
This property provides compression of the image.
FillColor
property
This property provides the color to be used to fill the image after creation.
ImageHeight
property
This property provides the height of the image.
ImageWidth
property
This property provides the width of the image.


BitDepth

Group: Property

Description:

his property provides bit depth of the image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
1,4,8,16,24,32
Bits Per Pixel:
N/A
Sample:
None


Compression

Group: Property

Description:

This property provides compression of the image.

Property Summary:

Data Type:
enumIGBiCompression
Default Value:
0
Access:
Read/Write
Settings:
See enumIGBiCompression constants
Bits Per Pixel:
N/A
Sample:
None


FillColor

Group: Property

Description:

This property returns a reference to the IGPixel object whose value it to be used for filling image after creation.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
None


ImageHeight

Group: Property

Description:

This property provides the height of the image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


ImageWidth

Group: Property

Description:

This property provides the width of the image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


IGImageLayer

Type: Class

Description:

This class represents the image layer and its attributes. Any PSD image can consist of multiple layers. Currently ImageGear can only read, write and edit image layers, i.e. layers represented by a raster image. User can manipulate with image layer attributes using the following API.

Interface:

IIGImageLayer extends IIGLayer

Class Members:

Image
property
Specifies the raster image representing image layer.
Opacity
property
Specifies the level of opacity of the image layer.
X
property
Specifies the X coordinate of the image layer's left/top point.
Y
property
Specifies the Y coordinate of the image layer's left/top point.


Image

Group: Property

Description:

This property specifies the raster image representing image layer.

Property Summary:

Data Type:
IGPage
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


Opacity

Group: Property

Description:

This property specifies the level of opacity of the image layer.

Property Summary:

Data Type:
Long
Default Value:
255
Access:
Read-write
Settings:
0..255
Bits Per Pixel:
N/A
Sample:
Core


X

Group: Property

Description:

This property specifies the X coordinate of the image layer's left/top point.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Y

Group: Property

Description:

This property specifies the Y coordinate of the image layer's left/top point.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGImageResolution

Group: Object

Description:

This object represents image resolution attributes.

Interface:

IIGImageResolution extends IIGObject

Class Members:

Units
property
This property provides resolution untis.
XDenominator
property
This property provides the denominator of the X component of the resolution.
XNumerator
property
This property provides the numerator of the X component of the resolution.
YDenominator
property
This property provides the denominator of the Y component of the resolution.
YNumerator
property
This property provides the numerator of the Y component of the resolution.
ConvertUnits
method
This method converts the resolution data into new units.


ConvertUnits

Group: Method

Description:

This method converts the resolution data into new units.

Declaration:

ConvertUnits (NewUnits As enumIGResolutionUnits)

Parameters:

NewUnits
New resolution units, see enumIGResolutionUnits constants

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Units

Group: Property

Description:

This property provides resolution untis.

Property Summary:

Data Type:
enumIGResolutionUnits
Default Value:
IG_RESOLUTION_METERS
Access:
Read/Write
Settings:
See enumIGResolutionUnits
Bits Per Pixel:
N/A
Sample:
Core


XDenominator

Group: Property

Description:

This property provides the denominator of the X component of the resolution.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


XNumerator

Group: Property

Description:

This property provides the numerator of the X component of the resolution.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


YDenominator

Group: Property

Description:

This property provides the denominator of the Y component of the resolution.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


YNumerator

Group: Property

Description:

This property provides the numerator of the Y component of the resolution.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGIntegerArray

Group: Object

Description:

This object represents an array capable of storing the integer values occupying 1, 2, and 4 bytes.

Interface:

IIGIntegerArray extends IIGArray

Class Members:

Item
property
This indexed property provides access to the array element.
ItemSize
property
This property returns the size of the array element in bytes.
Size
property
This property returns the number of elements in the array.
Type
property
This property returns the type of data elements stored in the array.
CopyTo
method
Copies part of the current array (or the whole array) to another array (IGIntegerArray object).
GetPtr
method
This method returns raw pointer to the internal buffer storing array elements.
Resize
method
This method re-sizes an array.
SetValuesTo
method
This method sets all elements in the array to the specified value.


CopyTo

Group: Method

Description:

Copies part of the current array (or the whole array) to another array (IGIntegerArray object).

Declaration:

CopyTo(IGIntegerArray Array, long Index, long Count)

Parameters:

Array
Destination array
Index
Start position of the current array
Count
Count of items to be copied

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPtr

Group: Method

Description:

This method returns raw pointer to the internal buffer storing array elements. The size of the buffer depends on the size of the array element.

Declaration:

GetPtr () As Long

Return value:

Pointer to memory buffer.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Item

Group: Property

Description:

This indexed property provides access to the array element.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
[0..Size-1]
Bits Per Pixel:
N/A
Sample:
Recognition


ItemSize

Group: Property

Description:

This property returns the size of the array element in bytes.

Property Summary:

Data Type:
Short
Default Value:
1
Access:
Read only
Settings:
1, 2, 4 (bytes)
Bits Per Pixel:
N/A
Sample:
None


Resize

Group: Method

Description:

This method re-sizes an array.

Declaration:

 Resize (NewSize As Long, NewItemSize As Short)

Parameters:

NewSize
New size of the array
NewItemSize
New size of the array item

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetValuesTo

Group: Method

Description:

This method sets all elements in the array to the specified value.

Declaration:

SetValuesTo (Value As Long)

Parameters:

Value
Value to be used for filling the array

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the number of elements in the array.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


IGLayer

Type: Class

Description:

This class represents general attributes of the layer. ImageGear can currently read and write PSD layers. User can manipulate with generic layer attributes using the following API.

Interface:

IIGLayer extends IIGObject

Class Members:

Name
property
This property specifies name of the layer.
Type
property
This property specifies type of the layer.
Visible
property
This property specifies visibility state of the layer.
Duplicate
method
This method creates a copy of the layer object.


Duplicate

Group: Method

Description:

This method creates a copy of the layer object.

Declaration:

Duplicate() as IGLayer

Return Value:

IGLayer object


Name

Group: Property

Description:

This property specifies name of the layer.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read-write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property specifies type of the layer.

Property Summary:

Data Type:
enumIGLayerType
Default Value:
IG_LAYER_TYPE_IMAGE
Access:
Read only
Settings:
enumIGLayerType value
Bits Per Pixel:
N/A
Sample:
Core


Visible

Group: Property

Description:

This property specifies visibility state of the layer.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read-write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
Core


IGLayerArray

Type: Class

Description:

This class defines composition of layers. The composition of layers from PSD image is stored in the array of layers attached to the IGPage. User can manipulate with composition by creating new layers, editing and deleting the existing ones using the following API.

Interface:

IIGLayerArray extends IIGObject

Class Members:

Count
property
This property specifies the number of layers in the array.
Item
property
This property accesses the indexed layer entry in the array.
Add
method
This method adds the specified layer to the layer array.
Clear
method
This method removes the entire composition of layers.
Insert
method
Insets the specified layer at the specified position in the array.
Remove
method
This method removes the layer at the specified position from the the layer array.


Add

Group: Method

Description:

This method adds the specified layer to the layer array.

Declaration:

Sub Add (Layer as IGLayer)

Parameters:

Layer
Layer to add

Return Value:

N/A


Clear

Group: Method

Description:

This method removes the entire composition of layers.

Declaration:

Sub Clear()

Return Value:

N/A


Count

Group: Property

Description:

This property specifies the number of layers in the array.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Insert

Group: Method

Description:

Insets the specified layer at the specified position in the array.

Declaration:

Sub Insert (Index as Long, Layer as IGLayer)

Parameters:

Index
Position in the array to insert the layer to
Layer
Layer to insert

Return Value:

N/A


Item

Group: Property

Description:

This property accesses the indexed layer entry in the array.

Property Summary:

Data Type:
IGLayer
Default Value:
N/A
Access:
Read-write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core

Parameters:

Index
Index of the layer in the array to access.


Remove

Group: Method

Description:

This method removes the layer at the specified position from the the layer array. The layer object at the specified position is destroyed by this function.

Declaration:

Sub Remove (Index as Long)

Parameters:

Index
Index of the layer to remove.

Return Value:

N/A


IGLicense

Group: Object

Description:

This object is contained inside IGCoreCtl and provides access to the licesning API.

Interface:

IIGLicense

Class Members:

Type
property
This property returns the type of product license.
GetMetaAttr
method
This method gets a meta attribute by name.
SetOEMLicenseKey
method
This method sets OEM license key.
SetSolutionKey
method
This method sets solution key.
SetSolutionName
method
This method sets solution name.


GetMetaAttr

Group: Method

Description:

This method gets a meta attribute by name.

Declaration:

GetMetaAttr (sAttrName As String) As String

Parameters:

sAttrName
The name of the meta attribute

Return value:

The value of the meta attribute

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetOEMLicenseKey

Group: Method

Description:

This method sets OEM license key.

Declaration:

 SetOEMLicenseKey (sLicKey As String)

Parameters:

sLicKey
License key

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetSolutionKey

Group: Method

Description:

This method sets the solution key.

Declaration:

SetSolutionKey (Key1 As Long, Key2 As Long, Key3 As Long, Key4
As Long)

Parameters:

Key1
Key1 element of the solution key
Key2
Key2 element of the solution key
Key3
Key3 element of the solution key
Key4
Key4 element of the solution key

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetSolutionName

Group: Method

Description:

This method sets the solution name.

Declaration:

SetSolutionName (sSolutionName As String)

Parameters:

sSolutionName
Solution name

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Type

Group: Property

Description:

This property returns the type of product license.

Property Summary:

Data Type:
enumIGLicenseType
Default Value:
N/A
Access:
Read only
Settings:
See enumIGLicenseType values
Bits Per Pixel:
N/A
Sample:
None


IGLUT

Group: Object

Description:

This object provides access to single-channel look up table (LUT). LUT can have various input and output depths, in range from 1 to 32. Both input and output can be signed or unsigned.

Use IGCoreCtl.CreateObject method to create an empty IGLUT, then use IGLUT.ChangeAttrs method to set LUT parameters and allocate the internal array that will hold the LUT data.

Interface:

IIGLUT extends IIGObject

Class Members:

ChangeAttrs
method
Changes LUT attributes and reallocates internal array that holds LUT data.
Concatenate
method
Concatenates the content of the specified LUT into the IGLUT object that this method is called from, and returns result as a new IGLUT object.
CopyFrom
method
Copies IGLUT object.
Empty
method
Makes the LUT empty.
GetCopy
method
Returns copy of the LUT in a new IGLUT object.
InputDepth
property
Returns input bit count of the LUT.
InputIsSigned
property
Tells whether input of the LUT is signed.
IsEmpty
property
Returns True if the LUT is empty.
Item
property
Provides access to the LUT element.
ItemSize
property
Returns the size of the LUT element in bytes.
OutputDepth
property
Returns output bit count of the LUT.
OutputIsSigned
property
Tells whether output of the LUT is signed.
SetValuesTo
method
Sets all LUT entries to the specified value.
Size
property
Returns the number of elements in the LUT.


ChangeAttrs

Group: Method

Description:

This method changes LUT attributes and reallocates the internal array that holds LUT data. The old LUT data is lost after changing attributes.

Declaration:

ChangeAttrs(InputDepth as Long, InputIsSigned as Boolean,
OutputDepth as Long, OutputIsSigned as Boolean)

Parameters:

InputDepth
Input bit count of the LUT.
InputIsSigned
Determines whether input of the LUT is signed.
OutputDepth
Output bit count of the LUT.
OutputIsSigned
Determines whether output of the LUT is signed.

Return value:

None.

Bits Per Pixel: 8, 16 bpp

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Concatenate

Group: Method

Description:

This method concatenates the content of the specified LUT into the IGLUT object that this method is called from, and returns result as a new IGLUT object. Application of concatenated LUT to an image produces the same result as consequent application of the input LUTs.

Input depth of the LUT to concatenate must be equal to output depth of the source LUT. If output of the source LUT is signed, input of LUT to concatenate must be signed; If output of the source LUT is unsigned, input of LUT to concatenate must be unsigned. Input depth of the result LUT will be equal to input depth of the source LUT; output depth of the result LUT will be equal to output depth of LUT to concatenate.

Declaration:

Concatenate(
    LUTToConcatenate As IGLUT) As IGLUT

Parameters:

LUTToConcatenate
LUT to concatenate

Return value:

Returns concatenated LUT.


CopyFrom

Group: Method

Description:

This method copies IGLUT object.

Declaration:

CopyFrom(lut As IGLUT)

Parameters:

lut
IGLUT object handle.

Return value:

None.

Bits Per Pixel: 8, 16 bpp

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Empty

Group: Method

Description:

This method makes the LUT empty by changing its Input and Output depths to zeroes.

Declaration:

Empty()

Return value:

None.

Bits Per Pixel: 8, 16 bpp

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetCopy

Group: Method

Description:

This method returns a copy of the LUT in a new IGLUT object.

Declaration:

GetCopy() As IGLUT

Return value:

IGLUT object instance.

Bits Per Pixel: 8, 16 bpp

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


InputDepth

Group: Property

Description:

This property returns the input bit count of the LUT.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
0...32
Bits Per Pixel:
All
Sample:
Medical


InputIsSigned

Group: Property

Description:

This property tells whether the input of the LUT is signed.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
All
Sample:
Medical


IsEmpty

Group: Property

Description:

This property returns True if the LUT is empty, and False otherwise.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
All
Sample:
Medical


Item

Group: Property

Description:

This property provides access to the LUT element.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
All
Sample:
Medical


ItemSize

Group: Property

Description:

This property returns the size of the LUT element in bytes.

Property Summary:

Data Type:
Long
Default Value:
1
Access:
Read only
Settings:
1, 2, 4
Bits Per Pixel:
All
Sample:
Medical


OutputDepth

Group: Property

Description:

This property returns output bit count of the LUT.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
0...32
Bits Per Pixel:
All
Sample:
Medical


OutputIsSigned

Group: Property

Description:

This property tells whether the output of the LUT is signed.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
All
Sample:
Medical


SetValuesTo

Group: Method

Description:

This method sets all LUT entries to the specified value.

Declaration:

SetValuesTo(Value as Long)

Parameters:

Value
Value of the LUT entry.

Return value:

None.

Bits Per Pixel: 8, 16 bpp

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the number of elements in the LUT.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
All
Sample:
Medical


IGObjectCollection

Group: Object

Description:

This object represents the collection of objects derived from IIGObject interface.

Interface:

IIGObjectCollection

Class Members:

Count
property
This property returns the total number of objects in the collection.
Item
property
This indexed property provides access to the elements of the collection.
RemoveItem
method
This method removes object from the collection.


Count

Group: Property

Description:

This property returns the total number of objects in the collection.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


Item

Group: Property

Description:

This indexed property provides access to the elements of the collection.

Property Summary:

Data Type:
IGObject
Default Value:
N/A
Access:
Read/Write
Settings:
get: [0... Count-1], put: [0... Count]
Bits Per Pixel:
N/A
Sample:
IP/FX


RemoveItem

Group: Method

Description:

This method removes object from the collection.

Declaration:

RemoveItem (Index As Long)

Parameters:

Index
The index of item to be removed

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGPage

Group: Object

Description:

This object represents a single page image. It contains image data and other attributes such as ROI, alpha channels, and image resolution.

Interface:

IIGPage extends IIGObject

Class Members:

AlphaCount
property
This property returns the total number of alpha channels that are currently associated with the IGPage object.
BitDepth
property
This property returns the bit depth of the image loaded in the IGPage object.
BitsPerChannel
property
Returns the number of bits allocated for each pixel channel of the image loaded in the IGPage object.
ColorSpace
property
This property returns the color space type of the image loaded in the IGPage object.
Compression
property
Specifies the type of compression used to store this page in a multi-page document file.
CompressionUsed
property
Specifies whether or not the compression type specified by the IGPage's Compression property should be used when updating or saving an IGDocument.
ExtraCount
property
Specifies the number of extra channels in the image.
ImageHeight
property
This property obtains the height, in pixels, of the image loaded in the IGPage object.
ImageIsGray
property
This Boolean property indicates whether or not an image is a true grayscale.
ImageWidth
property
This property returns the width, in pixels, of the image loaded in the IGPage object.
IsValid
property
This Boolean property tells whether or not an image data has been loaded into IGPage object.
Layers
property
Specifies the layers associated with the IGPage
Orientation
property
Orientation the image was saved with.
ROI
property
This property provides access to the ROI object associated with the IGPage object.
Signed
property
This property gets/sets image signed/unsigned attribute. Applicable to 9-16g only.
UpdateEventEnabled
property
This property controls whether or not to fire the IGPageUpdate event each time when IGPage is updated.
GetDIBInfo
method
Creates new object and copies DIB info from IGPage into it.
GetImageResolutionCopy
method
Creates a new object and copies image resolution from IGPage into it.
GetPaletteCopy
method
Creates a new object and copies image palette from IGPage into it.
GetPaletteEntryCopy
method
Creates a new object and copies specified entry of the image palette from IGPage into it.
GetPaletteSize
method
Returns the number of entries in the image palette.
UpdateImageResolutionFrom
method
This method updates image resolution attributes of the IGPage with new values.
UpdatePaletteEntryFrom
method
This method updates image palette entry of the IGPage with new values.
UpdatePaletteFrom
method
This method updates image palette of the IGPage object.
AddAlpha
method
This method adds a new alpha channel to the IGPage object.
AllocateImage
method
This method allocates image data for the IGPage object.
ChannelDepthsChange
method
This method changes the channel depths of the image to the specified values.
ChannelDepthsGet
method
This method returns an array of channel depths for the image.
CheckEmbeddedColorProfile
method
This method checks to see whether the image has embedded color profile.
Clear
method
This method deletes image data asscociated with the IGPage object.
ColorProfileGetCopy
method
This method returns a color profile associated with the image.
ColorProfileUpdateFrom
method
This method replaces the color profile associated with the image with the new one.
ColorSpaceIDGet
method
This method returns the color space ID of the image.
CopyPixelTo
method
This method copies pixel data from the image into IGPixel object.
DuplicateTo
method
This method duplicates IGPage object.
Empty
method
Empties the palette, reducing it to zero entries.
FloodFill
method
Fills an area with a color, starting at the specified point.
GetAlphaCopy
method
Creates a new IGPage object containing a copy of specified alpha channel.
GetAlphaDIBInfo
method
Creates a new object and copies DIB info from specified alpha channel into it.
GetDIBHandle
method
Returns DIB handle of the image.
GetDIBPtr
method
This method is not supported. Use RasterPtrGet instead.
GetExtraChannelInfoCopy
method
Gets a copy of the image DIB's extra channel info array.
GetGrayscaleLUTCopy
method
If a grayscale LUT is attached to a IGPage, returns its copy as a new IGLUT object.
GetImagePtr
method
This method returns the pointer to the image data.
GetPixAreaCopy
method
This method creates a new object and copies the image area into it.
GetPixColumnCopy
method
This method creates a new object and copies the image column into it.
GetPixelCopy
method
This method creates a new object and copies specified image pixel into it.
GetPixLineCopy
method
This method creates a new object and copies the image line into it.
GetPixRasterCopy
method
This method creates a new object and copies the image raster into it.
GetPixRowCopy
method
This method creates a new object and copies the image row into it.
GetRasterCopy
method
This method is similar to GetPixRasterCopy(), but it returns IGIntegerArray (not IGPixelArray).
GrayscaleLUTExists
method
Returns True if a grayscale LUT is attached to an IGPage, and False otherwise.
HasPDFData
method
This method tells whether or not the page contains PDF data.
HasVectorData
method
This method tells whether or not the page contains vector data, which could be PDF or CAD/vector data.
IGPalette PlatformDIBImport
method
Imports a platform-specific DIB into the page.
ImagePtrGet
method
This method returns a pointer to the image's pixel data as stored internally in memory.
PalettePtrGet
method
This method returns a pointer to the palette of an image. It should only be used if the image is indexed.
PlatformDIBExport
method
This method exports an image as a platform-specific DIB.
PlatformDIBExportSizeCalc
method
Returns the size of a DIB (in bytes) that would be exported by PlatformDIBExport if the same parameters were used.
Rasterize
method
This method converts vector data associated with a page to the page DIB.
RasterPtrGet
method
This method returns a pointer to the beginning of pixel data for a given raster.
RemoveAllAlpha
method
This method removes all alpha channels from the IGPage.
RemoveAlpha
method
This method removes specified channel from the IGPage and shifts the remaining alpha channels.
SwapAlphas
method
This method swaps 2 alpha channels associated with IGPage.
UpdateExtraChannelInfoFrom
method
Creates a copy of the info array specified by ExtraChannelInfo and attaches it to IGPage's extra channel info array, replacing the old value.
UpdateGrayscaleLUTFrom
method
Creates or updates IGPage's grayscale LUT with values from the specified LUT.
UpdatePixAreaFrom
method
This method updates image area of the IGPage.
UpdatePixColumnFrom
method
This method updates image column of the IGPage.
UpdatePixelFrom
method
This method updates image pixel of the IGPage.
UpdatePixLineFrom
method
This method updates image line of the IGPage.
UpdatePixRasterFrom
method
This method updates image raster of the IGPage.
UpdatePixRowFrom
method
This method updates image row of the IGPage.
UpdateRasterFrom
method
This method is similar to GetPixRasterCopy(), but it takes IGIntegerArray object as parameter (not IGPixelArray).
IGPageUpdate
event
This event, if enabled, is fired every time when page is updated.


AddAlpha

Group: Method

Description:

This method adds a new alpha channel to the IGPage object. The position where to put new alpha channel is specified via method's parameter and can be within the [0..AlphaCount] range. If there is alpha channel stored at the Position already, the method's behavior depends on the bShift parameter. If this parameter is True, then old alpha is shifted up along with alphas stored after it (if they exist). If this parameter is False, then old alpha channel is replaced with the new one. Either way IGPage representing alpha channel is duplicated and its copy is stored in the collection, not the original object.

NOTE: The entire IGPage object is duplicated including image data.

Declaration:

 AddAlpha (pNewAlpha As IGPage, Position As long, bShift As
Boolean)

Parameters:

pNewAlpha
IGPage object representing the alpha channel to be added.
Position
Position where to put new alpha channel.
bShift
Indicates whether alpha channels should be shifted.

Return value: N/A

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AllocateImage

Group: Method

Description:

This method allocates image data for the IGPage object.

Declaration:

 AllocateImage (pParams As IGImageAllocationParams)

Parameters:

pParams
IGImageAllocationParams object containing image allocation parameters.

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AlphaCount

Group: Property

Description:

This property returns the total number of alpha channels, that are currently associated with the IGPage object.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
All
Sample:
Core


BitDepth

Group: Property

Description:

This property returns the bit depth of the image loaded in the IGPage object.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
1,2,4,16,24,32
Bits Per Pixel:
All
Sample:
Core


BitsPerChannel

Group: Property

Description:

This property returns the number of bits allocated for each pixel channel of the image loaded in the IGPage object.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Med


ChannelDepthsChange

Group: Method

Description:

This method changes the channel depths of the image to the specified values. It's possible to change channel depths with or without scaling of the actual channel values for each pixel. If scaling is used, the values will be adjusted to fit the new depth to match the original proportions as closely as possible. This alters pixel data and can be a lossy operation. For example, you could scale 48-bit RGB down to 24-bit RGB using this method, or scale an alpha channel from 8 bits to 1 bit.

Declaration:

ChannelDepthsChange(NewDepths as Variant, enumIGDepthChangeMode
ScaleMode))

Parameters:

NewDepths
Array of new channel depths to change image to.
ScaleMode
An enumIGDepthChangeMode value.

Return value: N/A

Bits Per Pixel: N/A

Example:

Dim d(3) As Long
d(0) = 8
d(1) = 8
d(2) = 8
currentPage.ChannelDepthsChange d, IG_DEPTH_CHANGE_SCALE

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ChannelDepthsGet

Group: Method

Description:

This method returns an array of channel depths for the image. A channel depth is the number of bits used to represent a single channel's value. For example, a 24 bit per pixel RGB image has three channels (R, G, B) each having a depth of 8 bits, so this method would return the array: {8, 8, 8} This method also returns depths of alpha and extra channels if they are present in the image.

Declaration:

ChannelDepthsGet() as Variant

Return value:

Array of channel depths.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CheckEmbeddedColorProfile

Group: Method

Description:

This method checks to see whether the image has embedded color profile.

Declaration:

CheckEmbeddedColorProfile() as VARIANT_BOOL

Return Value:

True/False

Bits Per Pixel:

All

Sample:

GUIDlg


Clear

Group: Method

Description:

This method deletes image data asscociated with the IGPage object.

Declaration:

 Clear ()

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorProfileGetCopy

Group: Method

Description:

This method returns a color profile associated with the image.

Declaration:

ColorProfileGetCopy() as IIGColorProfile

Return value:

Color profile associated with the image

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorProfileUpdateFrom

Group: Method

Description:

This method replaces the color profile associated with the image with the new one.

Declaration:

ColorProfileUpdateFrom(ColorProfile as IIGColorProfile)

Parameters:

ColorProfile
New color profile.

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ColorSpace

Group: Property

Description:

This property returns the color space type of the image loaded in the IGPage object.

Property Summary:

Data Type:
enumIGColorSpaces
Default Value:
Depends on the image
Access:
Read only
Settings:
IG_COLOR_SPACE_RGB or IG_COLOR_SPACE_CMYK
Bits Per Pixel:
All
Sample:
Core


ColorSpaceIDGet

Group: Method

Description:

This method returns the color space ID of the image. This ID is a bit field which can combine multiple values from enumIGColorSpaceIDs. It can be made up of one, two, or three components. It must describe the color space (RGB, CMYK, grayscale, etc). It may also indicate that a type of alpha channel is present (alpha, pre-multiplied alpha) and/or the presence of one or more extra channels. For example:

  • IG_COLOR_SPACE_ID_RGB - RGB with no alpha or extra channels.
  • IG_COLOR_SPACE_ID_Gy or IG_COLOR_SPACE_ID_A - grayscale with an alpha channel.
  • IG_COLOR_SPACE_ID_RGB or IG_COLOR_SPACE_ID_P or IG_COLOR_SPACE_ID_Ex - RGB with a pre-multiplied alpha channel and one or more extra channels.

Declaration:

ColorSpaceIDGet() As enumIGColorSpaceIDs

Return value:

Returns color space ID of image.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Compression

Group: Property

Description:

Specifies the type of compression used to store this page in a multi-page document file. The associated property CompressionUsed indicates whether or not this property should be used when writing pages using document update and save methods. These two properties are set by document reading methods such as LoadDocument and ReadPagesToDocument so that pages can later be saved using their original compression types. In addition, the application can set these properties.

When a document is updated using the UpdateDocument method, pages whose CompressionUsed property is set to True will be saved using the compression type specified by the Compression property. When using a document saving method such as SaveDocument, the UsePageCompressions property of the IGSaveOptions passed to the method must also be True.

Property Summary:

Data Type:
enumIGCompressions
Default Value:
IG_COMPRESSION_NONE
Access:
Read/Write
Settings:
Any value of enumIGCompressions
Bits Per Pixel:
All
Sample:
None


CompressionUsed

Group: Property

Description:

This property specifies whether or not the compression type specified by the IGPage's Compression property should be used when updating or saving an IGDocument. For more information, see the description of the Compression property.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
All
Sample:
None


CopyPixelTo

Group: Method

Description:

This method copies pixel data from the image into IGPixel object.

Declaration:

 CopyPixelTo (XPos As Long, YPos As Long, pPixel As IGPixel)

Parameters:

XPos
X coordinate of the pixel
YPos
Y coordinate of the pixel
pPixel
IGPixel object where to copy the pixel

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DuplicateTo

Group: Method

Description:

This method duplicates IGPage object.

Declaration:

DuplicateTo (pDestPage As IGPage)

Parameters:

pDestPage
IGPage object where to duplicate the current IGPage.

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Empty

Group: Method

Description:

This method empties the palette, reducing it to zero entries.

Declaration:

Empty()

Return value:

None

Bits Per Pixel:

N/A

Sample:

None


ExtraCount

Group: Property

Declaration:

Property ExtraCount As Long

Description:

This property specifies the number of extra channels in the image.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
All
Sample:
None


FloodFill

Group: Method

Description:

This function fills an area with a color, starting at the specified point. There are two ways to specify the area:

  • If BorderColor is NULL (vbNothing in Visual Basic), the area is defined by the color of the specified point.
  • Otherwise, the area is defined by the border color.

Declaration:

Sub FloodFill(XPos As Long, YPos As Long, FillColor As IGPixel,
BorderColor As IGPixel)

Parameters:

XPos
X coordinate of a point inside the area to be filled.
YPos
Y coordinate of a point inside the area to be filled.
FillColor
Fill color as IGPixel.
BorderColor
Color of the border surrounding the area as IGPixel, or NULL (vbNothing) to fill the area defined by the color of the start point.

Return Value:

N/A

Bits Per Pixel:

All

Sample:

Image Processing and Effects


GetAlphaCopy

Group: Method

Description:

Creates a new IGPage object containing a copy of specified alpha channel.

NOTE: The entire image data is duplicated.

Declaration:

GetAlphaCopy (Position As Long) As IGPage

Parameters:

Position
The position of alpha channel to be duplicated.

Return value:

A new IGPage object containing a copy of specified alpha channel.

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetAlphaDIBInfo

Group: Method

Description:

Creates a new object and copies DIB info from specified alpha channel into it.

Declaration:

GetAlphaDIBInfo (Position As Long) As IGDIBInfo

Parameters:

Position
Position of the alpha channel to get DIB info from

Return value:

A new instance of the IGDIBInfo object

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetDIBHandle

Group: Method

Description:

This method returns DIB handle of the image.

Declaration:

GetDIBHandle () As Long

Return value:

DID handle of the image.

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetDIBInfo

Group: Method

Description:

Creates a new object and copies DIB info from IGPage into it.

Declaration:

GetDIBInfo () As IGDIBInfo

Return value:

A new instance of the IGDIBInfo object

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetDIBPtr

Group: Method

Description:

This method is not supported. Use RasterPtrGet instead.

Declaration:

GetDIBPtr() As LONG_PTR

Return value:

None

Bits Per Pixel:

N/A

Sample:

None


GetExtraChannelInfoCopy

Group: Method

Declaration:

GetExtraChannelInfoCopy() As IGExtraChannelInfoArray

Description:

This method gets a copy of the image DIB's extra channel info array.

Parameters:

N/A

Returns:

Image DIB's extra channel info array as IGExtraChannelInfoArray.

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetGrayscaleLUTCopy

Group: Method

Description:

If a grayscale LUT is attached to a IGPage, returns its copy as a new IGLUT object. Otherwise, returns Null (Nothing).

Declaration:

GetGrayscaleLUTCopy() As IGLUT

Return value:

A new instance of the IGLUT object.

Bits Per Pixel: All

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetImagePtr

Group: Method

Description:

This method returns the pointer to the image bits.

Declaration:

GetImagePtr () As Long

Return value:

The pointer to the image data.

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetImageResolutionCopy

Group: Method

Description:

Creates a new object and copies image resolution from IGPage into it.

Declaration:

GetImageResolutionCopy () As IGImageResolution

Return value:

A new IGImageResolution object.

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPaletteCopy

Group: Method

Description:

Creates a new object and copies image palette from IGPage into it.

Declaration:

GetPaletteCopy () As IGPalette

Return value:

A new instance of the IGPalette object.

Bits Per Pixel: 1, 4, 8

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPaletteEntryCopy

Group: Method

Description:

Creates a new object and copies specified entry of the image palette from IGPage into it.

Declaration:

GetPaletteEntryCopy (Index As Long) As IGPaletteEntry

Parameters:

Index
The index of palette entry to be copied

Return value:

A new instance of the IGPaletteEntry object.

Bits Per Pixel: 1, 4, 8

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPaletteSize

Group: Method

Description:

This method returns the number of entries in the image palette.

Declaration:

GetPaletteSize () As Long

Return value:

The number of entries in the palette.

Bits Per Pixel: 1, 4, 8

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPixAreaCopy

Group: Method

Description:

This method creates a new instance of the IGPixelArray object and copies the image area into it.

Declaration:

GetPixAreaCopy (X1Pos As Long, Y1Pos As Long, X2Pos As Long,
Y2Pos As Long, DataFormat As enumIGPixelAccessType) As
IGPixelArray

Parameters:

X1Pos
X coordinate of the left/top corner of the area
Y1Pos
Y coordinate of the left/top corner of the area
X2Pos
X coordinate of the right/bottom corner of the area
Y2Pos
Y coordinate of the right/bottom corner of the area
DataFormat
The output format to get data from, see enumIGPixelAccessType

Return value:

A new instance of the IGPixelArray object

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPixColumnCopy

Group: Method

Description:

This method creates a new instance of the IGPixelArray object and copies the image column into it.

Declaration:

GetPixColumnCopy (XPos As Long, YPos As Long, Length As Long,
DataFormat As enumIGPixelAccessType) As IGPixelArray

Parameters:

XPos
The X coordinate of the upper point of the column
YPos
The Y coordinate of the upper point of the column
Length
The length of column in pixels
DataFormat
The output format to get data from, see enumIGPixelAccessType

Return value:

A new instance of the IGPixelArray object.

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPixelCopy

Group: Method

Description:

This method creates a new IGPixel object and copies specified image pixel into it.

Declaration:

GetPixelCopy (XPos As Long, YPos As Long) As IGPixel

Parameters:

XPos
The X coordinate of the pixel to copy
YPos
The Y coordinate of the pixel to copy

Return value:

A new instance of the IGPixel object.

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPixLineCopy

Group: Method

Description:

This method creates a new IGPixelArray object and copies the image line into it.

Declaration:

GetPixLineCopy (X1Pos As Long, Y1Pos As Long, X2Pos As Long,
Y2Pos As Long, DataFormat As enumIGPixelAccessType) As
IGPixelArray

Parameters:

X1Pos
The X coordinate of the starting point
Y1Pos
The Y coordinate of the starting point
X2Pos
The X coordinate of the ending point
Y2Pos
The Y coordinate of the ending point
DataFormat
The output format to get data from, see enumIGPixelAccessType

Return value:

A new instance of the IGPixelArray object.

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPixRasterCopy

Group: Method

Description:

This method creates a new IGPixelArray object and copies the image raster into it.

Declaration:

GetPixRasterCopy (YPos As Long, DataFormat As
enumIGPixelAccessType) As IGPixelArray

Parameters:

YPos
The Position of raster to copy
DataFormat
The output format to get data from, see enumIGPixelAccessType

Return value:

A new instance of the IGPixelArray object.

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPixRowCopy

Group: Method

Description:

This method creates a new IGPixelArray object and copies the image row into it.

Declaration:

GetPixRowCopy (XPos As Long, YPos As Long, Length As Long,
DataFormat As enumIGPixelAccessType) As IGPixelArray

Parameters:

XPos
The X coordinate of the starting point of the row.
YPos
The Y coordinate of the starting point of the row.
Length
The number of pixels to copy
DataFormat
The output format to get data from, see enumIGPixelAccessType

Return value:

A new instance of the IGPixelArray object.

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetRasterCopy

Group: Method

Description:

This method is similar to GetPixRasterCopy(), but it returns IGIntegerArray (not IGPixelArray).

Declaration:

GetRasterCopy(long YPos, enumIGPixelAccessType DataFormat) As
IGIntegerArray

Parameters:

YPos
Raster line number
DataFormat
Indicates the data being read is packed or unpacked.

Return value:

Returns copy of raster.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GrayscaleLUTExists

Group: Method

Description:

This method returns True if a grayscale LUT is attached to an IGPage, and False otherwise.

Declaration:

GrayscaleLUTExists() As Boolean

Return value:

True if a grayscale LUT is attached to an IGPage, and False otherwise.

Bits Per Pixel: All

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


HasPDFData

Group: Method

Description:

This method tells whether or not the page contains PDF data.

Declaration:

HasPDFData() As Boolean

Return value:

True if the page contains PDF data; False otherwise.

Bits Per Pixel:

N/A

Sample:

None


HasVectorData

Group: Method

Description:

This method tells whether or not the page contains vector data, which could be PDF or CAD/vector data.

Declaration:

HasVectorData() As Boolean

Return value:

True if the page contains vector data; False otherwise.

Bits Per Pixel:

N/A

Sample:

None


IGPageUpdate

Group: Event

Description:

This event, if enabled, is fired every time when page is updated. It's enabled/disabled using the UpdateEventEnabled property.

Declaration:

Sub IGPage_IGPageUpdate()

Return value: N/A

Bits per pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageHeight

Group: Property

Description:

This property obtains the height, in pixels, of the image loaded in the IGPage object.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
All
Sample:
Core


ImageIsGray

Group: Property

Description:

This Boolean property indicates whether or not an image is a true grayscale.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read only
Settings:
True, False
Bits Per Pixel:
All
Sample:
IP/FX


ImagePtrGet

Group: Method

Description:

This method returns a pointer to the image's pixel data as stored internally in memory.

You can safely read and write pixel data using a pointer from this method, as long as you are aware of the format of the data. 1bpp images are stored in a compressed format (run ends) and cannot be accessed at all using this method. Use RasterPtrGet instead to access each raster if direct pointer access is needed.

Declaration:

ImagePtrGet() As Long

Return value:

Returns pointer to start of pixel data.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageWidth

Group: Property

Description:

This property returns the width, in pixels, of the image loaded in the IGPage object.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
All
Sample:
Core


IsValid

Group: Property

Description:

This Boolean property tells whether or not an image data has been loaded into IGPage object.

NOTE: This property does not clear error stack and disregards all errors that might be on the stack, it is simply intended to provide a Boolean value telling whether image is valid or not.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
All
Sample:
Core


Layers

Group: Property

Description:

This property specifies the layers associated with the IGPage.

Property Summary:

Data Type:
IGLayerArray
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Orientation

Group: Property

Description:

This property tells you what orientation the image was saved with. The two most-often-used orientations are "Portrait" and "Landscape." However, in order to provide complete support for the TIFF file format, which defines eight image orientations, ImageGear interprets eight orientations. This property will return the orientation mode used, as an IG_ORIENT_... constant. For an image with a "Portrait" orientation, this value would normally be IG_ORIENT_TOP_LEFT. For an image with "Landscape" orientation, this value would be either IG_ORIENT_RIGHT_TOP or IG_ORIENT_LEFT_BOTTOM. The full list of constants is defined in enumIGOrientationValues.

Notice that the IG_ORIENT constants contain indicators of two directions. For IG_ORIENT_TOP_LEFT, the first direction is "TOP." This specifies the placement of row 0 of the image. The second direction is "LEFT", and this specifies the placement of column 0. Thus, IG_ORIENT_TOP_LEFT specifies that row 0 of the image stored in the file should be displayed at the top and column 0 should be displayed at the left. This is the normal orientation of most images. On the other hand, IG_ORIENT_LEFT_BOTTOM specifies that row 0 should be displayed at the left and column 0 at the bottom. For this to be true the image would have to be rotated 90 degrees counter clockwise.

NOTE: The orientation setting of an image is for informational purposes only. This information is stored in the header structure of those file formats that support the storage of orientation information. The orientation setting tells how the image was intended to be displayed.

Property Summary:

Data Type:
enumIGOrientationValues
Default Value:
IG_ORIENT_TOP_LEFT
Access:
Read/Write
Settings:
enumIGOrientationValues values
Bits Per Pixel:
N/A
Sample:
None


PalettePtrGet

Group: Method

Description:

This method returns a pointer to the palette of an image. It should only be used if the image is indexed. The palette is stored as an array of RGBQUAD entries. The number of palette entries is equal to 2^n where n is the bit depth of the indexed channel. For example, an 8-bit indexed image has 2^8 = 256 palette entries.

You can safely read and write palette data using this pointer.

Declaration:

PalettePtrGet() as Long

Return value:

Returns a pointer to the image's palette.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PlatformDIBExport

Group: Method

Description:

This method exports an image as a platform-specific DIB. It will perform whatever conversions are necessary in order to store the image in the specified DIB format.

Declaration:

PlatformDIBExport(
Format as enumIGDIBExportFormats,
UseAlpha as Boolean,
Left as Long,
Top as Long,
Width as Long,
Height as Long,
Buff as Long) as IIGPlatformDIB

Parameters:

Format
  • IG_DIB_EXPORT_FORMAT_WINDOWS - Export DIB in standard Windows DIB format. 9-16bpp grayscale images cannot be exported in this format. CMYK images will be exported as 24bpp RGB.
  • IG_DIB_EXPORT_FORMAT_IG_LEGACY - Export DIB in ImageGear legacy format. In this format, DIB compression can be IG_BI_GRAYSCALE for 9-16bpp grayscale, in which case the DIB bit depth will be the actual bit depth from 9 to 16. Also, DIB compression can be IG_BI_CMYK for CMYK images, in which case the DIB bit depth will be 32.
UseAlpha
If the image contains an alpha channel, and this is set to TRUE, the alpha channel will be blended into the color channel(s) during export.
Left
X coordinate of starting point for region to export.
Top
Y coordinate of starting point for region to export.
Width
Width of region to export. Specify 0 to export entire region.
Height
Height of region to export. Specify 0 to export entire region.
Buff
Location in memory of buffer to store DIB at. Pass 0 to have the IGPlatformDIB object automatically allocate a buffer.

Return value:

Returns new instance of IGPlatformDIB object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PlatformDIBExportSizeCalc

Group: Method

Description:

This method returns the size of a DIB (in bytes) that would be exported by PlatformDIBExport if the same parameters were used. You can use this to allocate your own storage for the DIB, but this is not required as the IGPlatformDIB object can automatically allocate and free a buffer for the DIB.

Declaration:

PlatformDIBExportSizeCalc(
Format as enumIGDIBExportFormats,
UseAlpha as Boolean,
Left as Long,
Top as Long,
Width as Long,
Height as Long) as Long

Parameters:

Format
  • IG_DIB_EXPORT_FORMAT_WINDOWS - Export DIB in standard Windows DIB format. 9-16bpp grayscale images cannot be exported in this format. CMYK images will be exported as 24bpp RGB.
  • IG_DIB_EXPORT_FORMAT_IG_LEGACY - Export DIB in ImageGear legacy format. In this format, DIB compression can be IG_BI_GRAYSCALE for 9-16bpp grayscale, in which case the DIB bit depth will be the actual bit depth from 9 to 16. Also, DIB compression can be IG_BI_CMYK for CMYK images, in which case the DIB bit depth will be 32.
UseAlpha
If the image contains an alpha channel, and this is set to TRUE, the alpha channel will be blended into the color channel(s) during export.
Left
X coordinate of starting point for region to export.
Top
Y coordinate of starting point for region to export.
Width
Width of region to export. Specify 0 to export entire region.
Height
Height of region to export. Specify 0 to export entire region.

Return value:

Returns number of bytes needed to store exported DIB using given parameters.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PlatformDIBImport

Group: Method

Description:

This method imports a platform-specific (e.g. Windows) DIB from memory into the IGPage object. The pointer must point to the beginning of the DIB header.

Declaration:

PlatformDIBImport(DIBPtr As Long)

Parameters:

DIBPtr
Pointer to DIB stored in memory

Return value:

None

Bits Per Pixel:

1, 4, 8, 24

Sample:

None


Rasterize

Group: Method

Description:

This method converts vector data associated with a page to the page DIB (Device Independed Bitmap). The following formats provide vector data:

    • CGM
    • DWF
    • DXF/DWG
    • HPGL
    • DGN
    • PDF

Declaration:

Rasterize()

Return value: N/A

Bits Per Pixel:

    • 8, 24 - for CGM, DXF/DWG, HPGL, DGN
    • 1, 8 or 24 - for PDF/PS

Example:

CurPage.Rasterize

Sample: Display_View, PDF

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RasterPtrGet

Group: Method

Description:

This method returns a pointer to the beginning of pixel data for a given raster. Raster index 0 represents the top-most raster in the image.

You can safely read and write pixel data using a pointer from this method, as long as you are aware of the format of the data. However, 1bpp images are stored in a compressed format (run ends) and can only safely be read.

Declaration:

RasterPtrGet(Raster as Long) as Long

Parameters:

Raster
Index of raster to return pointer to

Return value:

Returns pointer to start of specified raster.

Bits Per Pixel: N/A

Sample:

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RemoveAllAlpha

Group: Method

Description:

This method removes all alpha channels from the IGPage.

Declaration:

RemoveAllAlpha ()

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RemoveAlpha

Group: Method

Description:

This method removes specified channel from the IGPage and shifts the remaining alpha channels.

Declaration:

RemoveAlpha (Position As Long)

Parameters:

Position
Position of the alpha channel to be removed, can be within the [0..AlphaCount-1] range.

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ROI

Group: Property

Description:

This property provides access to the IGROI object associated with the IGPage. ROI settings are taken into account by Processing, Effects, and Clipboard API. By default the ROI is set to the whole image.

Property Summary:

Data Type:
IGROI
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
All
Sample:
IP/FX


Signed

Group: Property

Description:

This property gets/sets image signed/unsigned attribute. It's applicable to 9-16g images only.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
9-16g
Sample:
Medical


SwapAlphas

Group: Method

Description:

This method swaps 2 alpha channels associated with IGPage.

Declaration:

SwapAlphas (Pos1 As Long, Pos2 As Long)

Parameters:

Pos1
Position of the first alpha channel
Pos2
Position of the second alpha channel

Return value: N/A

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateEventEnabled

Group: Property

Description:

This property controls whether or not to fire the IGPageUpdate event each time when IGPage is updated.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
All
Sample:
Core


UpdateExtraChannelInfoFrom

Group: Method

Declaration:

Sub UpdateExtraChannelInfoFrom(ExtraChannelInfo As
IGExtraChannelInfoArray)

Description:

This method creates a copy of the info array specified by ExtraChannelInfo and attaches it to IGPage's extra channel info array, replacing the old value.

Parameters:

ExtraChannelInfo
Extra channel info array (IGExtraChannelInfoArray)

Return value: N/A

Bits Per Pixel: All

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateGrayscaleLUTFrom

Group: Method

Description:

This method creates or updates IGPage's grayscale LUT with values from the specified LUT.

Declaration:

UpdateGrayscaleLUTFrom(LUT as IGLUT)

Parameters:

LUT
LUT specified.

Return value:

None

Bits Per Pixel: All

Sample: Medical

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateImageResolutionFrom

Group: Method

Description:

This method updates image resolution attributes of the IGPage with new values.

Declaration:

UpdateImageResolutionFrom (pImageRes As IGImageResolution)

Parameters:

pImageRes
IGImageResolution object to copy data from

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePaletteEntryFrom

Group: Method

Description:

This method updates image palette entry of the IGPage with new values.

Declaration:

UpdatePaletteEntryFrom (Index As Long, pPaletteEntry As
IGPaletteEntry)

Parameters:

Index
Index of palette entry to be updated
pPaletteEntry
IGPaletteEntry object to copy data from

Return value: N/A

Bits Per Pixel: 1, 4, 8

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePaletteFrom

Group: Method

Description:

This method updates image palette of the IGPage object.

Declaration:

UpdatePaletteFrom (pPalette As IGPalette)

Parameters:

pPalette
IGPalette object to copy data from

Return value: N/A

Bits Per Pixel: 1, 4, 8

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePixAreaFrom

Group: Method

Description:

This method updates image area of the IGPage.

Declaration:

UpdatePixAreaFrom (X1Pos As Long, Y1Pos As Long, X2Pos As Long,
Y2Pos As Long, pPixArray As IGPixelArray)

Parameters:

X1Pos
X coordinate of the left/top corner of the area
Y1Pos
Y coordinate of the left/top corner of the area
X2Pos
X coordinate of the right/bottom corner of the area
Y2Pos
Y coordinate of the right/bottom corner of the area
pPixArray
IGPixelArray object to copy data from

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePixColumnFrom

Group: Method

Description:

This method updates image column of the IGPage.

Declaration:

UpdatePixColumnFrom (XPos As Long, YPos As Long, pPixArray As
IGPixelArray)

Parameters:

XPos
The X coordinate of the upper point of the column
YPos
The Y coordinate of the upper point of the column
pPixArray
IGPixelArray object to copy data from

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePixelFrom

Group: Method

Description:

This method updates image pixel of the IGPage.

Declaration:

UpdatePixelFrom (XPos As Long, YPos As Long, pPixel As IGPixel)

Parameters:

XPos
The X coordiate of the pixel to be updates
YPos
The Y coordiate of the pixel to be updates
pPixel
The IGPixel object to copy data from

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePixLineFrom

Group: Method

Description:

This method updates image line of the IGPage.

Declaration:

UpdatePixLineFrom (X1Pos As Long, Y1Pos As Long, X2Pos As Long,
Y2Pos As Long, pPixArray As IGPixelArray)

Parameters:

X1Pos
The X coordinate of the starting point
Y1Pos
The Y coordinate of the starting point
X2Pos
The X coordinate of the ending point
Y2Pos
The Y coordinate of the ending point
pPixArray
IGPixelArray object to copy data from

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePixRasterFrom

Group: Method

Description:

This method updates image raster of the IGPage.

Declaration:

UpdatePixRasterFrom (YPos As Long, pPixArray As IGPixelArray)

Parameters:

YPos
The Position of raster to update
pPixArray
IGPixelArray object to copy data from

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePixRowFrom

Group: Method

Description:

This method updates image row of the IGPage. The number of rows to be updated is determined by the size of IGPixelArray passed as a pPixArray parameter.

Declaration:

UpdatePixRowFrom (XPos As Long, YPos As Long, pPixArray As
IGPixelArray)

Parameters:

XPos
The X coordinate of the starting point of the row
YPos
The Y coordinate of the starting point of the row
pPixArray
IGPixelArray object to copy data from

Return value: N/A

Bits Per Pixel: All

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateRasterFrom

Description:

This method is similar to GetPixRasterCopy(), but it takes IGIntegerArray object as parameter (not IGPixelArray).

Declaration:

UpdateRasterFrom(long YPos, enumIGPixelAccessType DataFormat,
IGIntegerArray Array)

Parameters:

YPos
Raster line number
DataFormat
Indicates in which manner the raster data should be stored
Array
Array that contains raster row

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGPalette

Group: Object

Description:

This object represents an image palette.

Interface:

IIGPalette extends IIGObject

Class Members:

Blue
property
This indexed property gets/sets Blue value.
Green
property
This indexed property gets/ses Green value.
Red
property
This indexed property gets/sets Red value.
Reserved
property
This indexed property gets/sets Reserved value.
Size
property
This property returns the number of entries in the palette.
Empty
method
This method empties the palette, reducing it to zero entries.
GetEntryCopy
method
This method creates a new object containing a copy of palette entry.
LoadFromFile
method
This method loads palette from file and returns its format.
Resize
method
This method changes the number of entries in the palette.
SaveToFile
method
This method saves palette to a file.
UpdateEntryFrom
method
This method updates palette entry.


Blue

Group: Property

Description:

This indexed property gets/sets Blue value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


GetEntryCopy

Group: Method

Description:

This method creates a new IGPaletteEntry object containing a copy of palette entry.

Declaration:

GetEntryCopy (Index As Long) As IGPaletteEntry

Parameters:

Index
Index of palette entry to copy

Return value:

A new instance of the IGPaletteEntry object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Green

Group: Property

Description:

This indexed property gets/ses Green value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


LoadFromFile

Group: Method

Description:

This method loads palette from file and returns its format.

Declaration:

LoadFromFile (sFileName As String, bBGROrder As Boolean) As
enumIGPaletteFormats

Parameters:

sFileName
File name to load palette from
bBGROrder
Specifies whether colors are stored in BGR order

Return value:

Palette file format, see enumIGPaletteFormats.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Red

Group: Property

Description:

This indexed property gets/sets Red value.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


Reserved

Group: Property

Description:

This indexed property gets/sets Reserved value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


Resize

Group: Method

Description:

This method changes the number of entries in the palette.

Declaration:

Resize (NewSize As Long)

Parameters:

NewSize
Number of entries in the palette

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SaveToFile

Group: Method

Description:

This method saves palette to a file.

Declaration:

SaveToFile (sFileName As String, PaletteFormat As
enumIGPaletteFormats

Parameters:

sFileName
Name of the file to save to
PaletteFormat
The format of file, see enumIGPaletteFormats

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the number of entries in the palette.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


UpdateEntryFrom

Group: Method

Description:

This method updates palette entry.

Declaration:

UpdateEntryFrom (Index As Long, pPaletteEntry As IGPaletteEntry)

Parameters:

Index
Index of entry to be updated
pPaletteEntry
IGPaletteEntry object to copy the data from

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGPaletteEntry

Group: Object

Description:

This object represents an entry of the image palette.

Interface:

IIGPaletteEntry extends IIGObject

Class Members:

Blue
property
This property gets/sets Blue value.
Green
property
This property gets/sets Green value.
Red
property
This property gets/sets Red value.
Reserved
property
This property gets/sets Reserved value.


Blue

Group: Property

Description:

This property gets/sets Blue value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


Green

Group: Property

Description:

This property gets/sets Green value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
N/A


Red

Group: Property

Description:

This property gets/sets Red value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
N/A


Reserved

Group: Property

Description:

This property gets/sets Reserved value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


IGPixel

Group: Object

Description:

This object represents a pixel of the image.

Interface:

IIGPixel extends IIGObject

Class Members:

CMYK_C
property
This property provides convenient access to the Cyan component for CMYK pixel, same as Value[0].
CMYK_K
property
This property provides convenient access to the Black component for CMYK pixel, same as Value[3].
CMYK_M
property
This property provides convenient access to the Magenta component for CMYK pixel, same as Value[1].
CMYK_Y
property
This property provides convenient access to the Yellow component for CMYK pixel, same as Value[2].
Gray
property
This property provides convenient access to pixel value for the grayscale pixel, same as Value[0].
Index
property
This property provides convenient access to pixel vale for the indexed pixel, same as Value[0].
RGB_B
property
This property provides convenient access to the Blue component for RGB pixel, same as Value[0].
RGB_G
property
This property provides convenient access to the Green component for RGB pixel, same as Value[1].
RGB_R
property
This get/set property provides convenient access to the Red component for RGB pixel, same as Value[2].
Type
property
This property returns the type of pixel (CMYK, RGB, Gray, or Indexed)
Value
property
This indexed property provides access to pixel values.
ChangeType
method
This method changes pixel's type.


ChangeType

Group: Method

Description:

This method changes pixel's type.

Declaration:

ChangeType (NewPixType As enumIGPixelType)

Parameters:

NewPixType
New type of pixel

Return value: N/A

Bits Per Pixel: N/A

Sample: IP/FX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CMYK_C

Group: Property

Description:

This property provides convenient access to the Cyan component for CMYK pixel, same as Value[0].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
IP/FX


CMYK_K

Group: Property

Description:

This property provides convenient access to the Black component for CMYK pixel, same as Value[3].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
N/A


CMYK_M

Group: Property

Description:

This property provides convenient access to the Magenta component for CMYK pixel, same as Value[1].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
IP/FX


CMYK_Y

Group: Property

Description:

This property provides convenient access to the Yellow component for CMYK pixel, same as Value[2].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


Gray

Group: Property

Description:

This property provides convenient access to pixel value for the grayscale pixel, same as Value[0].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
IP/FX


Index

Group: Property

Description:

This property provides convenient access to the pixel value for the indexed pixel, same as Value[0].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


RGB_B

Group: Property

Description:

This property provides convenient access to the Blue component for RGB pixel, same as Value[0].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
IP/FX


RGB_G

Group: Property

Description:

This property provides convenient access to the Green component for RGB pixel, same as Value[1].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


RGB_R

Group: Property

Description:

This get/set property provides convenient access to the Red component for RGB pixel, same as Value[2].

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
N/A


Type

Group: Property

Description:

This property returns the type of pixel (CMYK, RGB, Gray, or Indexed).

Property Summary:

Data Type:
enumIGPixelType
Default Value:
IG_PIXEL_RGB
Access:
Read only
Settings:
See enumIGPixelType constants
Bits Per Pixel:
N/A
Sample:
None


Value

Group: Property

Description:

This indexed property provides access to pixel values.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read/Write
Index
[0..3]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


IGPixelArray

Group: Object

Description:

This object represents an array of pixels.

Interface:

IIGPixelArray extends IIGArray

Class Members:

CMYK_C
property
This indexed property provides access to the Cyan component for CMYK pixel.
CMYK_K
property
This indexed property provides access to the Black component for CMYK pixel.
CMYK_M
property
This indexed property provides access to the Magenta component for CMYK pixel.
CMYK_Y
property
This indexed property provides access to the Yellow component for CMYK pixel.
Format
property
This property returns the type of pixel array
Gray
property
This indexed property provides access to pixel value for the grayscale pixel.
Index
property
This indexed property provides access to pixel value for the indexed pixel.
RGB_B
property
This indexed property provides access to the Blue component for RGB pixel.
RGB_G
property
This indexed property provides access to the Green component for RGB pixel.
RGB_R
property
This indexed property provides access to the Red component for RGB pixel.
Size
property
This property returns the number of pixels in the array.
ChangeAttrs
method
This method changes array's attributes.
CopyTo
method
Copies pixels into an IGIntegerArray.
GetPixelCopy
method
This method creates a new object containing a copy of the pixel.
GetRawPtr
method
This method returns pointer to the raw data buffer storing pixel data.
UpdatePixelFrom
method
This method updates pixel in the array.


ChangeAttrs

Group: Method

Description:

This method changes array's attributes.

Declaration:

ChangeAttrs (NewType as enumIGPixelArrayType, NewSize As Long)

Parameters:

NewType
New type of the array
NewSize
New number of pixels in the array

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CMYK_C

Group: Property

Description:

This indexed property provides access to the Cyan component for CMYK pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


CMYK_K

Group: Property

Description:

This indexed property provides access to the Black component for CMYK pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


CMYK_M

Group: Property

Description:

This indexed property provides access to the Magenta component for CMYK pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
N/A


CMYK_Y

Group: Property

Description:

This indexed property provides access to the Yellow component for CMYK pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
N/A


CopyTo

Group: Method

Description:

This method copies pixel values from an IGPixelArray object to an IGIntegerArray object. The IGIntegerArray object must already exist and be large enough to receive the number of pixel values specified to copy.

Declaration:

CopyTo(Array As IGIntegerArray, Index As Long, Count As Long)

Parameters:

Array
IGIntegerArray to copy pixels values to.
Index
Index in source array to start copying from.
Count
Number of pixel values to copy.

Return value:

None

Bits Per Pixel:

N/A

Sample:

None


Format

Group: Property

Description:

This property returns the type of pixel array.

Property Summary:

Data Type:
enumIGPixelArrayType
Default Value:
IG_PIX_ARR_RGB
Access:
Read only
Settings:
See enumIGPixelArrayType
Bits Per Pixel:
N/A
Sample:
None


GetPixelCopy

Group: Method

Description:

This method creates a new IGPixel object containing a copy of the pixel.

Declaration:

GetPixelCopy (Index As Long) As IGPixel

Parameters:

Index
The index of the pixel top copy

Return value:

A new instance of the IGPixel object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetRawPtr

Group: Method

Description:

This method returns pointer to the raw data buffer storing pixel data.

Declaration:

GetRawPtr () As Long

Return value:

The pointer to the memory storing pixel data.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Gray

Group: Property

Description:

This indexed property provides access to pixel value for the grayscale pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


Index

Group: Property

Description:

This indexed property provides access to the pixel value for the indexed pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


RGB_B

Group: Property

Description:

This indexed property provides access to the Blue component for RGB pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


RGB_G

Group: Property

Description:

This indexed property provides access to the Green component for RGB pixel.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


RGB_R

Group: Property

Description:

This indexed get/set property provides access to pixel component for RGB pixel.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
0 - 255
Bits Per Pixel:
N/A
Sample:
None


Size

Group: Property

Description:

This property returns the number of pixels in the array.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


UpdatePixelFrom

Group: Method

Description:

This method updates pixel in the array.

Declaration:

UpdatePixelFrom (Index As Long, pPixel As IGPixel)

Parameters:

Index
Index of the pixel to update
pPixel
IGPixel object to copy data from

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGPlatformDIB

Group: Object

Description:

Represents a platform-specific DIB. This object is typically created by using the IIGPage. PlatformDIBExport method. There are two modes of operation:

1) DIB data is owned by the IGPlatformDIB object. This occurs if Allocate method is used to allocate a new DIB, or IIGPage. PlatformDIBExport method is used without specifying an output buffer location. DIB data will be freed automatically when IGPlatformDIB object is destroyed or DIB is replaced by another DIB.

2) DIB data is not owned by the IGPlatformDIB object. This occurs if DIBPtrSet is used to associate an existing DIB, or IIGPage. PlatformDIBExport method is used and an output buffer location is specified. The application is responsible for freeing DIB data.

Interface:

IGPlatformDIB extends IIGObject

Class Members:

Allocate
method
Allocates DIB according to DIB info
DIBPtrGet
method
Returns pointer to associated DIB
DIBPtrSet
method
Associates existing DIB with this object
ImagePtrGet
method
Returns pointer to the image data
InfoGet
method
Returns DIB info object with DIB description
PalettePtrGet
method
Returns pointer to the palette data
RasterPtrGet
method
Returns pointer to the raster data


Allocate

Group: Method

Description:

This method allocates a DIB according to the given DIB info. The DIB is associated with the IGPlatformDIB object and will be freed automatically when the IGPlatformDIB object is destroyed or another DIB is associated with it.

Declaration:

Allocate(DIBInfo as IIGDIBInfo)

Parameters:

DIBInfo
IGDIBInfo object with description of DIB to allocate

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DIBPtrGet

Group: Method

Description:

This method returns a pointer to the DIB associated with the IGPlatformDIB object. The format of the DIB is AT_DIB structure followed by a palette and pixel data.

Declaration:

IGDIBPtrGet() as Long

Return value:

A pointer to the DIB.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DIBPtrSet

Group: Method

Description:

This method associates a DIB with the IGPlatformDIB object. If the IGPlatformDIB object is already associated with a DIB and the IGPlatformDIB object has ownership of that DIB, the DIB will be freed prior to associating the new DIB.

Declaration:

IGDIBPtrSet(DIBPtr as Long)

Parameters:

DIBPtr
Pointer to DIB to associate

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImagePtrGet

Group: Method

Description:

This method returns a pointer to the image data.

Declaration:

ImagePtrGet() as Long

Return value:

Pointer to the image data.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


InfoGet

Group: Method

Description:

This method returns an IGDIBInfo object with easily accessible information about the DIB.

Declaration:

InfoGet() as IIGDIBInfo

Return value:

Returns the new instance of IIGDIBInfo object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PalettePtrGet

Group: Method

Description:

This method returns a pointer to the palette data.

Declaration:

PalettePtrGet() as Long

Return value:

The pointer to the palette data.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RasterPtrGet

Group: Method

Description:

This method returns a pointer to the beginning of the specified raster. The raster index starts at 0, which represents the top-most raster in the image.

Declaration:

RasterPtrGet(Raster as Long) as Long

Parameters:

Raster
Index of raster to get pointer to

Return value:

The pointer to the raster data for the specified raster.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGPoint

Group: Object

Description:

The pair of integer coordinates.

Interface:

IIGPoint extends IIGObject

Class Members:

XPos
property
This property gets/sets the X position of point.
YPos
property
This property gets/sets the Y position of point.


XPos

Group: Property

Description:

This property gets/sets the X position of point.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


YPos

Group: Property

Description:

This property gets/sets the Y position of point.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


IGPointArray

Group: Object

Description:

This object represents an array of elements of IGPoint type.

Interface:

IIGPointArray extends IIGArray

Class Members:

Size
property
This property returns the number of points in the array.
Type
property
This property returns the type of data elements stored in the array.
XPos
property
This indexed property provides X cooordinate of the point
YPos
property
This indexed property provides Y cooordinate of the point
GetItemCopy
method
This method creates a new object containing a copy of the point.
Resize
method
This method re-sizes the array.
UpdateItemFrom
method
This method updates point in the array.


GetItemCopy

Group: Method

Description:

This method creates a new IGPoint object containing a copy of the point.

Declaration:

GetItemCopy (Index As Long) As IGPoint

Parameters:

Index
Index of the point to obtain, can be within [0..Size-1] range

Return value:

A new instance of the IGPoint object

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Resize

Group: Method

Description:

This method re-sizes the array.

Declaration:

Resize (NewSize As Long)

Parameters:

NewSize
New size of the array

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the number of points in the array.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


UpdateItemFrom

Group: Method

Description:

This method updates point in the array.

Declaration:

UpdateItemFrom (Index As Long, pPoint As IGPoint)

Parameters:

Index
Index of the point to update
pPoint
IGPoint objects to copy data from

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


XPos

Group: Property

Description:

This indexed property provides X cooordinate of the point.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


YPos

Group: Property

Description:

This indexed property provides Y cooordinate of the point.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index
[0..Size-1]
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


IGPolygon

Group: Object

Description:

This object represents a polygon as defined by an array of points. It's one of three shape types supported by ImageGear. The other shape types are rectangle and ellipse. The shapes are primarily used to describe ROI (region of interest) on the image.

Interface:

IIGPolygon extends IIGShape

Class Members:

Resize
method
Resizes the array of points that make up the polygon.
Size
property
Size of array of points that make up the polygon.
Type
property
This property defines a shape type.
XPos
property
X coordinate of a point in the polygon.
YPos
property
Y coordinate of a point in the polygon.


Resize

Group: Method

Description:

This method resizes the array of points that make up the polygon.

Declaration:

Resize(newSize As Long)

Parameters:

newSize
New size of array of points.

Return value:

None

Bits Per Pixel:

N/A

Sample:

None


Size

Group: Property

Description:

This property returns the size of the array of points that make up the polygon.

Property Summary:

Data Type:
Long
Access:
Read only
Settings:
Bits Per Pixel:
N/A
Sample:
None


XPos

Group: Property

Description:

This property returns the X coordinate of a point in the array of points that make up the polygon. The index of the point whose coordinate is to be retrieved is specified as a parameter.

Property Summary:

Data Type:
Long
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
N/A
Sample:
None


YPos

Group: Property

Description:

This property returns the Y coordinate of a point in the array of points that make up the polygon. The index of the point whose coordinate is to be retrieved is specified as a parameter.

Property Summary:

Data Type:
Long
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
N/A
Sample:
None


IGRectangle

Group: Object

Description:

This object represents a rectangle. It's one of the three shape types supported by ImageGear. IGRectagle is used quite extensively in different components and doesn't have a semantics on its own, the semantics of the rectangle is different for the different places where it's used - e.g. it can be used to specify a rectangular ROI for IGPage, or device rectangle for IGPageDisplay. The rectangle can be empty, meaning that it represents no actual rectangle, this concept is used to indicate that rectangle should be ignored and the whole image should be processed instead. The rectangle is empty after creation.

Interface:

IIGRectangle extends IIGShape

Class Members:

Bottom
property
This property provides access to the Y coordinate of the right/bottom point of the rectangle.
Height
property
This property provides access to the height of the rectangle.
IsEmpty
property
This boolean property tells whether the rectangle is empty. The rectangle is empty when both Width and Height are equal to 0.
IsValid
property
This boolean property tells whether the object holds values that represent a valid rectagle. Empty rectangle is deemed to be valid as well.
Left
property
This property provides access to the X coordinate of the left/top point of the rectangle.
Right
property
This property provides access to the X coordinate of the right/bottom point of the rectangle.
Top
property
This property provides access to the Y coordinate of the left/top point of the rectangle.
Width
property
This property provides access to the width of the rectangle.
Empty
method
This method makes the rectangle empty by changing its Width & Height to 0.


Bottom

Group: Property

Description:

This property provides access to the Y coordinate of the right/bottom point of the rectangle.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


Empty

Group: Method

Description:

This method makes the rectangle empty by changing its Width & Height to 0.

Declaration:

Empty ()

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Height

Group: Property

Description:

This property provides access to the height of the rectangle.

NOTE: The Height property assumes that the rectangle is being used with endpoint- inclusive semantics. Using endpoint-inclusive semantics, a rectangle with left, top, right, and bottom coordinates all equal to 0 is one pixel wide and one pixel tall. So, for example, the Width property is calculated as Right - Left + 1. Sometimes rectangles are used with endpoint-exclusive semantics, in which the width of the rectangle should be calculated as Right - Left. In this case, the Height property should not be used.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


IsEmpty

Group: Property

Description:

This boolean property tells whether the rectangle is empty. The rectangle is empty when both Width and Height are equal to 0.

NOTE: "Empty" rectangle can be useful to signal that the whole area needs to be processed and rectangle should be practically ignored. This is used in the display component for example.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


IsValid

Group: Property

Description:

This boolean property tells whether the object holds values that represent a valid rectagle. Empty rectangle is deemed to be valid as well.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


Left

Group: Property

Description:

This property provides access to the X coordinate of the left/top point of the rectangle.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


Right

Group: Property

Description:

This property provides access to the X coordinate of the right/bottom point of the rectangle.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


Top

Group: Property

Description:

This property provides access to the Y coordinate of the left/top point of the rectangle.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


Width

Group: Property

Description:

This property provides access to the width of the rectangle.

NOTE: The Width property assumes that the rectangle is being used with endpoint- inclusive semantics. Using endpoint-inclusive semantics, a rectangle with left, top, right, and bottom coordinates all equal to 0 is one pixel wide and one pixel tall. So, for example, the Width property is calculated as Right - Left + 1. Sometimes rectangles are used with endpoint-exclusive semantics, in which the width of the rectangle should be calculated as Right - Left. In this case, the Width property should not be used.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
IP/FX


IGResult

Group: Object

Description:

This object is contained inside the IGCoreCtl and provides error handling capabilities. ImageGear employs unified error handling. Each time an error occurs inside ImageGear it's placed onto error stack. There are two types of errors - severe errors (that are commonly referred to as errors) that make it impossible to complete an operation and warnings that make possible to complete the operation while signalling that something went wrong. Error stack contains all errors and warnings after each ImageGear API call, that happened during the execution of this API call. One way to handle the errors is to check the number of errors on the stack after calling IG API. However such approach can be tedious and often times it's convenient to establish few error handling porcedures for porcessing of multiple error conditions. To provide for the more convenient error handling ImageGear provides the following error notification capabilities:

ImageGear can raise an OLE error condition at the end of every API call if at least one error happened during the execution of the API. This makes it possible to setup a single error handling procedure (e.g. `On Error' statement in Vusial Basic) and tranfer control to it when an error happens without verifying error condition separetely after each API call.

ImageGear can fire an IGError event when an error or warning is added to the error stack.

The error handling is configured via the NotificationFlags property. Its values can be compised from the following flags, any of whose can be combined:

  • IG_ERR_OLE_ERROR - ImageGear will set an OLE error condition at the end of each API call, if at least one error happens during the API execution. Setting this flag also leads to cleaing error stack at the begining of all IG API calls.
  • IG_ERR_EVENT_ERROR - ImageGear will fire IGError event each time an error is added to the error stack.
  • IG_ERR_EVENT_WARNING - ImageGear will fire IGError event each time a warning is added to the error stack.

The default value of NotificationFlags is IG_ERR_OLE_ERROR or IG_ERR_EVENT_WARNING.

NOTE: An error is a result record with the level equal to 0, while a warning is a result error with the level greater than 0.

Interface:

IIGResult

Class Members:

ErrorCount
property
This property returns the total number of errors (records with level 0) on the stack.
IsOK
property
This property tells whether there are any errors (records with level 0) on the stack.
NotificationFlags
property
This property configures ImageGear error handling mechanism.
RecordCount
property
This indexed property returns the number of records of the specified level on the stack.
RecordsTotal
property
This property returns the total number of records on the stack.
AddRecord
method
This method adds a new record to the stack.
Clear
method
This method clears all records from the stack.
GetError
method
This method creates a new object and copies info about IG error into it.
GetRecord
method
This method creates a new object and copies info about IG result record into it.
GetRecordWithLevel
method
This method creates a new object and copies info about IG result record with the specified level into it.


AddRecord

Group: Method

Description:

This method adds a new record to the stack.

Declaration:

AddRecord (ErrCode As Long, Level As Long, Value1 As Long,
Value2 As Long, FileName As BSTR, LineNumber As Long, ExtraText
As BSTR)

Parameters:

ErrCode
Error code
Level
Record level. 0 means error, 1 - warning
Value1
Record-specific value
Value2
Record-specific value
FileName
Name of the source file where the error/warning happens
LineNumber
Number of line containing error/warning
ExtraText
Extra record information

Return value:

None.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Clear

Group: Method

Description:

This method clears all records from the stack.

Declaration:

Clear()

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ErrorCount

Group: Property

Description:

This property returns the total number of errors (records with level 0) on the stack.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


GetError

Group: Method

Description:

This method creates a new object and copies info about IG error into it.

Declaration:

GetError (Index As Long) As IGResultRecord

Parameters:

Index
The index of the error in the stack

Return value:

A new instance of the IGResultRecord object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetRecord

Group: Method

Description:

This method creates a new object and copies info about IG result record into it.

Declaration:

GetRecord (Index As Long) As IGResultRecord

Parameters:

Index
The index of the record in the stack

Return value:

A new instance of the IGResultRecord object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetRecordWithLevel

Group: Method

Description:

This method creates a new object and copies info about IG result record with the specified level into it.

Declaration:

GetRecordWithLevel (Level As Long, Index As Long) As
IGResultRecord

Parameters:

Level
Result level
Index
The index of the record in the stack

Return value:

A new instance of the IGResultRecord object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsOK

Group: Property

Description:

This property tells whether there are any errors (records with level 0) on the stack.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Core


NotificationFlags

Group: Property

Description:

This property configures ImageGear error handling mechanism.

Property Summary:

Data Type:
enumIGErrorHandlingFlags
Default Value:
IG_ERR_OLE_ERROR Or IG_ERR_EVENT_WARNING
Access:
Read/Write
Settings:
See enumIGErrorHandlingFlags
Bits Per Pixel:
N/A
Sample:
Core


RecordCount

Group: Property

Description:

This indexed property returns the number of records of the specified level on the stack.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Index
Level
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


RecordsTotal

Group: Property

Description:

This property returns the total number of records on the stack.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGResultRecord

Group: Object

Description:

Represents a record (error or warning) on the result stack.

Interface:

IIGResultRecord

Class Members:

ErrCode
property
This property returns the error/warning code.
ExtraText
property
This property provides the text information about an error/warning.
FileName
property
This property returns the file name where an error/warning has been set.
Level
property
This property returns the error level.
LineNumber
property
This property returns the line number in the file where an error/warning has been set.
Value1
property
This property returns the Value1 attribute associted with an error/warning.
Value2
property
This property returns the Value2 attribute associted with an error/warning.


ErrCode

Group: Property

Description:

This property returns the error/warning code.

Property Summary:

Data Type:
enumIGErrorCodes
Default Value:
N/A
Access:
Read only
Settings:
Any value of enumIGErrorCodes
Bits Per Pixel:
N/A
Sample:
Core


ExtraText

Group: Property

Description:

This property provides the text information about an error/warning.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


FileName

Group: Property

Description:

This property returns the file name where an error/warning has been set.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Level

Group: Property

Description:

This property returns the error level.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


LineNumber

Group: Property

Description:

This property returns the line number in the file where an error/warning has been set.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Value1

Group: Property

Description:

This property returns the Value1 attribute associted with an error/warning.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Value2

Group: Property

Description:

This property returns the Value2 attribute associted with an error/warning.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


IGROI

Group: Object

Description:

Represents ROI (region of interest) associated with IGPage, there are 3 types of ROI: whole image, rectangle, and non-rectangular area (NRA). ROI is always associted with IGPage and is accessible via the ROI property of it. The default ROI type is the whole image. NRA ROI is represented as a reference point (Left and Top attributes of the bounding rectangle) and an NRA mask. NRA mask is a 1-bit image with the boolean semantics - 1 means that corresponding pixel belongs to the shape, and 0 means the opposite.

Interface:

IIGROI

Class Members:

Height
property
This property represents the height of the rectangle in case of IG_ROI_RECT type, and the height of the bounding rectangle in case of IG_ROI_NRA type (the property is read only in case of NRA).
Left
property
This property represents the X coordinate of the left/top point of the rectangle in case of IG_ROI_RECT type or the bounding rectangle in case of IG_ROI_NRA type.
Top
property
This property represents the Y coordinate of the left/top point of the rectangle in case of IG_ROI_RECT type or the bounding rectangle in case of IG_ROI_NRA type.
Type
property
This property returns the type of ROI.
Width
property
This property represents the width of the rectangle in case of IG_ROI_RECT type, and the height of the bounding rectangle in case of IG_ROI_NRA type (the property is read only in case of NRA).
Convert
method
This method converts ROI to a different type.
Dilate
method
Applies dilation to the ROI.
Erode
method
Applies erosion to the ROI.
GetMaskCopy
method
This method creates a copy of NRA mask in case of IG_ROI_NRA type.
InitFromShape
method
This method changes ROI to represent specified shape and changes ROI type correspondingly.
UpdateMaskFrom
method
This method updates NRA mask and changes ROI type to IG_ROI_NRA type if it had a different type before.


Convert

Group: Method

Description:

This method converts ROI to a different type.

Declaration:

Convert (NewType As enumIGROIType)

Parameters:

NewType
New type of ROI, see enumIGROIType

Return value: N/A

Bits Per Pixel: All

Sample: IP/FX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Dilate

Group: Method

Description:

The method applies dilation to the ROI data.

Declaration:

Sub Dilate()

Return value:

None

Bits Per Pixel: All

Sample: IP/FX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Erode

Group: Method

Description:

The method applies erosion to the ROI data.

Declaration:

Sub Erode()

Return value:

None

Bits Per Pixel: All

Sample: IP/FX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetMaskCopy

Group: Method

Description:

This method creates a copy of NRA mask in case of IG_ROI_NRA type.

Declaration:

GetMaskCopy () As IGPage

Return value:

A New instance of the IGPage object representing a copy of the mask.

Bits Per Pixel: All

Sample: IP/FX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Height

Group: Property

Description:

This property represents the height of the rectangle in case of IG_ROI_RECT type, and the height of the bounding rectangle in case of IG_ROI_NRA type (the property is read only in case of NRA).

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write for IG_ROI_RECT type and Read only for IG_ROI_ALL_IMAGE and IG_ROI_NRA ROI types.
Settings:
Any
Bits Per Pixel:
All
Sample:


InitFromShape

Group: Method

Description:

This method changes ROI to represent specified shape and changes ROI type correspondingly.

Declaration:

InitFromShape (pShape As IGShape)

Parameters:

pShape
IGShape-derived object, i.e. IGRectangle, IGEllipse, or IGPolygon.

Return value: N/A

Bits Per Pixel: All

Sample: IP/FX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Left

Group: Property

Description:

This property represents the X coordinate of the left/top point of the rectangle in case of IG_ROI_RECT type or the bounding rectangle in case of IG_ROI_NRA type.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
All
Sample:
IP/FX


Top

Group: Property

Description:

This property represents the Y coordinate of the left/top point of the rectangle in case of IG_ROI_RECT type or the bounding rectangle in case of IG_ROI_NRA type.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
All
Sample:
IP/FX


Type

Group: Property

Description:

This property returns the type of ROI.

Property Summary:

Data Type:
enumIGROIType
Default Value:
IG_ROI_ALL_IMAGE
Access:
Read only
Settings:
See enumIGROIType
Bits Per Pixel:
All
Sample:
IP/FX


UpdateMaskFrom

Group: Method

Description:

This method updates NRA mask and changes ROI type to IG_ROI_NRA type if it had a different type before.

Declaration:

UpdateMaskFrom (pMask As IGPage)

Parameters:

pMask
An IGPage object where to update mask from, IGPage object is duplicated inside the method.

Return value: N/A

Bits Per Pixel: All

Sample: IP/FX

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Width

Group: Property

Description:

This property represents the width of the rectangle in case of IG_ROI_RECT type, and the height of the bounding rectangle in case of IG_ROI_NRA type (the property is read only in case of NRA).

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write for IG_ROI_RECT type and Read only for IG_ROI_ALL_IMAGE and IG_ROI_NRA ROI types.
Settings:
Any
Bits Per Pixel:
All
Sample:
IP/FX


IGSettings

Group: Object

Description:

This object is contained inside IGCoreCtl and provides access to global settings. The following is the list of the standard global parameters:

COMM.PATH
String
Default path where to search for IG components and third party libraries.
CPM.CMYK_PROFILE_PATH
String
Filename for CMYK color profile.
CPM.ENABLE_PROFILES
Boolean
Enables/disables ICC profiles management.
CPM.RGB_PROFILE_PATH
String
Filename for RGB color profile.
IGResult .NOTIFICATIONMODE
Long
The same as IGCoreCtl .Result. NotificationFlags property.
LIC.PRODUCT_KEY
String
Product license key
PDF.ENABLE_POSTSCRIPT
Boolean
Used to enable/disable PostScript support in PDF component

Custom parameters can be added to the collection via correponding IG API - UpdateParamFrom.

Interface:

IIGSettings

Class Members:

ParamCount
property
This property returns the total number of parameters in the collection.
GetParamCopy
method
This method creates a new object and copies global parameter data into it. Parameter is identified by its name.
GetParamCopyByIndex
method
This method creates a new object and copies global parameter data into it. Parameter is identified by its index in the collection.
UpdateParamFrom
method
This method updates global parameter value in the collection.


GetParamCopy

Group: Method

Description:

This method creates a new object and copies global parameter data into it. Parameter is identified by its name.

Declaration:

GetParamCopy (ParamName As String) As IGGlobalParameter

Parameters:

ParamName
The name of the parameter

Return value:

A new instance of the IGGlobalParameter object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetParamCopyByIndex

Group: Method

Description:

This method creates a new object and copies global parameter data into it. Parameter is identified by its index in the collection.

Declaration:

GetParamCopyByIndex (Index As Long) As IGGlobalParameter

Parameters:

Index
Index of parameter in the collection

Return value:

A new instance of the IGGlobalParameter object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ParamCount

Group: Property

Description:

This property returns the total number of global parameters in the collection.

Property Summary:

Data Type:
Long
Default Value:
6
Access:
Read only
Settings:
any
Bits Per Pixel:
N/A
Sample:
Core


UpdateParamFrom

Group: Method

Description:

This method updates global parameter value in the collection.

Declaration:

UpdateParamFrom (pParam As IGGlobalParameter)

Parameters:

pParam
An instance of the IGGlobalParameter object where the copy data from

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGStatusReport

Group: Object

Description:

This object represents status report and is passed as a parameter to the IGStatus event.

Interface:

IIGStatusReport

Class Members:

CancelAction
property
If this boolean property is set to True within the event handler, operation will be cancelled.
StepsCompleted
property
This property provides the number of steps completed.
StepsTotal
property
This property provides the total number of steps.


CancelAction

Group: Property

Description:

If this boolean property is set to True within the event handler, operation will be cancelled.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


StepsCompleted

Group: Property

Description:

This property provides the number of steps completed.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


StepsTotal

Group: Property

Description:

This property provides the total number of steps.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


IGStringArray

Group: Object

Description:

This object represents the array of strings.

Interface:

IIGStringArray extends IIGArray

Class Members:

Item
property
This indexed property provides access to the individual item in the array.
Size
property
This property retutrns the number of items in the array.
Type
property
This property returns the type of data elements stored in the array.
Resize
method
This method re-sizes an array.


Item

Group: Property

Description:

This indexed property provides access to the individual item in the array.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Index
[0..Size-1]
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


Resize

Group: Method

Description:

This method re-sizes an array.

Declaration:

Resize (NewSize As Long)

Parameters:

NewSize
New number of items in the array.

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property retutrns the number of items in the array.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
None


Type

Group: Property

Description:

This property returns the type of data elements stored in the array.

Property Summary:

Data Type:
enumIGArrayType
Default Value:
IG_ARRAY_STRINGS
Access:
Read only
Settings:
Any value of enumIGArrayType
Bits Per Pixel:
N/A
Sample:
None


IIGArray

Type: Interface

Description:

Base interface for all array objects.

Class Members:

Type
property
Returns the type of array the object is.


Type

Group: Property

Description:

Returns the type of array the object is.

Property Summary:

Data Type:
enumIGArrayType
Default Value:
N/A
Access:
Read only
Settings:
Any enumIGArrayType value
Bits Per Pixel:
N/A
Sample:
N/A


IIGComponent

Type: Interface

Description:

Base interface for all ImageGear components.

Interface:

IIGComponent

Class Members:

ComponentInfo
property
Provides an access to the component's IGComponentInfo object, which identifies the particular version of the component.
ComponentInterface
property
Provides an access to the component's IIGComponent interface, which is used to associate the component with the Core control using IGCoreCtl.AssociateComponent.


ComponentInfo

Group: Property

Description:

This property provides an access to the component's IGComponentInfo object, which identifies the particular version of the component.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Any


ComponentInterface

Group: Property

Description:

This property provides an access to the component's IIGComponent interface, which is used to associate the component with the Core control using IGCoreCtl . AssociateComponent.

Property Summary:

Data Type:
IIGComponent
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Any


IIGObject

Type: Interface

Description:

Base interface for all objects that can be created using CreateObject methods.

Interface:

IIGObject
AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IIGShape

Group: Interface

Description:

This interface represents a shape. Types such as IGRectangle, IGEllipse, and IGPolygon inherit from this interface and are used for a variety of purposes throughout ImageGear.

Interface:

IIGShape

Class Members:

Type
property
Returns the type of shape the object is.


Type

Group: Property

Description:

This property returns the type of shape the object is.

Property Summary:

Data Type:
enumIGShapeType
Access:
Read only
Settings:
Any enumIGShapeType value
Bits Per Pixel:
N/A
Sample:
None


Core Component Enumerations

This section represents an alphabetized reference of enumerations defined in ImageGear Core component:

enumIGAbsDataType
Identifies all abstract data types, absttract data types are a subset of the OLE compatible data types that is used in ImageGear
enumIGArrayType
Identifies the different array types
enumIGBiCompression
Identifies the different compression schemes used for storing image in memory
enumIGColorChannels
Identifies the different color components.
enumIGColorProfileGroups
Identifies a color profile group of the requested color profile.
enumIGColorSpaceIDs
Identifies a color space ID.
enumIGColorSpaces
Identifies the different color spaces, RGB, CMYK etc.
enumIGCoreObjType
Identifies all types of creatable objects
enumIGDepthChangeMode
Identifies modes used for changing channel depths of an image.
enumIGDIBExportFormats
Identifies DIB format to be used for a DIB export operation.
enumIGDocumentType
Determines the type of ImageGear document.
enumIGErrorCodes
Identifies the different ImageGear error/warning codes.
enumIGErrorHandlingFlags
Identifies the different error handling flags
enumIGExtraChannelColorType
Specifies extra channel's color type.
enumIGExtraChannelType
Specifies types of extra channels (Unknown, Mask or Spot).
enumIGLayerType
Supported layer types.
enumIGLicenseType
Identifies the different types of product license - evaluation, development, or deployment
enumIGMaskChannelModes
Specifies mode of Mask channel (selected area or masked area).
enumIGMergeModes
Identifies the type of arithmetic operation (merge method)
enumIGPaletteFormats
Identifies the different formats used for storing image palette in the external file
enumIGPixelAccessType
Identifies the different methods of accessing pixel values
enumIGPixelArrayType
Identifies the different types of pixel array
enumIGPixelType
Identifies the different pixel types
enumIGResolutionUnits
Identifies the different resolution units
enumIGROIType
Identifies the different ROI (region of interest) types
enumIGShapeType
Identifies the different shape types
enumIGSpotColorVendorIDs
Specifies predefined Vendor IDs.


enumIGAbsDataType

Group: Enumeration

Description:

Identifies all abstract data types, absttract data types are a subset of the OLE compatible data types that is used in ImageGear.

Values:

IG_DATA_ARRAY
IGDataArray data type
IG_DATA_BOOLEAN
Boolean data type
IG_DATA_D_LONG
IGDLong data type
IG_DATA_DOUBLE
Double data type
IG_DATA_LONG
Long data type
IG_DATA_LUT
IGLUT data type
IG_DATA_RATIONAL
Rational value, passed as IGDLong data type. IGDLong.High specifies numerator, IGDLong.Low specifies denominator.
IG_DATA_RECTANGLE
IGRectangle data type
IG_DATA_STRING
String data type


enumIGArrayType

Group: Enumeration

Description:

Identifies the different array types.

Values:

IG_ARRAY_INTEGERS
IGIntegerArray type
IG_ARRAY_PIXELS
IGPixelArray type
IG_ARRAY_POINTS
IGPointArray type
IG_ARRAY_DBL_POINTS
IGDoublePointArray type
IG_ARRAY_DATA
IGDataArray type
IG_ARRAY_STRINGS
IGStringArray type


enumIGBiCompression

Group: Enumeration

Description:

Identifies the different compression schemes used for storing image in memory.

Values:

IG_BI_RGB
Standard RGB uncompressed image
IG_BI_RLE
RLE compressed 1-bit image
IG_BI_CMYK
CMYK uncompressed image
IG_BI_GRAYSCALE
9-16 bit grayscale uncompressed image


enumIGColorChannels

Group: Enumeration

Description:

Contains the different color components (channels).

Values:

IG_COLOR_COMP_ALL
All components
IG_COLOR_COMP_R
R component of RGB image
IG_COLOR_COMP_G
G component of RGB image
IG_COLOR_COMP_B
B component of RGB image
IG_COLOR_COMP_RGB
R, G and B components of RGB image
IG_COLOR_COMP_I
Used when the ave of RGB is to be used
IG_COLOR_COMP_C
C component of CMYK image
IG_COLOR_COMP_M
M component of CMYK image
IG_COLOR_COMP_Y
Y component of CMYK image
IG_COLOR_COMP_K
K component of CMYK image
IG_COLOR_COMP_CMYK
C, M, Y and K components of CMYK image
IG_COLOR_COMP_YUV_Y
Y component of YUV image
IG_COLOR_COMP_YUV_U
U component of YUV image
IG_COLOR_COMP_YUV_V
V component of YUV image
IG_COLOR_COMP_YUV
Y, U and V components of YUV image


enumIGColorProfileGroups

Group: Enumeration

Description:

Identifies a color profile group of the requested color profile.

Values:

IG_CP_GRP_WORKING
WCP (Working Color Profile). This group of color profiles provides information about the default color global parameters used to represent the color data for HIGEAR objects. Those global parameters are used if the image does not have a local color profile associated with it.
IG_CP_GRP_IMPORT
ICP (Import Color Profile). This group of profiles is used during a filter load operation.
IG_CP_GRP_EXPORT
ECP (Export Color Profile). This group of profiles is very similar to ICP but is used in the filter export operation.


enumIGColorSpaceIDs

Group: Enumeration

Description:

Identifies a color space ID. This ID is a bit field which can combine multiple values from enumIGColorSpaceIDs. It can be made up of one, two, or three components. It must describe the color space (RGB, CMYK, grayscale, etc). It may also indicate that a type of alpha channel is present (alpha, pre-multiplied alpha) and/or the presence of one or more extra channels. For example:

IG_COLOR_SPACE_ID_RGB - RGB with no alpha or extra channels.

IG_COLOR_SPACE_ID_Gy Or IG_COLOR_SPACE_ID_A - grayscale with an alpha channel.

IG_COLOR_SPACE_ID_RGB Or IG_COLOR_SPACE_ID_P Or IG_COLOR_SPACE_ID_Ex - RGB with a pre-multiplied alpha channel and one or more extra channels.

Values:

IG_COLOR_SPACE_ID_None
No regular (color) channels, can be combined with alpha and extra values
IG_COLOR_SPACE_ID_RGB
RGB
IG_COLOR_SPACE_ID_Gy
Grayscale (intensity)
IG_COLOR_SPACE_ID_I
Indexed RGB
IG_COLOR_SPACE_ID_IHS
IHS
IG_COLOR_SPACE_ID_HLS
HLS
IG_COLOR_SPACE_ID_LAB
LAB
IG_COLOR_SPACE_ID_YIQ
YIQ
IG_COLOR_SPACE_ID_CMY
CMY
IG_COLOR_SPACE_ID_CMYK
CMYK
IG_COLOR_SPACE_ID_YCbCr
YCbCr
IG_COLOR_SPACE_ID_YUV
YUV
IG_COLOR_SPACE_ID_XYZ
CIE XYZ
IG_COLOR_SPACE_ID_LAST
Equal to last color space (for color channels) enum value
IG_COLOR_SPACE_ID_ColorMask
Bit mask used to access color space (for color channels) only
IG_COLOR_SPACE_ID_A
Indicates presence of an alpha channel
IG_COLOR_SPACE_ID_P
Indicates presence of a pre-multiplied alpha channel
IG_COLOR_SPACE_ID_Ex
Indicates presence of one or more extra channels
IG_COLOR_SPACE_ID_RGBA
RGB with alpha channel
IG_COLOR_SPACE_ID_RGBPA
RGB with pre-multiplied alpha channel
IG_COLOR_SPACE_ID_GyA
Intensity with alpha channel
IG_COLOR_SPACE_ID_GyPA
Intensity with pre-multiplied alpha channel
IG_COLOR_SPACE_ID_RGBAEx
RGB with alpha and extra channels
IG_COLOR_SPACE_ID_RGBPAEx
RGB with pre-multiplied alpha and extra channels
IG_COLOR_SPACE_ID_Unknown
Unknown - no color or alpha channels, only extra channels are present


enumIGColorSpaces

Group: Enumeration

Description:

Identifies the different color spaces.

Values:

IG_COLOR_SPACE_RGB
RGB
IG_COLOR_SPACE_I
Intensity
IG_COLOR_SPACE_IHS
IHS
IG_COLOR_SPACE_HLS
HLS
IG_COLOR_SPACE_Lab
Lab
IG_COLOR_SPACE_YIQ
YIQ
IG_COLOR_SPACE_CMY
CMY
IG_COLOR_SPACE_CMYK
CMYK
IG_COLOR_SPACE_YCrCb
YCrCb
IG_COLOR_SPACE_YUV
YUV
IG_COLOR_SPACE_MONO
FlashPix only: 8-bit grayscale
IG_COLOR_SPACE_ALPHA
FlashPix only: 8-bit alpha
IG_COLOR_SPACE_MA
FlashPix only: 16-bit: mono + alpha
IG_COLOR_SPACE_AM
FlashPix only: 16-bit: alpha + mono
IG_COLOR_SPACE_RGBA
FlashPix only: 32-bit: RGB + alpha
IG_COLOR_SPACE_ARGB
FlashPix only: 32-bit: alpha + RGB
IG_COLOR_SPACE_YCC
FlashPix only: 24-bit: photoYCC
IG_COLOR_SPACE_YCCA
FlashPix only: 32-bit: photoYCC + alpha
IG_COLOR_SPACE_AYCC
FlashPix only: 32-bit: alpha + photoYCC
IG_COLOR_SPACE_UNKNOWN
FlashPix only: unknown or invalid colorspace
IG_COLOR_SPACE_NOCHANGE
FlashPix only: current colorspace


enumIGCoreObjType

Group: Enumeration

Description:

Identifies all types of creatable objects.

Values:

IG_OBJ_COLORSPACECONVERTER
IGColorSpaceConverter type.
IG_OBJ_DATAARRAY
IGDataArray type.
IG_OBJ_DBL_RECTANGLE
IGDoubleRectangle type.
IG_OBJ_DIBINFO
IGDIBInfo type.
IG_OBJ_DOCUMENT
IGDocument type
IG_OBJ_DOUBLE_MATRIX
IGDoubleMatrix type
IG_OBJ_ELLIPSE
IGEllipse type
IG_OBJ_EXTRACHANNELINFO_ARRAY
IGExtraChannelInfoArray type.
IG_OBJ_GLOBAL_PARAM
IGGlobalParameter type
IG_OBJ_IMAGE_ALLOC_PARAMS
IGImageAllocationParams type
IG_OBJ_IMAGE_RESOLUTION
IGImageResolution type
IG_OBJ_INTEGERARRAY
IGIntegerArray type.
IG_OBJ_LUT
IGLUT type.
IG_OBJ_PAGE
IGPage type
IG_OBJ_PALETTE
IGPalette type
IG_OBJ_PALETTEENTRY
IGPaletteEntry type
IG_OBJ_PIXEL
IGPixel type
IG_OBJ_PLATFORMDIB
IGPlatformDIB type
IG_OBJ_POINT
IGPoint type
IG_OBJ_POLYGON
IGPolygon type
IG_OBJ_RECTANGLE
IGRectangle type


enumIGDepthChangeMode

Group: Enumeration

Description:

Identifies modes used for changing channel depths of an image. This is used by the method IGPage.ChannelDepthsChange.

Values:

IG_DEPTH_CHANGE_NO_SCALE
Changes channel depth without scaling of channel values. This results in unchanged channel values (if the new depth is large enough to accomodate the values). The image will likely change in appearance using this option.
IG_DEPTH_CHANGE_SCALE
Changes channel depth with scaling of channel values. This causes channel values to be scaled so that the ratio of new channel value to new channel depth is as close as possible to the ratio of old channel value to old channel depth. The image will likely maintain the same appearance using this option, unless channel depths are reduced too much to maintain accuracy.


enumIGDIBExportFormats

Group: Enumeration

Description:

Identifies DIB format to be used for a DIB export operation.

Values:

IG_DIB_EXPORT_FORMAT_WINDOWS
Export DIB in standard Windows DIB format. 9-16bpp grayscale images cannot be exported in this format. CMYK images will be exported as 24bpp RGB.
IG_DIB_EXPORT_FORMAT_IG_LEGACY
Export DIB in ImageGear legacy format. In this format, DIB compression can be IG_BI_GRAYSCALE for 9-16bpp grayscale, in which case the DIB bit depth will be the actual bit depth from 9 to 16. Also, DIB compression can be IG_BI_CMYK for CMYK images, in which case the DIB bit depth will be 32.


enumIGDocumentType

Group: Enumeration

Description:

Identifies the type of ImageGear document.

Values:

IG_DOC_RASTER
Raster document
IG_DOC_PDF
PDF document


enumIGErrorCodes

Group: Enumeration

Description:

Identifies the different ImageGear error/warning codes.

Values:

Please see the Appendix: Function Error Return Codes for the all ImageGear error/warning codes.


enumIGErrorHandlingFlags

Group: Enumeration

Description:

Identifies the different error handling flags. All flags can be combined.

Values:

IG_ERR_NO_ACTION
Take no special action when error or warning occurs.
IG_ERR_OLE_ERROR
Set OLE Error when error occurs.
IG_ERR_EVENT_ERROR
Fire IGError event when an error occurs.
IG_ERR_EVENT_WARNING
Fire IGError event when a warning occurs.


enumIGExtraChannelColorType

Group: Enumeration

Description:

This enumeration specifies extra channel's color type.

Declaration:

enum enumIGExtraChannelColorType
{
    IG_EXTRA_CHANNEL_COLOR_TYPE_Unknown,
    IG_EXTRA_CHANNEL_COLOR_TYPE_Colorspace,
    IG_EXTRA_CHANNEL_COLOR_TYPE_Vendor
};

Values:

IG_EXTRA_CHANNEL_COLOR_TYPE_Unknown
Unknown color type.
IG_EXTRA_CHANNEL_COLOR_TYPE_Colorspace
Regular color specified by color space and color value.
IG_EXTRA_CHANNEL_COLOR_TYPE_Vendor
Color specified by vendor and color IDs.


enumIGExtraChannelType

Group: Enumeration

Description:

This enumeration specifies types of extra channels (Unknown, Mask or Spot).

Declaration:

enum enumIGExtraChannelType
{
    IG_EXTRA_CHANNEL_TYPE_Unknown,
    IG_EXTRA_CHANNEL_TYPE_Mask,
    IG_EXTRA_CHANNEL_TYPE_Spot
};

Values:

IG_EXTRA_CHANNEL_TYPE_Unknown
Unknown extra channel.
IG_EXTRA_CHANNEL_TYPE_Mask
Alpha mask channel.
IG_EXTRA_CHANNEL_TYPE_Spot
Spot color channel.


enumIGLayerType

Group: Enumeration

Description:

This enumeration specifies the currently supported types of layers.

Values:

IG_LAYER_TYPE_UNKNOWN
Unknown (unrecognized by ImageGear) layer type.
IG_LAYER_TYPE_IMAGE
Image layer type.


enumIGLicenseType

Group: Enumeration

Description:

Identifies the different types of product license - evaluation, development, or deployment.

Values:

IG_VERSION_EVAL
Evaluation license
IG_VERSION_DEVELOPMENT_ONLY
Development license
IG_VERSION_DEPLOYMENT
Deployment license


enumIGMaskChannelModes

Group: Enumeration

Description:

This enumeration specifies mode of Mask channel (selected area or masked area).

Declaration:

enum enumIGMaskChannelModes
{
    IG_MASK_CHANNEL_MODES_ColorIndicatesSelectedArea,
    IG_MASK_CHANNEL_MODES_ColorIndicatesMaskedArea
};

Values:

IG_MASK_CHANNEL_MODES_ColorIndicatesSelectedArea
Mask channel indicates selected area.
IG_MASK_CHANNEL_MODES_ColorIndicatesMaskedArea
Mask channel indicates masked area.


enumIGMergeModes

Group: Enumeration

Description:

Identifies the type of arithmetic operation (merge method) that is performed on the values of all intersecting pixels resulting from the merge.

For example, if you set IG_ARITH_ADD merge method, the resulting pixel values (of those pixels that intersected from the two images) equal the sum of the value of the pixel in the original image and the value of pixel in the image being merged.

Values:

IG_ARITH_ADD
Img1 = Img1 + Img2
IG_ARITH_ADD_SIGN_CENTERED
Img1 = Img1+ SC_Img2
IG_ARITH_AND
Img1 = Img1 & Img2
IG_ARITH_DIVIDE
Img1 = Img1 / Img2
IG_ARITH_MULTI
Img1 = Img1 * Img2
IG_ARITH_NOT
Img1 = ~Img1
IG_ARITH_OR
Img1 = Img1 | Img2
IG_ARITH_OVER
Img1 = Img2
IG_ARITH_SUB
Img1 = Img1 - Img2
IG_ARITH_XOR
Img1 = Img1 ^ Img2


enumIGOrientationValues

Group: Enumeration

Description:

Identifies Orientation values.

Values:

IG_DSPL_ORIENT_TOP_LEFT
Top Left orientation
IG_DSPL_ORIENT_LEFT_TOP
Left Top orientation
IG_DSPL_ORIENT_RIGHT_TOP
Right Top orientation
IG_DSPL_ORIENT_TOP_RIGHT
Top Right orientation
IG_DSPL_ORIENT_BOTTOM_RIGHT
Bottom Right orientation
IG_DSPL_ORIENT_RIGHT_BOTTOM
Right Bottom orientation
IG_DSPL_ORIENT_LEFT_BOTTOM
Left Bottom orientation
IG_DSPL_ORIENT_BOTTOM_LEFT
Bottom Left orientation


enumIGPaletteFormats

Group: Enumeration

Description:

Identifies the different formats used for storing image palette in the external file.

Values:

IG_PALETTE_FORMAT_INVALID
Returned when a file could not be read
IG_PALETTE_FORMAT_RAW_BGR
This is the raw DIB format BGR
IG_PALETTE_FORMAT_RAW_BGRQ
This is the raw DIB format BGRQ
IG_PALETTE_FORMAT_RAW_RGB
This is the raw DIB format RGB
IG_PALETTE_FORMAT_RAW_RGBQ
This is the raw DIB format RGBQ
IG_PALETTE_FORMAT_TEXT
ASCII text file
IG_PALETTE_FORMAT_HALO_CUT
Dr Halo .PAL file for use with a CUT file format


enumIGPixelAccessType

Group: Enumeration

Description:

Identifies the different methods of accessing pixel values.

Values:

IG_PIX_ACC_PACKED
Return data in the packed form
IG_PIX_ACC_UNPACKED
Return data in the unpacked form


enumIGPixelArrayType

Group: Enumeration

Description:

Identifies the different types of pixel array.

Values:

IG_PIX_ARR_RGB
Array of RGB values
IG_PIX_ARR_CMYK
Array of CMYK values
IG_PIX_ARR_INDEX_UNPACKED
Array of unpacked indexed pixels (1 pixel occupies 1 byte)
IG_PIX_ARR_GRAY
Array of 9-16 bit grayscale values (1 pixel occupies 2 bytes)


enumIGPixelType

Group: Enumeration

Description:

Identifies the different pixel types.

Values:

IG_PIXEL_RGB
RGB pixel
IG_PIXEL_CMYK
CMYK pixel
IG_PIXEL_GRAY
9-16 bit grayscale pixel
IG_PIXEL_INDEX
indexed pixel


enumIGResolutionUnits

Group: Enumeration

Description:

Identifies the different resolution units.

Values:

IG_RESOLUTION_NO_ABS
No absolute units
IG_RESOLUTION_METERS
Pels (Pixels) Per Meter
IG_RESOLUTION_INCHES
Dots (Pixels) Per Inch
IG_RESOLUTION_CENTIMETERS
Pixles Per Centimeter
IG_RESOLUTION_10_INCHES
Dots (Pixels) Per 10 Inches
IG_RESOLUTION_10_CENTIMETERS
Pixles Per 10 Centimeter


enumIGROIType

Group: Enumeration

Description:

Identifies the different ROI (region of interest) types.

Values:

IG_ROI_ALL_IMAGE
Entire image
IG_ROI_RECT
Rectangular area
IG_ROI_NRA
Non-rectangular area


enumIGShapeType

Group: Enumeration

Description:

Identifies the different shape types.

Values:

IG_SHAPE_RECTANGLE
Rectangle (IGRectangle)
IG_SHAPE_ELLIPSE
Ellipse (IGEllipse)
IG_SHAPE_POLYGON
Polygon (IGPolygon)


enumIGSpotColorVendorIDs

Description:

This enumeration specifies predefined Vendor IDs.

Declaration:

enum enumIGSpotColorVendorIDs
{
    IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Pantone = 3,
    IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Focoltone = 4,
IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Trumatch = 5,
    IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Toyo = 6,
    IG_SPOT_COLOR_VENDOR_SYNONYM_ID_HKS = 10,
    IG_SPOT_COLOR_VENDOR_SYNONYM_ID_DIC = 11,
    IG_SPOT_COLOR_VENDOR_ID_ANPA = 3000,
    IG_SPOT_COLOR_VENDOR_ID_Focoltone = 3001,
    IG_SPOT_COLOR_VENDOR_ID_PantoneCoated = 3002,
    IG_SPOT_COLOR_VENDOR_ID_PantoneProcess = 3003,
    IG_SPOT_COLOR_VENDOR_ID_PantoneProSlim = 3004,
    IG_SPOT_COLOR_VENDOR_ID_PantoneUncoated = 3005,
    IG_SPOT_COLOR_VENDOR_ID_Toyo = 3006,
    IG_SPOT_COLOR_VENDOR_ID_Trumatch = 3007,
    IG_SPOT_COLOR_VENDOR_ID_HKSE = 3008,
    IG_SPOT_COLOR_VENDOR_ID_HKSK = 3009,
    IG_SPOT_COLOR_VENDOR_ID_HKSN = 3010,
    IG_SPOT_COLOR_VENDOR_ID_HKSZ = 3011,
    IG_SPOT_COLOR_VENDOR_ID_DIC = 3012,
    IG_SPOT_COLOR_VENDOR_ID_PantoneMatte = 3013,
    IG_SPOT_COLOR_VENDOR_ID_PantonePastelCoated = 3020,
    IG_SPOT_COLOR_VENDOR_ID_PantonePastelUncoated = 3021,
    IG_SPOT_COLOR_VENDOR_ID_PantoneMetallic = 3022,
    IG_SPOT_COLOR_VENDOR_ID_HKSEProcess = 3024,
    IG_SPOT_COLOR_VENDOR_ID_HKSKProcess = 3025,
    IG_SPOT_COLOR_VENDOR_ID_HKSNProcess = 3026,
    IG_SPOT_COLOR_VENDOR_ID_HKSZProcess = 3027,
    IG_SPOT_COLOR_VENDOR_ID_PantoneProSlimEuro = 3028,
    IG_SPOT_COLOR_VENDOR_ID_PantoneProcessUncoated = 3029,
    IG_SPOT_COLOR_VENDOR_ID_UserColorBook = 3100
};

Values

IG_SPOT_COLOR_VENDOR_ID_ANPA
VendorID for ANPA
IG_SPOT_COLOR_VENDOR_ID_DIC
VendorID for DIC
IG_SPOT_COLOR_VENDOR_ID_Focoltone
VendorID for Focoltone
IG_SPOT_COLOR_VENDOR_ID_HKSE
VendorID for HKSE
IG_SPOT_COLOR_VENDOR_ID_HKSEProcess
VendorID for HKSEProcess
IG_SPOT_COLOR_VENDOR_ID_HKSK
VendorID for HKSK
IG_SPOT_COLOR_VENDOR_ID_HKSKProcess
VendorID for HKSKProcess
IG_SPOT_COLOR_VENDOR_ID_HKSN
VendorID for HKSN
IG_SPOT_COLOR_VENDOR_ID_HKSNProcess
VendorID for HKSNProcess
IG_SPOT_COLOR_VENDOR_ID_HKSZ
VendorID for HKSZ
IG_SPOT_COLOR_VENDOR_ID_HKSZProcess
VendorID for HKSZProcess
IG_SPOT_COLOR_VENDOR_ID_PantoneCoated
VendorID for PantoneCoated
IG_SPOT_COLOR_VENDOR_ID_PantoneMatte
VendorID for PantoneMatte
IG_SPOT_COLOR_VENDOR_ID_PantoneMetallic
VendorID for PantoneMetallic
IG_SPOT_COLOR_VENDOR_ID_PantonePastelCoated
VendorID for PantonePastelCoated
IG_SPOT_COLOR_VENDOR_ID_PantonePastelUncoated
VendorID for PantonePastelUncoated
IG_SPOT_COLOR_VENDOR_ID_PantoneProcess
VendorID for PantoneProcess
IG_SPOT_COLOR_VENDOR_ID_PantoneProcessUncoated
VendorID for PantoneProcessUncoated
IG_SPOT_COLOR_VENDOR_ID_PantoneProSlim
VendorID for PantoneProSlim
IG_SPOT_COLOR_VENDOR_ID_PantoneProSlimEuro
VendorID for PantoneProSlimEuro
IG_SPOT_COLOR_VENDOR_ID_PantoneUncoated
VendorID for PantoneUncoated
IG_SPOT_COLOR_VENDOR_ID_Toyo
VendorID for Toyo
IG_SPOT_COLOR_VENDOR_ID_Trumatch
VendorID for Trumatch
IG_SPOT_COLOR_VENDOR_ID_UserColorBook
VendorID for User ColorBook
IG_SPOT_COLOR_VENDOR_SYNONYM_ID_DIC
Synonym ID for DIC
IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Focoltone
Synonym ID for Focoltone
IG_SPOT_COLOR_VENDOR_SYNONYM_ID_HKS
Synonym ID for HKS
IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Pantone
Synonym ID for Pantone
IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Toyo
Synonym ID for Toyo
IG_SPOT_COLOR_VENDOR_SYNONYM_ID_Trumatch
Synonym ID for Trumatch


ImageGear Dialogs Component API Reference

ImageGear Dialogs Component API Reference

ImageGear Dialogs component provides common dialog boxes.

ImageGear Dialogs component exposes the following objects:

IGDlgsCtl
ImageGear Dialogs Control.
IGFileDlg
File open/save dialog.
IGFileDlgDocumentLoadOptions
Options for the file open dialog in the document mode.
IGFileDlgDocumentSaveOptions
Options for the file save dialog in the document mode.
IGFileDlgPageLoadOptions
Options for the file open dialog in the page mode.
IGFileDlgPageSaveOptions
Options for the file save dialog in the page mode.

The following interfaces that don't have corresponding objects are defined in ImageGear Dialogs component:

IIGFileDlgOptions
ImageGear File Dialog Options Interface.

The following enumerations are used in ImageGear Dialogs component:

enumIGFileDlgOptionsType
Types of the file dialog options.


IGDlgsCtl

Group: Control

Description:

The ImageGear Dialogs component, created explicitly by the application developer using IDE/language capabilities.

Interface:

IIGDlgsCtl extends IDispatch

Class Members:

GearCore
property
Member of GearDIALOGSLibCtl.IGDlgsCtl. Set this to your IGCoreCtl control before calling any of the IGDlgsCtl methods.
GearDisplay
property
Member of GearDIALOGSLibCtl.IGDlgsCtl. Set this to your IGDisplayCtl control before calling any of the IGDlgsCtl methods.
GearFormats
property
Member of GearDIALOGSLibCtl.IGDlgsCtl. Set this to your IGFormatsCtl control before calling any of the IGDlgsCtl methods.
CreateFileDlg
method
Member of GearDIALOGSLibCtl.IGDlgsCtl. Creates a new instance of IGFileDlg object.
CreateFileDlgOptions
method
Member of GearDIALOGSLibCtl.IGDlgsCtl. Creates a new instance of IIGFileDlgOptions interface.


CreateFileDlg

Group: Method

Description:

This method creates a new instance of IGFileDlg object.

Declaration:

CreateFileDlg () As IGFileDlg

Return value:

A new instance of IGFileDlg object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateFileDlgOptions

Group: Method

Description:

This method creates a new instance of IIGFileDlgOptions interface.

Declaration:

CreateFileDlgOptions (OptType As enumIGFileDlgOptionsType) As
IIGFileDlgOptions

Parameters:

OptType
Type of file dialog options.

Return value:

A new instance of IIGFileDlgOptions interface.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GearArtX

Group: Property

Description:

Set this to your IGArtXCtl control (if it is initialized) before calling any of the IGDlgsCtl methods.

Property Summary:

Data Type:
IIGComponent
Default Value:
NULL
Access:
Read/Write
Settings:
IIGComponent interface of an IGArtXCtl control
Bits Per Pixel:
N/A
Sample:
PDF


GearCore

Group: Property

Description:

Set this to your IGCoreCtl control before calling any of the IGDlgsCtl methods.

Property Summary:

Data Type:
IIGComponent
Default Value:
NULL
Access:
Read/Write
Settings:
IIGComponent interface of an IGCoreCtl control
Bits Per Pixel:
N/A
Sample:
Core


GearDisplay

Group: Property

Description:

Set this to your IGDisplayCtl control before calling any of the IGDlgsCtl methods.

Property Summary:

Data Type:
IIGComponent
Default Value:
NULL
Access:
Read/Write
Settings:
IIGComponent interface of an IGDisplayCtl control
Bits Per Pixel:
N/A
Sample:
Core


GearFormats

Group: Property

Description:

Set this to your IGFormatsCtl control before calling any of the IGDlgsCtl methods.

Property Summary:

Data Type:
IIGComponent
Default Value:
NULL
Access:
Read/Write
Settings:
IIGComponent interface of an IGFormatsCtl control
Bits Per Pixel:
N/A
Sample:
Core


IGFileDlg

Group: Object

Description:

This object implements file open/save dialog.

Interface:

IIGFileDlg extends IDispatch

Class Members:

ParentWindow
property
Handle to the owner window of the dialog box.
Show
method
Displays the file open/save dialog.


ParentWindow

Group: Property

Description:

This property specifies a handle to the window that owns the dialog box. This member can be any valid window handle, or it can be NULL, if the dialog box has no owner.

Property Summary:

Data Type:
Long
Default Value:
NULL
Access:
Read/Write
Settings:
A handle of a window.
Bits Per Pixel:
N/A
Sample:
Core


Show

Group: Method

Description:

This method displays the file open/save dialog.

Declaration:

Show(fileDlgOpt As IIGFileDlgOptions) As Boolean

Parameters:

fileDlgOpt
One of the IIGFileDlgOptions objects. Specifies the type of the dialog and stores the returned values.

Return value:

If the user specifies a file name and clicks the OK button, the return value is True.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGFileDlgDocumentLoadOptions

Group: Object

Description:

This object is used display file open dialog in the document mode.

Interface:

IIGFileDlgDocumentLoadOptions extends IIGFileDlgOptions

Class Members:

AutoDetect
property
Specifies whether the format of the selected file is determined by ImageGear or by the user.
FileName
property
Contains the path of the selected file.
Format
property
Contains the format of the selected file.
PageCount
property
Contains the number of pages of the selected file to be loaded.
Position
property
Contains the page number starting point within the destination document where the loaded pages are to be inserted.
StartPage
property
Contains the page number in the selected file starting with the pages are to be loaded.
Type
property
Contains the type of the object.


AutoDetect

Group: Property

Description:

This property specifies whether the format of the selected file is determined by ImageGear or by the user.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Core


FileName

Group: Property

Description:

This property contains the path of the selected file.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
Bits Per Pixel:
N/A
Sample:
Core


Format

Group: Property

Description:

This property contains the format name of the selected file.

Property Summary:

Data Type:
enumIGFormats
Default Value:
IG_FORMAT_UNKNOWN
Access:
Read/Write
Settings:
Any enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


PageCount

Group: Property

Description:

Contains the number of pages of the selected file to be loaded.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0... FilePageCount
Bits Per Pixel:
N/A
Sample:
Core


Position

Group: Property

Description:

Contains the page number starting point within the destination document where the loaded pages are to be inserted.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


StartPage

Group: Property

Description:

This property contains the page number in the selected file starting with the pages that are to be loaded.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0... FilePageCount - 1
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property contains the type of the object.

Property Summary:

Data Type:
enumIGFileDlgOptionsType
Default Value:
IG_FILEDLGOPTIONS_DOCLOADOBJ
Access:
Read only
Settings:
Any enumIGFileDlgOptionsType value
Bits Per Pixel:
N/A
Sample:
Core


IGFileDlgDocumentSaveOptions

Group: Object

Description:

This object is used display file save dialog in the document mode.

Interface:

IIGFileDlgDocumentSaveOptions extends IIGFileDlgOptions

Class Members:

Document
property
A reference to a document object.
FileName
property
Contains the path of the selected file.
Format
property
Contains the format to save in, and also the compression scheme if applicable.
PageCount
property
Contains the number of pages of the document to save.
Position
property
Contains the page number within the document starting with the pages are to be saved.
StartPage
property
Contains the page number starting point within the destination file where the saved pages are to be inserted.
Type
property
Contains the type of the object.


Document

Group: Property

Description:

This property contains a reference to a document object.

Property Summary:

Data Type:
IGDocument
Default Value:
NULL
Access:
Read/Write
Settings:
IGDocument value
Bits Per Pixel:
N/A
Sample:
Core


Format

Group: Property

Description:

This property contains the format extension to save in, and also the compression scheme if applicable.

Property Summary:

Data Type:
enumIGFormats
Default Value:
IG_SAVE_UNKNOWN
Access:
Read/Write
Settings:
Any enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


PageCount

Group: Property

Description:

This property contains the number of pages of the document to save.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0... IGDocument. PageCount
Bits Per Pixel:
N/A
Sample:
Core


Position

Group: Property

Description:

This property contains the page number within the document starting with the pages that are to be saved.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0... IGDocument. PageCount - 1
Bits Per Pixel:
N/A
Sample:
Core


StartPage

Group: Property

Description:

This property contains the page number starting point within the destination file where the saved pages that are to be inserted.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property contains the type of the object.

Property Summary:

Data Type:
enumIGFileDlgOptionsType
Default Value:
IG_FILEDLGOPTIONS_DOCSAVEOBJ
Access:
Read only
Settings:
Any enumIGFileDlgOptionsType value
Bits Per Pixel:
N/A
Sample:
Core


IGFileDlgPageLoadOptions

Group: Object

Description:

This object is used to display file open dialog in the page mode.

Interface:

IIGFileDlgPageLoadOptions extends IIGFileDlgOptions

Class Members:

AutoDetect
property
Specifies whether the format of the selected file is determined by ImageGear or by the user.
FileName
property
Contains the path of the selected file.
Format
property
Contains the format of the selected file.
PageNum
property
Contains the number of page of the selected file to load.
Type
property
Contains the type of the object.


Format

Group: Property

Description:

This property contains the format of the selected file.

Property Summary:

Data Type:
enumIGFormats
Default Value:
IG_FORMAT_UNKNOWN
Access:
Read/Write
Settings:
Any enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


PageNum

Group: Property

Description:

This property contains the number of page of the selected file to load.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0... IGDocument. PageCount - 1
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property contains the type of the object.

Property Summary:

Data Type:
enumIGFileDlgOptionsType
Default Value:
IG_FILEDLGOPTIONS_PAGELOADOBJ
Access:
Read only
Settings:
Any enumIGFileDlgOptionsType value
Bits Per Pixel:
N/A
Sample:
Core


IGFileDlgPageSaveOptions

Group: Object

Description:

This object is used display file open dialog in the document mode.

Interface:

IIGFileDlgPageSaveOptions extends IIGFileDlgOptions

Class Members:

FileName
property
Contains the path of the selected file.
Format
property
Contains the format to save in, and also the compression scheme if applicable.
Page
property
A reference to a page object.
PageNum
property
Contains the page number within the destination file where the saved page is to be inserted.
Type
property
Contains the type of the object.


Format

Group: Property

Description:

This property contains the format to save in, and also the compression scheme if applicable.

Property Summary:

Data Type:
enumIGFormats
Default Value:
IG_SAVE_UNKNOWN
Access:
Read/Write
Settings:
Any enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


Page

Group: Property

Description:

This property contains a reference to a page object.

Property Summary:

Data Type:
IGPage
Default Value:
NULL
Access:
Read/Write
Settings:
Any IGPage value
Bits Per Pixel:
N/A
Sample:
Core


PageNum

Group: Property

Description:

This property contains the page number within the destination file where the saved page is to be inserted.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0... IGDocument. PageCount - 1
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property contains the type of the object.

Property Summary:

Data Type:
enumIGFileDlgOptionsType
Default Value:
IG_FILEDLGOPTIONS_PAGESAVEOBJ
Access:
Read only
Settings:
Any enumIGFileDlgOptionsType value
Bits Per Pixel:
N/A
Sample:
Core


IIGFileDlgOptions

Group: Interface

Description:

This is the base interface for IGFileDlgDocumentLoadOptions, IGFileDlgDocumentSaveOptions, IGFileDlgPageLoadOptions, IGFileDlgPageSaveOptions objects.

Interface Members:

Type
property
Contains the type of the object.


Dialogs Component Enumerations

This section of the Manual provides an alphabetized reference of enumerations defined in ImageGear Dialogs component:

    • enumIGFileDlgOptionsType


enumIGFileDlgOptionsType

Group: Enumeration

Description:

This enumeration specifies types of the file dialog options.

Values:

IG_FILEDLGOPTIONS_DOCLOADOBJ
Options for the file open dialog in the document mode.
IG_FILEDLGOPTIONS_DOCSAVEOBJ
Options for the file save dialog in the document mode.
IG_FILEDLGOPTIONS_PAGELOADOBJ
Options for the file open dialog in the page mode.
IG_FILEDLGOPTIONS_PAGESAVEOBJ
Options for the file save dialog in the page mode.


ImageGear Display Component API Reference

ImageGear Display Component API Reference

ImageGear Display component provides access to IG display API and contains shared objects used for image drawing. ImageGear Display exposes the following objects:

IGClipboardInfo
This object provides information about clipboard content
IGDisplayAntiAlias
Represents image display aliasing settings
IGDisplayBackground
Represents image display backgound attributes
IGDisplayCtl
The main control that provides access for main display objects
IGDisplayDDB
IG representation of Windows DDB object (HBITMAP)
IGDisplayLayout
Represents image display layout settings
IGDisplayMapMode
Represents image display mapping mode
IGDisplayPageSettings
Stores complete set of image display settings
IGDisplayPalette
IG representation of Windows palette object (HPALETTE)
IGDisplayScrollInfo
Represents image scrolling settings
IGDisplayTransparency
Represents image display transparency attributes
IGDisplayZoomInfo
Represents image zoom settings
IGPageDisplay
Main object in display component. Provides access to display API and settings of associated IGPage object

The following enumerations are used in ImageGear Display component:

enumIGDisplayObjType
Identifies all types of creatable objects
enumIGDsplAliasModes
Identifies the different types of image aliasing.
enumIGDsplAlignModes
Identifies the different types of image display alignment modes, i.e. identifies how the displayed image is aligned relative to the device rectangle.
enumIGDsplAspectModes
Identifies the different types of image's display aspect ratio (i.e. width-to-height ratio).
enumIGDsplBackgroundModes
Identifies the different modes of image background drawing.
enumIGDsplContrastFlags
Identifies the different color components of RGB color.
enumIGDsplConvModes
Identifies the different types of coorinate converions
enumIGDsplDitheringModes
Identifies the different dithering types.
enumIGDsplFitModes
Identifies how an image fits to the device rectangle.
enumIGDsplMapModes
Identifies the different mapping modes. The mapping mode defines the unit of measure used to convert logical units to device units.
enumIGDsplPaletteModes
Identifies the different modes of palette handling.
enumIGDsplScrollBarModes
Identifies different types of scrollbars appearance mode
enumIGDsplScrollType
Identifies different types of scrollbars.
enumIGDsplTranspModes
Identifies the different transparency modes.
enumIGDsplZoomModes
Identifies how the image is zoomed in the horizontal and vertical directions.
enumIGOrientationModes
Identifies how the image is oriented before it is drawn on the output device.
enumIGWipeStyles
Identifies the different image transition effects.

Below is an alphabetized reference of ImageGear Display objects and interfaces and their API (properties, methods, and events).


IGClipboardInfo

Group: Object

Description:

This object represents information about the state of Windows clipboard.

Interface:

IIGClipboardInfo

Class Members:

BitDepth
property
Bit depth of image in clipboard
ImageHeight
property
Height of image in clipboard
ImageIsAvailable
property
Specify whether there is image in clipboard
ImageWidth
property
Width of image in clipboard
ROIType
property
Type of image ROI placed to clipboard


BitDepth

Group: Property

Description:

This property specifies the bit depth of image in clipboard. If there is no image this filed is 0.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any supported bit depth
Bits Per Pixel:
N/A
Sample:
Display


ImageHeight

Group: Property

Description:

This property specifies the height of image in clipboard. If there is no image this filed is 0.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any non-negative
Bits Per Pixel:
N/A
Sample:
Display


ImageIsAvailable

Group: Property

Description:

This property specifies the availability of image. If set to true then other fields contains image parameters. Otherwise all fileds of the objects sets to 0.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


ImageWidth

Group: Property

Description:

This property specifies the width of image in clipboard. If there is no image this filed is 0.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any non-negative
Bits Per Pixel:
N/A
Sample:
Display


ROIType

Group: Property

Description:

This property specifies the type of image ROI in clipboard. If there is no image this filed is IG_ROI_ALL_IMAGE.

Property Summary:

Data Type:
enumIGROIType
Default Value:
N/A
Access:
Read only
Settings:
See enumIGROIType constants
Bits Per Pixel:
N/A
Sample:
Display


IGDisplayAntiAlias

Group: Object

Description:

This object provides access to image display antialias attributes. It is neither created directly but rather is accessed via AntiAliasing property of IGPageDisplay object.

Interface:

IIGDisplayAntiAlias

Class Members:

ColorQuality
property
Specifies quality of color scale-down interpolation (anti-aliasing).
Method
property
Specifies the image aliasing method to use.
Threshold
property
Provides access to image aliasing threshold attribute


ColorQuality

Group: Property

Description:

Specifies quality of color scale-down interpolation (anti-aliasing). Valid values are from 0 to 100 and specify the percent of image pixels taken into account to produce one display pixel. Zero value means automatic quality choice according with image resolution and display settings.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0..100
Bits Per Pixel:
All
Sample:
Display


Method

Group: Property

Description:

This property specifies the image aliasing method to use. This mode is applicable only if a 1-bit per pixel image is to be drawn, and if the destination image has a lower resolution than the original one.

Property Summary:

Data Type:
enumIGDsplAliasModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumIGDsplAliasModes constants
Bits Per Pixel:
1
Sample:
Display


Threshold

Group: Property

Description:

This property provides access to image aliasing threshold attribute. A threshold integer value from 0 to 100. Its meaning depends on the Method value:

  • If Method is set to IG_DSPL_ANTIALIAS_SCALE_TO_GRAY, Threshold determines the number of black and white pixels in the destination gray pixel value. A value of 100 directs ImageGear to take 100% of white pixels. A value of 0 directs ImageGear to take 100% of black pixels. The default value, which is 50, directs ImageGear to take 50% white and 50% black pixels.
  • If Method is set to IG_DSPL_ANTIALIAS_PRESERVE_BLACK, Threshold determines the number of black pixels to preserve. A value of 100 means that 100% of the black pixels are preserved. The default value is 50.
  • If Method is set to IG_DSPL_ANTIALIAS_PRESERVE_WHITE, Threshold determines the number of white pixels to preserve. A value of 100 means that 100% of white pixels are preserved. The default values is 50.

Property Summary:

Data Type:
long
Default Value:
50
Access:
Read/Write
Settings:
0-100
Bits Per Pixel:
1
Sample:
Display


IGDisplayBackground

Group: Object

Description:

This object provides access to image display background attributes. It is neither created directly but rather is accessed via Background property of IGPageDisplay object.

Interface:

IIGDisplayBackground

Class Members:

Color
property
Color of image background
Mode
property
Mode of image background drawing
GetBrushCopy
method
Returns new instance of IGPage object with background brush image
UpdateBrushFrom
method
Set new background brush image


Color

Group: Property

Description:

This property provides access to background color. It returns reference to the internal data member of IGDisplayBackground object.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


Mode

Group: Property

Description:

This property allows to specify background drawing mode

Property Summary:

Data Type:
enumBackgroundModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumBackgroundModes constants
Bits Per Pixel:
N/A
Sample:
Display


GetBrushCopy

Group: Method

Description:

This method creates new instance of IGPage object and assign background image to it. If there is no background image associated with owner of this IGDisplayBackground then IGPage object created is empty.

Declaration:

GetBrushCopy() As IGPage

Return value:

New instance of IGPage object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateBrushFrom

Group: Method

Description:

This method set background brush image. It creates copy of parameter passed. If pBrush parameter is empty IGPage object this method resets background image to nothing.

Declaration:

UpdateBrushFrom(pBrush As IGPage)

Parameters:

pBrush
IGPage object with image to set as background

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGDisplayCtl

Group: Control

Description:

The Display ImageGear component. The instance of IGDisplayCtl should be either added to the form during design time, or created dynamically during run time. This object has no visible representation on screen and provides access to several display API methods and other objects.

Interface:

IGDisplayCtl extends IIGDisplay

Interface:

IIGDisplay extends IIGComponent

Class Members:

ComponentInfo
property
Provides access to the IGComponentInfo object for IGDisplayCtl. The IGComponentInfo object identifies the particular version of IGDisplayCtl installed in the computer.
ComponentInterface
property
Provides access to the IIGComponent interface for IGDisplayCtl. Used in IGCoreCtl . AssociateComponent call.
CreateObject
method
Creates new instance of specified object
CreatePageDisplay
method
Creates new instance of IGPageDisplay object
DrawDDB
method
Draws DDB on specified device context
DrawWipe
method
Changes the one image in window to another with one of predefined transition effect.
GetClipboardInfo
method
Creates new instance of IGClipboardInfo object with inforntation of clipboard content


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGDisplayCtl. The IGComponentInfo object identifies the particular version of IGDisplayCtl installed in the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGDisplayCtl. Used in IGCoreCtl . AssociateComponent call.

Property Summary:

Data Type:
IIGComponent
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


CreateObject

Group: Method

Description:

This method creates a new instance of one of display objects. All the creatable objects contained inside Display implement IGObject interface.

Declaration:

CreateObject (ObjType As enumDisplayObjType) As IGObject

Parameters:

ObjType
The type of object to be created, see enumIGDisplayObjType enum description

Return value:

A new object of the requested type.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreatePageDisplay

Group: Method

Description:

This method creates new instance of IGPageDisplay object and associate it with IGPage specified. Reference to IGPage is kept inside of the object created.

Declaration:

CreatePageDisplay(page as IGPage) as IGPageDisplay

Parameters:

page
Specifies the IGPage object to associate new IGPageDisplay with

Return value:

A new instance of the IGPageDisplay object.

Bits Per Pixel: N/A

Sample: Core, Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DrawDDB

Group: Method

Description:

This method draws DDB image on the HDC specified.

Declaration:

DrawDDB(hWnd As Long, hDC As Long, hBitmap As Long, hPalette As
Long, XPos As Long, YPos As Long)

Parameters:

hWnd
Handle of window to be used. Can be 0 if not available
hDC
Device context to draw the image
hBitmap
Device dependent bitmap in OS-dependent format that should be painted
hPalette
Handle of palette which should be realized before drawing
XPos
Horizontal position of left top corner of bitmap on the destination device
YPos
Vertical position of left top corner of bitmap on the destination device

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DrawWipe

Group: Method

Description:

This method changes the image in window hWnd from the PageBefore image to the PageAfter image. The transition is accomplished according to the Style style. Before you call this function, the first image should already be in the window. This function will set the wipe style, and then cause re-painting of hWnd window (generate a WM_PAINT message). The transition to the new image will be performed during this message handling.

Declaration:

DrawWipe(hWnd As Long, PageBefore As IGPageDisplay, PageAfter As
IGPageDisplay, Style As enumWipeStyles, Granularity As Long,
Time As Long)

Parameters:

hWnd
Window handle
PageBefore
image in the window before the wipe
PageAfter
image to be in window after the wipe
Style
Transition style, such as IG_WIPE_LEFTTORIGHT. See description of enumIGWipeStyles enum
Granularity
Size of each square region, in pixels. A typical value is 5
Time
The time, in milliseconds, between wipes

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetClipboardInfo

Group: Method

Description:

This method creates new instance of IGClipboardInfo with information on current clipboard state.

Declaration:

GetClipboardInfo() As IGClipboardInfo

Return value:

New instance of IGClipboardInfo object.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGDisplayDDB

Group: Object

Description:

This object represents DDB image. Refer to Windows SDK documentation for more information of Device Dependent Bitmaps.

Interface:

IIGDisplayDDB

Class Members:

Bitmap
property
HBITMAP GDI object handle
Palette
property
HPALETTE GDI object handle


Bitmap

Group: Property

Description:

This property is a handle of DDB GDI object.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any valid HBITMAP handle or 0
Bits Per Pixel:
N/A
Sample:
Display


Palette

Group: Property

Description:

This property is a handle of palette GDI object.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any valid HPALETTE handle or 0
Bits Per Pixel:
N/A
Sample:
Display


IGDisplayLayout

Group: Object

Description:

This object provides access to display layout attributes of image. It is neither created directly but rather is accessed via Layout property of IGPageDisplay object.

Interface:

IIGDisplayLayout

Class Members:

Alignment
property
Specifies image display alignment mode
AspectRatioMode
property
Specifies image aspect ratio mode
AspectRatioValue
property
Specifies image aspect ratio value
ClipRect
property
Returns a reference for the Clipping Rectangle (IGRectangle) member of the object.
DeviceRect
property
Returns a reference for the Device Rectangle (IGRectangle) member of the object.
FitMode
property
Specifies image display fit mode
ImageRect
property
Returns a reference for the Image Rectangle (IGRectangle) member of the object.
UseImageResolution
property
Specifies whether or not image resolution should be used during image displaying


Alignment

Group: Property

Description:

This property provides access to image display alignment mode attribute.

Property Summary:

Data Type:
enumIGDsplAlignModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumIGDsplAlignModes constants
Bits Per Pixel:
N/A
Sample:
Display


AspectRatioMode

Group: Property

Description:

This property provides access to image display AspectRatio mode attribute

Property Summary:

Data Type:
enumIGDsplAspectModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumIGDsplAspectModes constants
Bits Per Pixel:
N/A
Sample:
Display


AspectRatioValue

Group: Property

Description:

This property provides access to image display Aspect Ratio value attribute.

Property Summary:

Data Type:
Double
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


ClipRect

Group: Property

This property provides access to the IGRectangle object contained inside of the IGDisplayLayout object. Represents Clipping Rectangle image attribute (see the section Displaying Images)

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


DeviceRect

Group: Property

This property provides access to the IGRectangle object contained inside of the IGDisplayLayout object. Represents Device Rectangle image attribute (see the section Displaying Images).

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


FitMode

Group: Property

Description:

This property provides access to image display fit mode attribute.

Property Summary:

Data Type:
enumIGDsplFitModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumIGDsplFitModes constants
Bits Per Pixel:
N/A
Sample:
Display


ImageRect

Group: Property

Description:

This property provides access to the IGRectangle object contained inside of the IGDisplayLayout object. Represents Image Rectangle image attribute (see the section Displaying Images)

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


UseImageResolution

Group: Property

Description:

This property specifies whether or not to use the image resolution for layout calculations.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Display


IGDisplayMapMode

Group: Object

Description:

This object provides access to image display mapmode attributes. It is neither created directly but rather is accessed via MapMode property of IGPageDisplay object. These options are device-dependent. For Windows platforms, the value of MapMode can be anything accepted by the GDI's functions GetMapMode/SetMapMode. The Viewport and Window contain values that are the same as the GDI's SetViewportOrgEx/SetViewportExtEx and SetWindowOrgEx/SetWindowExtEx options.

Interface:

IIGDisplayMapMode

Class Members:

Mode
property
Mapping mode to use
ViewPort
property
Viewport rectangle
Window
property
Window rectangle


Mode

Group: Property

Description:

This property provide access to maping mode that will be used by ImageGear display code for this image drawing.

Property Summary:

Data Type:
enumIGDsplMapModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumIGDsplMapModes constants
Bits Per Pixel:
N/A
Sample:
Display


ViewPort

Group: Property

Description:

This property provides access to Viewport rectangle attribute. It returns reference to the internal data member of IGDisplayMapMode.

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


Window

Group: Property

Description:

This property provides access to Window rectangle attribute. It returns reference to the internal data member of IGDisplayMapMode.

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


IGDisplayPageSettings

Group: Object

Description:

This object stores the complete set of image display settings and can be used to save and restore display attributes or to copy display parameters from one IGPageDisplay object to another.

Interface:

IIGDisplayPageSettings

Class Members:

This object has no members.


IGDisplayPalette

Group: Object

Description:

This object is used to aceess image display palette settings.

Interface:

IIGDisplayPalette

Class Members:

Mode
property
Specifies how to use the Palette option
Palette
property
HPALETTE GDI object handle


Mode

Group: Property

Description:

This property specifies how to use the Palette option when the destination device does support palette operations. Possible values are:

  • IG_DSPL_PALETTE_HIGH - Uses the palette in high priority mode. This means that the operating system palette manager will try to best map colors of Palette to the system palette.
  • IG_DSPL_PALETTE_LOW - Uses the palette in low priority mode. In this mode the palette manager will try to best preserve current view of the destination while drawing the new image on it.
  • IG_DSPL_PALETTE_DISABLE - Directs ImageGear not to implement the device palette in the destination device while drawing the image.

Property Summary:

Data Type:
enumPaletteModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumPaletteModes constants
Bits Per Pixel:
N/A
Sample:
Display


Palette

Group: Property

Description:

This property is a handle of palette GDI object.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Any string
Bits Per Pixel:
N/A
Sample:
Core


IGDisplayScrollInfo

Group: Object

Description:

This object provides information about display image scrolling and visibility of scrollbars.

Interface:

IIGDisplayScrollInfo

Class Members:

H_Line
property
Size of horizontal scrolling step
H_Max
property
Maximum of horizontal scroll range
H_Min
property
Minimum of horizontal scroll range
H_Mode
property
Visibility status of horizontal scrollbar
H_Page
property
Size of horizontal scroll page
H_Pos
property
Horizontal scrolling position
V_Line
property
Size of vertical scrolling step
V_Max
property
Maximum of vertical scroll range
V_Min
property
Minimum of vertical scroll range
V_Mode
property
Visibility status of vertical scrollbar
V_Page
property
Size of vertical scroll page
V_Pos
property
Vertical scrolling position


H_Line

Group: Property

Description:

This property specifies the increment of horizontal scrolling when arrow on scrollbar is pressed.

Default value (0) causes 1-pixel increment.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
N/A


H_Max

Group: Property

Description:

This property specifies maximal horizontal scrolling position.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


H_Min

Group: Property

Description:

This property specifies minimal horizontal scrolling position.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


H_Mode

Group: Property

Description:

This property specifies visibility status of horizontal scrollbar.

Property Summary:

Data Type:
enumIGDsplScrollBarModes
Default Value:
IG_DSPL_SB_AUTO
Access:
Read/Write
Settings:
See enumIGDsplScrollBarModes constants
Bits Per Pixel:
N/A
Sample:
Display


H_Page

Group: Property

Description:

This property specifies the horizontal page size. A scroll bar uses this value to determine the appropriate size of the proportional scroll box. See also description of SCROLLINFO structure in Windows SDK.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


H_Pos

Group: Property

Description:

This property specifies current image horizontal scrolling position

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any value within range [H_Min, H_Max]
Bits Per Pixel:
N/A
Sample:
Display


V_Line

Group: Property

Description:

This property specifies the increment of vertical scrolling when arrow on scrollbar is pressed.

Default value (0) causes 1-pixel increment.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
N/A


V_Max

Group: Property

Description:

This property specifies maximal vertical scrolling position.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


V_Min

Group: Property

Description:

This property specifies minimal vertical scrolling position.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


V_Mode

Group: Property

Description:

This property specifies visibility status of vertical scrollbar

Property Summary:

Data Type:
enumIGDsplScrollBarModes
Default Value:
IG_DSPL_SB_AUTO
Access:
Read/Write
Settings:
See enumIGDsplScrollBarModes constants
Bits Per Pixel:
N/A
Sample:
Display


V_Page

Group: Property

Description:

This property specifies the vertical page size. A scroll bar uses this value to determine the appropriate size of the proportional scroll box. See also description of SCROLLINFO structure in Windows SDK.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


V_Pos

Group: Property

Description:

This property specifies current image vertical scrolling position.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any value within range [V_Min, V_Max]
Bits Per Pixel:
N/A
Sample:
Display


IGDisplayTransparency

Group: Object

Description:

This object provides access to image display transparency attributes. It is neither created directly but rather is accessed via Transparency property of IGPageDisplay object. ImageGear display functionality supports transparency by color and by mask. Transparency by color means that it is possible to draw images with a specified color being transparent. Transparency by mask provides a one-bit per pixel image and uses it as the transparent mask.

Interface:

IIGDisplayTransparency

Class Members:

Color
property
Color that will be set transparent
Mode
property
Transparency mode to be used
Point
property
Specifies point on image where to apply mask image to
Rectangle
property
Select rectangle area of transparency mask
GetMaskCopy
method
Return copy of transparency mask image
UpdateMaskFrom
method
Sets new transparency mask image


Color

Group: Property

Description:

This property provides access to the transparency color attribute of image. It is used if the

IG_DSPL_TRANSPARENCY_COLOR flag is set in transparency mask as described above. If the transparent color is enabled, then all the pixels in the image that have values equal to TranspColor are drawn as transparen. Value returned is reference to internal data member of IGDisplayTransparency object.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


Mode

Group: Property

Description:

This property sets the transparency flags.

If its value is IG_DSPL_TRANSPARENCY_NONE, then transparency is disabled.

The following flags enable transparency-related features:

  • IG_DSPL_TRANSPARENCY_COLOR - If this flag is set, the transparency color is enabled and the color's value assigned to the Color option is transparent while drawing the image.
  • IG_DSPL_TRANSPARENCY_MASK - If this flag is set, the transparency mask is enabled and the transparency mask option is used as the transparent bitmap.
  • IG_DSPL_TRANSPMASK_STRETCH_TO_IMAGE - This flag is used when the transparency mask is enabled. If this flag is set, the TranspMask image is resized and oriented along with the image being displayed. If during the display operation, the image is scaled by factors DX and DY in the horizontal and vertical directions respectively, then the TranspMask image is scaled by the same factors. If this flag is not set, the transparency mask is not scaled. This flag is ignored unless the IG_DSPL_TRANSPMASK_LOCATE_TO_IMAGE flag is set.

Only one of the next three flags can be set at a time:

  • IG_DSPL_TRANSPMASK_LOCATE_TO_IMAGE - This flag is applicable if the transparency mask is enabled. If this flag is set then the mask is calculated in the image-dependent coordinate system. This means that the mask is oriented as the image is, and that the MaskLocation option is calculated from the original image's ImageRect. If this flag is not set, then the IG_DSPL_TRANSPMASK_STRETCH_TO_IMAGE flag is ignored.
  • IG_DSPL_TRANSPMASK_LOCATE_TO_CLIPRECT - This flag locates the transparent mask relative to the ClipRect so that the MaskLocation is calculated from the rectangle's top left point.
  • IG_DSPL_TRANSPMASK_LOCATE_ABSOLUTE - This flag locates the transparent mask on the output device so that the mask's top left point has the coordinates specified in the MaskLocation option.

Property Summary:

Data Type:
enumTranspOptions
Default Value:
IG_DSPL_TRANSPARENCY_NONE
Access:
Read/Write
Settings:
See enumTranspOptions constants
Bits Per Pixel:
N/A
Sample:
Display


Point

Group: Property

Description:

This property This option specifies how the transparency mask is located relative to either the image or the device, depending upon how the flag is set in Mode.

Property Summary:

Data Type:
IGPoint
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


Rectangle

Group: Property

Description:

This rectangle specifies the part of the transparency mask image that should be used as the transparency mask. It is an analog of the original image's ImageRect, but it applies to the TranspMask image. By default, this option is initialized with the empty rectangle, which means the complete transparency mask image will be used. Value returned is reference to internal data member of IGDisplayTransparency object.

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


GetMaskCopy

Group: Method

Description:

This method returns new instance of IGPage object and assign it to value of image transparency mask. See also UpdateMaskFrom method.

Declaration:

GetMaskCopy() As IGPage

Return value:

New instance of IGPage object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateMaskFrom

Group: Method

Description:

This method sets the transparency mask. It is used if the IG_DSPL_TRANSPARENCY_MASK flag is set as described in Mode above. This is a normal IGPage image. Its location on the screen depends upon the other flags described above, and the Point option.

Declaration:

UpdateMaskFrom(pMask As IGPage)

Parameters:

pMask
Copy of this IGPage will be used as image transparency mask

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGDisplayZoomInfo

Group: Object

Description:

This object designed to store image display zoom information. The instance of IGDisplayZoomInfo can be created with CreateObject method of IGDisplayCtl object. Current zoom information is returned by GetZoomInfo method.

Interface:

IIGDisplayZoomInfo

Class Members:

HZoom
property
Specifies actual horizontal zoom value
Mode
property
The value that specifies how an image is zoomed in both the horizontal and vertical directions.
VZoom
property
Specifies actual vertical zoom value


HZoom

Group: Property

Description:

This property specifies actual horizontal zoom value according to value of Mode property. Its meaning may be expressed as follows:

HZoom = DisplayedImageRect.width / ImageRect.width

Property Summary:

Data Type:
Double
Default Value:

1.0

Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


Mode

Group: Property

Description:

This property specifies how an image is zoomed in both the horizontal and vertical directions. Possible values for this option include bitwise ORs of any two flags such that one of them represents a horizontal zoom value and the other represents a vertical zoom value. Flags representing the horizontal zoom values include:

    • IG_DSPL_ZOOM_H_NOT_FIXED - This mode allows any horizontal zoom value.
    • IG_DSPL_ZOOM_H_FIXED - In this mode, the horizontal zoom factor is taken from HZoom (see below for details).
    • IG_DSPL_ZOOM_V_NOT_FIXED - This mode allows any vertical zoom value.
    • IG_DSPL_ZOOM_V_FIXED - In this mode, the horizontal zoom factor is taken from VZoom (see below for details).

The default value for this option is IG_DSPL_ZOOM_H_NOT_FIXED | IG_DSPL_ZOOM_V_NOT_FIXED.

NOTE: AspectRatioMode (see IGDisplayLayout object) takes precedence over the Mode of zoom. The vertical zoom values are ignored if AspectRatioMode is set to IG_DSPL_ASPECT_FIXED.

Property Summary:

Data Type:
enumIGDsplZoomModes
Default Value:
IG_DSPL_ZOOM_H_NOT_FIXED |IG_DSPL_ZOOM_V_NOT_FIXED
Access:
Read only
Settings:
Bitwise ORs combination of two flags of enumIGDsplZoomModes type, one for horizontal and one for vertical zoom.
Bits Per Pixel:
N/A
Sample:
Display


VZoom

Group: Property

Description:

This property specifies actual vertical zoom value according to value of Mode property. Its meaning may be expressed as follows:

VZoom = DisplayedImageRect.height / ImageRect.height

VZoom is not used if AspectRatioMode property (see IGDisplayLayout object) is set to IG_DSPL_ASPECT_FIXED.

Property Summary:

Data Type:
Double
Default Value:
1.0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


IGPageDisplay

Group: Object

Description:

This object encapsulates all display settings IGPage object and provides access to whole IG display API. Instance of this object is required for displaying image in order to use IG display API. Instance of IGPage object may have any number of different IGPageDisplay objects associated with it.

Interface:

IIGPageDisplay

Class Members:

AntiAliasing
property
Provides access to image antialiasing parameter
Background
property
Provides access to image background parameters
ChannelVisibility
property
Allows turning ON and OFF image channel visibility for display.
Dithering
property
Dithering method to use for image drawing
Foreground
property
Specifies image foreground color
ImageFillColor
property
Color used to fill the image area after clipboard cut operation
Layout
property
Provides access to image layout parameters
MapMode
property
Display map mode parameter
OffScreenDrawing
property
This property, when set to False, will cause ImageGear to perform all drawing operations into memory buffer with subsequent drawing the entire buffer to the screen.
OffScreenHeight
property
Determines the height of the bitmap used for buffered drawing
OffScreenWidth
property
Determines the width of the bitmap used for buffered drawing
Orientation
property
Image display orientation
Page
property
IGPage object for which the IGPageDisplay object is created.
Picture
property
Standard OLE property for import/export image data
PrintDirect
property
This property determines if ImageGear performs an image scaling.
ROP
property
Raster operation to use for image drawing
Transparency
property
Provides access to image transparency parameters
UpdateParamsOnDraw
property
This property when set to TRUE specifies that UpdateParams() method is called before any of IGPageDisplay draw methods is executed
AdjustContrast
method
Calculates color correction lookup tables
CalculateParams
method
Calculates DisplayedImageRect, which is the exact rectangle in which the image is to be scaled.
ConvertCoordinates
method
Translates coordinates between image (logical) coordinate system and device one
ConvertPointCoordinates
method
Translates an array of points from device coordinates to image coordinates or otherwise - from image coordinates into device coordinates.
CopyToClipboard
method
Copy image to clipboard
CutToClipboard
method
Cut the image to clipboard
Draw
method
Draw image on device context
ExportDDB
method
Converts IG DIB image to device dependent DDB image
FullUpdateRequired
method
Returns true if the entire display area needs to be updated whenever any part of the display area is invalidated.
GetActualPaletteHandle
method
Calculates device palette IG will use for image drawing
GetAdjustedDeviceRect
method
Calculates rectangle which is the exact area in which the image is to be scaled during displaying
GetGrayscaleLUTCopy
method
If a grayscale LUT is attached to an IGPageDisplay, returns its copy as a new IGLUT object.
GetLUTCopy
method
Returns the copy of image lookup tables for the color channels specified
GetPageDisplaySettings
method
Returns new instance of object with page display settings
GetPaletteData
method
This function returns the current palette settings
GetScrollAttrs
method
Returns scrolling atributes of image
GetZoomInfo
method
Returns information on image zoom state
GrayscaleLUTExists
method
Returns True if a grayscale LUT is attached to an IGPageDisplay, and False otherwise.
HandlePalette
method
Handler of Windows paletter messages
HandleResize
method
Handler of Windows window size change messages
HandleScroll
method
Handler of Windows scrolling messages
ImportDDB
method
Accepts device dependent DDB image and create IG DIB from it
IsValidImage
method
This method returns true if there is a valid image associated with the IGPageDisplay object.
PasteFromClipboard
method
Paste image from clipboard and replace existing content of IGPage
PasteMergeFromClipboard
method
Paste image from clipboard and merge it with existing content of IGPage
PrintImage
method
Specifies whether IG performs image scaling for printing or use the operating system's and driver's capabilities for this
PrintToPageWithLayout
method
Draws an image onto the printer device context within the specified rectangle
ScrollTo
method
Scroll image to the position specified
SetPageDisplaySettings
method
Applies settings passed to this page display object
UpdateGrayscaleLUTFrom
method
Creates or updates IGPageDisplay's grayscale LUT with values from the specified LUT.
UpdateLUTFrom
method
Update image loopup tables for the channels specified
UpdatePaletteFrom
method
This function updates image palette settings with new value
UpdateParams
method
This method is used to synchronize display parameters stored in IGPageDisplay object with ones represented by IGPageDisplay interface properties such as Antialiasing, Background, Dithering and so on.
UpdateScrollAttrsFrom
method
Set new state of image scrolling
UpdateZoomFrom
method
Set new state of image zoom
ZoomToRectangle
method
Zoom image to the rectabgle specified


AdjustContrast

Group: Method

Description:

This method takes contrast (dblContrast), brightness (dblBrightness) and gamma (dblGamma) parameters and calculates lookup tables accordingly and sets them into the corresponding options. All lookup tables specified in the nFlags parameter are initialized with the same value based on the dContrast, dBrightness, and dGamma values.

Declaration:

AdjustContrast(nFlags As enumGammaFlags, dContrast As Double,
dBrightness As Double, dGamma As Double)

Parameters:

nFlags
Specify which lookup tables to set. Possible values are 0 or a combination of these flags:
  • IG_DSPL_R_CHANNEL - if this flag is set then the RedLut option is to be set.
  • IG_DSPL_G_CHANNEL - if this flag is set then the GreenLut option is to be set.
  • IG_DSPL_B_CHANNEL - if this flag is set then the BlueLut option is to be set.
The constant IG_DSPL_ALL_CHANNELS is defined for convenience and can be used to set all three options.
dContrast
Contrast value to use in calculations. You can use anyvalue.
dBrightness
Brightness value to use in calculations. Must be in the range from -255.0 to +255.0
dGamma
Gamma value to use in calculations. Must be greater than 0.0; however the most useful values are in the range from 1.8 to 2.2.

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AntiAliasing

Group: Property

Description:

This property provide access to image aliasing settings. It returns reference to internal data member of IGPageDisplay object. Modification of retuned object affects the parent IGPageDisplay.

Property Summary:

Data Type:
IGDisplayAntiAlias
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


Background

Group: Property

Description:

This property provide access to image background settings. It returns reference to internal data member of IGPageDisplay object. Modification of retuned object affects the parent IGPageDisplay.

Property Summary:

Data Type:
IGDisplayBackground
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


CalculateParams

Group: Method

Description:

This method calculates DisplayedImageRect, which is the exact rectangle in which the image is to be scaled. All options for drawing the image are taken from the dwGrpID group. This function does not perform any drawing, whether hDC is NULL or not.

Declaration:

CalculateParams(hWnd As Long, hDC As Long, Rectangle As
IGRectangle)

Parameters:

hWnd
Handle of window where image is to be displayed. Can be NULL, but in this case some display options may be calculated incorrectly if they are not set explicitly.
hDC
Handle of the device context where image is to be drawn.
Rectangle
The rectangle object which is DisplayedImageRect. This rectangle is calculated no matter whether hDC=NULL or not. If NULL, then this parameter is ignored.

Return value:

None

Bits Per Pixel:

All

Sample:

None.


ChannelVisibility

Group: Property

Declaration:

Property ChannelVisibility(Index As Long) As Boolean

Description:

This property allows turning ON and OFF image channel visibility for display. True - image channel is visible, False - otherwise.

Parameters:

Index
Index of the image channel

Property Summary:

Data Type:
IGDisplayBackground
Default Value:
TRUE
Access:
Read/Write
Settings:
TRUE, FALSE
Bits Per Pixel:
N/A
Sample:
Display_View


ConvertCoordinates

Group: Method

Description:

This method translates coordinates between image logical coordinate system and device one. Translation direction is specified by Mode parameter. coordAr contains points with coordinates to translate. It can be IGPointArray or IGDoublePointArray.

Declaration:

ConvertCoordinates(lWnd As Long, lDC As Long, coordAr As
IGArray, Mode As enumIGDsplConvModes)

Parameters:

hWnd
Handle of window where image is displayed
hDC
Handle of device context where image is drawn
coordAr
Array with points coordinates, IGPointArray or IGDoublePointArray
Mode
Specify the translation direction, IG_DSPL_CONV_DEVICE_TO_IMAGE or IG_DSPL_CONV_IMAGE_TO_DEVICE

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ConvertPointCoordinates

Group: Method

Description:

This method translates an array of points from device coordinates to image coordinates, or otherwise - from image coordinates into device coordinates. It takes into account all display parameters including orientation and current scrolling position.

Declaration:

ConvertPointCoordinates(lWnd As Long, lDC As Long, lpPoint As
IGPoint, Mode As enumIGDsplConvModes)

Parameters:

lWnd
Handle of a window where the image is drawn.
lDC
Handle of the device context used for drawing. Can be NULL, but if it is necessary to perform a calculation for the printer device context, then a real value should be provided.
lpPoint
Pointer to an array of points that should be translated.
Mode
This value of enumIGDsplConvModes identifies the coordinate translation mode.

Return value:

N/A

Bits Per Pixel:

All

Sample:

None


CopyToClipboard

Group: Method

Description:

This function copies the specified portion of the image to the system clipboard. If pClipRect represents empty rectangle, the entire image will be copied.

Declaration:

CopyToClipboard(pClipRect As IGRectangle)

Parameters:

pClipRect
Specifies the rectangle that should be placed to clipboard

Return value: N/A

Bits Per Pixel: All

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CutToClipboard

Group: Method

Description:

This function "cuts away" a portion of an image. The cut portion is copied to the clipboard with its original pixel values, while in the displayed image, that rectangle is replaced by a pixel value specified by ImageFillColor color property.

Declaration:

CutToClipboard(pClipRect As IGRectangle)

Parameters:

pClipRect
Specifies the rectangle that should be placed to clipboard

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Dithering

Group: Property

Description:

This property specifies dithering mode used to draw image.

Property Summary:

Data Type:
enumIGDsplDitheringModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumIGDsplDitheringModes constants
Bits Per Pixel:
N/A
Sample:
Display


Draw

Group: Method

Description:

This method draws the image on the device contect specified.

Declaration:

Draw(hWnd As Long, hDC As Long)

Parameters:

hWnd
Windows window handle where to draw
hDC
Handle of Windows device context where to draw

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ExportDDB

Group: Method

Description:

This method creates a DDB of the image. It always uses all the display options of the image and assumes that the output device has a color format compatible with the hDC, but the client area of the output device is a rectangle of nWidth x nHeight size.

Declaration:

ExportDDB(hDC As Long, Width As Long, Height As Long) As
IGDisplayDDB

Parameters:

hDC
Handle of device context that the DDB should be compatible with. If 0 then the DDB will be compatible with the desktop's device context.
Width
Width of DDB to create
Height
Height of DDB to create

Return value:

A new instance of IGDisplayDDB object

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Foreground

Group: Property

Description:

This property provide access to image foreground. It returns reference to internal data member of IGPageDisplay object. Modification of retuned object affects the parent IGPageDisplay.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


FullUpdateRequired

Group: Method

Description:

This method returns true if the entire display area needs to be updated whenever any part of the display area is invalidated. This is true in some limited cases involving vector data display.

Applications do not typically need to concern themselves with whether or not a full update is necessary, since this detail is handled internally by the ImageGear display engine.

Declaration:

FullUpdateRequired() As Boolean

Return value:

True, if update is required, False - no update is required.

Bits Per Pixel:

N/A

Sample:

None


GetActualPaletteHandle

Group: Method

Description:

This function calculates all the display parameters, the way Draw method does, and produces the same palette that Draw method realizes before drawing onto hDC. It returns device palette if it is not set with a custom value.

Declaration:

GetActualPaletteHandle(hWnd As Long, hDC As Long) As Long

Parameters:

hWnd
Handle of window where image is displayed and where scrolling is performed
hDC
Handle of device context where image is drawn

Return value:

Handle of HPALETTE created.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetAdjustedDeviceRect

Group: Method

Description:

This method calculates rectangle which is the exact area in which the image is to be scaled during displaying. All options for drawing the image are taken from the current state of display parameters. This function does not perform any drawing, whether hDC is 0 or not.

Declaration:

GetAdjustedDeviceRect(hWnd As Long, hDC As Long) As IGRectangle

Parameters:

hWnd
Windows window handle whose attributes are used for calcualtion
hDC
Windows device context handle whose attributes are used for calcualtion

Return value:

A new instance of IGRectangle object.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetLUTCopy

Group: Method

Description:

This method retuns the copy of image lookup tables for the color channel specified.

Declaration:

GetLUTCopy(colorChannel As enumColorComp) As IGPixelArray

Parameters:

colorChannel
Specify the color components whose LUT should be returned. It can be ORed combination of IG_COLOR_COMP_R, IG_COLOR_COMP_G, IG_COLOR_COMP_B constants

Return value:

A new instance of IGPixelArray. Only color components specified by colorChannel parameter are initialised.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPageDisplaySettings

Group: Method

Description:

This method create new instance of IGDisplayPageSettings object and fills it with display profile. All options are taken from the current display parameters.

Declaration:

GetPageDisplaySettings() As IGDisplayPageSettings

Return value:

A new instance of IGDisplayPageSettings object.

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPaletteData

Group: Method

Description:

This function returns the current palette settings.

Declaration:

GetPaletteData() As IGDisplayPalette

Return value:

A new instance of IGDisplayPalette object with image palette settings.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetScrollAttrs

Group: Method

Description:

This method returns new instance of image scroll attributes object

Declaration:

GetScrollAttrs(hWnd As Long) As IGDisplayScrollInfo

Parameters:

hWnd
Windows window handle used for calculations

Return value:

A new instance of IGDisplayScrollInfo object.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetZoomInfo

Group: Method

Description:

This method returns new instance of IGDisplayZoomInfo object with information on image zoom attributes.

Declaration:

GetZoomInfo(hWnd As Long) As IGDisplayZoomInfo

Parameters:

hWnd
Windows window handle used for zoom parameters calculations

Return value:

A new instance of IGDisplayZoomInfo object.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


HandlePalette

Group: Method

Description:

This function is designed to be used to handle palette messages from the operating system. For the Windows platform, this function should be called when WM_QUERYNEWPALETTE and WM_PALETTECHANGED messages are processed. Handling of those messages is extremely important for palette based devices.

Declaration:

HandlePalette(hWnd As Long, hDC As Long, Mode As
enumPaletteModes) As Boolean

Parameters:

hWnd
Handle of window where image is displayed
hDC
Handle of device context where image is drawn
Mode
New value of PaletteMode to set. Possible value is either IG_DSPL_PALETTE_HIGH or IG_DSPL_PALETTE_LOW. Please note that this new value is assigned only if the current value of PaletteMode is not IG_DSPL_PALETTE_DISABLE. If the current value is IG_DSPL_PALETTE_DISABLE then the function does not perform any action

Return value:

True, if new palette has been realized, and False, if otherwise.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


HandleResize

Group: Method

Description:

This function is to be called during WM_SIZE message handling and it recalculates all the parameters according to the new window width and height.

Declaration:

HandleResize(hWnd As Long)

Parameters:

hWnd
Handle of window where image is displayed

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


HandleScroll

Group: Method

Description:

This method handle scrollbar messages from an hWnd window. It should not be used to set the absolute scroll position; function ScrollTo should be used instead.

Declaration:

HandleScroll(hWnd As Long, Type As enumIGDsplScrollType,
lScrollCmd As Long, lScrollValue As Long)

Parameters:

hWnd
Handle of window where image is displayed and where scrolling is performed
Type
Scroll command. Its value is platform dependent. For Win32 platforms there should be LOWORD(wParam)Valid values are:
  • IG_DSPL_SCROLL_HORIZONTAL
  • IG_DSPL_SCROLL_VERTICAL
lScrollCmd
Scroll command. Its value is platform dependent. For Win32 platforms there should be LOWORD(wParam). Valid values are:
  • IG_DSPL_HSCROLLBAR
  • IG_DSPL_HSCROLLBAR_AUTO
  • IG_DSPL_HSCROLLBAR_ENABLE
  • IG_DSPL_HSCROLLBAR_DISABLE
  • IG_DSPL_VSCROLLBAR
  • IG_DSPL_VSCROLLBAR_AUTO
  • IG_DSPL_VSCROLLBAR_ENABLE
  • IG_DSPL_VSCROLLBAR_DISABLE
lScrollValue
Scroll value. It is also platform dependent and its value may have a different meaning from nScrlType. Under the Windows platform, it is not used because the scroll position is obtained directly from the scrollbars.

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageFillColor

Group: Property

Description:

This property provide access to image fill color. This color is used to fill the image area for clipboard cut operation. It returns reference to internal data member of IGPageDisplay object. Modification of retuned object affects the parent IGPageDisplay.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


ImportDDB

Group: Method

Description:

This method accept DDB image and creates IG DIB for it. New DIB created replaces content of curent IGPage object. If the color format of the DDB is not supported directly by ImageGear then it is converted to the nearest supported format with a minimal possible loss of color quality.

Declaration:

ImportDDB(hDC As Long, pDDB As IGDisplayDDB)

Parameters:

hDC
Handle of device context that the DDB is compatible with. If 0 then it is assumed that the DDB is compatible with the desktop's device context.
pDDB
DDB image to import

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsValidImage

Group: Method

Description:

This method returns true if there is a valid image associated with the IGPageDisplay object.

Declaration:

IsValidImage()

Return value:

True, if a valid image is associated, False - no valid image is associated.

Bits Per Pixel:

N/A

Sample:

None


Layout

Group: Property

Description:

This property provides access to image layout settings. It returns reference to internal data member of IGPageDisplay object. Modification of retuned object affects the parent IGPageDisplay.

Property Summary:

Data Type:
IGDisplayLayout
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


MapMode

Group: Property

Description:

This property provide access to image mapping . It returns reference to internal data member of IGPageDisplay object. Modification of retuned object affects the parent IGPageDisplay.

Property Summary:

Data Type:
IGDisplayMapMode
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


OffScreenDrawing

Group: Property

Description:

This property, when set to True, will cause ImageGear to perform all drawing operations into memory buffer with subsequent drawing the entire buffer to the screen. This is useful to eliminate flicker effect when working with the large number of annotations.

If this property is set to False, ImageGear performs all drawings directly to the output device context.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Display


OffScreenHeight

Group: Property

Description:

This property determines the height of the bitmap used for buffered drawing.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive value.
Bits Per Pixel:
N/A
Sample:
Display


OffScreenWidth

Group: Property

Description:

This property determines the width of the bitmap used for buffered drawing.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive value.
Bits Per Pixel:
N/A
Sample:
Display


Orientation

Group: Property

Description:

This property specifies an image orientation.

Property Summary:

Data Type:
enumIGOrientationModes
Default Value:
N/A
Access:
Read/Write
Settings:
See enumIGOrientationModes constants
Bits Per Pixel:
N/A
Sample:
Display


Page

Group: Property

Description:

This property provides access to the IGPage object whose display settings this IGPageDisplay represents.

Property Summary:

Data Type:
IGPage
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


PasteFromClipboard

Group: Method

Description:

This method pastes an image from clipboard and replaces the content of the current IGPage object.

Declaration:

PasteFromClipboard()

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PasteMergeFromClipboard

Group: Method

Description:

This method pastes an image from the clipboard and merges it with the content of the current IGPage object.

Declaration:

PasteMergeFromClipboard(Left As Long, Top As Long, Mode As
enumArithmetic)

Parameters:

Left
X position in destination image at which to place the upper left corner of the clipboard image when merging.
Top
Y position in destination image at which to place the upper left corner of the clipboard image when merging.
Mode
Arithmretic operation used to image merge. See enumArithmetic constants

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Picture

Group: Property

Description:

This standard OLE object property designed to import and export image as Picture Object.

Property Summary:

Data Type:
Picture
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
N/A


PrintDirect

Group: Property

Description:

If this property is True, then ImageGear does not perform an image scaling but uses the operating system's and driver's capabilities for this. If it is False, then ImageGear performs the scaling. Normally, the printing direct to driver (bDirectToDriver=True) results in smaller output size and works faster, but if you reject to use it, it produces better quality and allows you to use ImageGear capabilities such as anti-aliasing during printing.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Display


PrintImage

Group: Method

Description:

This method draws image on the printer device context specified. Print resolution depends on the current printer setting.

Declaration:

PrintImage(hDC As Long)

Parameters:

hDC
Handle of printer device context where to draw image

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PrintToPageWithLayout

Group: Method

Description:

This function draws an image onto the printer device context within the specified rectangle. Printing resolution depends on the current printer setting. Rectangle that specifies image layout is calculated in page-relative units, and as the actual page resolutions are obtained it translates the rectangle into real coordinates and assigns ClipRect according to the following rules:

ClipRect.x = Left*nPageWidth
ClipRect.y = Top->y*nPageHeight
ClipRect.width = Width*nPageWidth
ClipRect.height = Height*nPageHeight

Declaration:

PrintToPageWithLayout(hDC As Long, Left As Double, Top As
Double, Width As Double, Height As Double)

Parameters:

hDC
Handle of printer device context where to draw image
Left
Left boundary of layout rectangle
Top
Top boundary of layout rectangle
Width
Width of layout rectangle
Height
Height of layout rectangle

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ROP

Group: Property

Description:

This property specifies the raster operation to use for image drawing.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Display


ScrollTo

Group: Method

Description:

This function scrolls the image to a specified position and updates the window's scroll bars accordingly. It can be used even if a window's scroll bars are disabled. Both scroll positions should be in valid scroll range but if not, then the nearest valid value will be assigned.

Declaration:

ScrollTo(hWnd As Long, XPos As Long, YPos As Long)

Parameters:

hWnd
Handle of window where image is displayed and where scrolling is performed
XPos
New horizontal scroll position. Should be in a valid range that can be retrieved using the GetScrollAttrs function
YPos
New vertical scroll position. Should be in a valid range that can be retrieved using the GetScrollAttrs function

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetPageDisplaySettings

Group: Method

Description:

This method updates an image page display parameters with ones stored in the passed IGDisplayPageSettings object.

Declaration:

SetPageDisplaySettings(pSettings as IGDisplayPageSettings)

Parameters:

pSettings
Object containing new page display settings

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Transparency

Group: Property

Description:

This property provide access to image transparency settings. It returns reference to internal data member of IGPageDisplay object. Modification of retuned object affects the parent IGPageDisplay.

Property Summary:

Data Type:
IGDisplayTransparency
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Display


UpdateLUTFrom

Group: Method

Description:

This function assigns new values to red, green and blue lookup tables.

Declaration:

UpdateLUTFrom(colorChannel As enumColorComp, pLUT As
IGPixelArray)

Parameters:

colorChannel
Specify the color components whose LUT should be returned. It can be ORed combination of IG_COLOR_COMP_R, IG_COLOR_COMP_G, IG_COLOR_COMP_B constants
pLUT
Array with lookup data. It should have no less than 256 entries

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePaletteFrom

Group: Method

Description:

This method updates image palette settings with new values.

Declaration:

UpdatePaletteFrom(pDispPalette As IGDisplayPalette)

Parameters:

pDispPalette
IGDisplayPalette object with new palette settings

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateParams

Group: Method

Description:

This method is used to synchronize display parameters stored in IGPageDisplay object with ones represented by IGPageDisplay interface properties such as Antialiasing, Background, Dithering and so on. Modification of these properites is not reflected in IGPageDisplay immediately and call of UpdateParams() method copies values from interface properties to IGPageDisplay internal data structures. UpdateParams method is called automatically inside of IGPageDisplay draw methods if UpdateParamsOnDraw property is set to TRUE

Declaration:

UpdateParams()

Return value:

None.

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateParamsOnDraw

Group: Property

Description:

This property when set to TRUE specifies that UpdateParams() method is called before any of IGPageDisplay draw methods is executed

Property Summary:

Data Type:
Boolean
Default Value:
TRUE
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


UpdateScrollAttrsFrom

Group: Method

Description:

This method updates an image scroll attributes with the new values.

Declaration:

UpdateScrollAttrsFrom(hWnd As Long, pScrollInfo As
IGDisplayScrollInfo)

Parameters:

hWnd
Windows window handle used for calculations
pScrollInfo
New value of scrolling parameters

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateZoomFrom

Group: Method

Description:

This method updates an image zoom settings with the new values.

Declaration:

UpdateZoomFrom(pZoomInfo As IGDisplayZoomInfo)

Parameters:

pZoomInfo
Zoom attributes to assing

Return value: N/A

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ZoomToRectangle

Group: Method

Description:

This method calculates the zoom and scroll values, so that the specified rectangle is fitted to ClipRect and zoom image to the recatngle calculated. It assigns Zoom mode to IG_DSPL_ZOOM_H_FIXED | IG_DSPL_ZOOM_V_FIXED value, calculates and modifies horizontal zoom HZoom value, horizontal zoom VZoom value, and the horizontal and vertical scroll positions and returns new instance of IGDisplayZoomInfo object with the new zoom attributes.

It does not change the value of rectangles DeviceRect, ImageRect and ClipRect.

Declaration:

ZoomToRectangle(hWnd As Long, pZoomRect As IGRectangle) As
IGDisplayZoomInfo

Parameters:

hWnd
Windows window handle used for calculations
pZoomRect
Rectangle to zoom image to

Return value:

A new instance of IGDisplayZoomInfo object with new zoom attributes.

Bits Per Pixel: N/A

Sample: Display

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Display Component Enumerations

This section of the Manual provides an alphabetized reference of enumerations defined in ImageGear Display component:

    • enumIGDisplayObjType
    • enumIGDsplAliasModes
    • enumIGDsplAlignModes
    • enumIGDsplAspectModes
    • enumIGDsplBackgroundModes
    • enumIGDsplContrastFlags
    • enumIGDsplConvModes
    • enumIGDsplDitheringModes
    • enumIGDsplFitModes
    • enumIGDsplMapModes
    • enumIGDsplPaletteModes
    • enumIGDsplScrollBarModes
    • enumIGDsplScrollType
    • enumIGDsplTranspModes
    • enumIGDsplZoomModes
    • enumIGOrientationModes
    • enumIGWipeStyles


enumIGDisplayObjType

Group: Enumeration

Description:

Identifies all object types that can be created with CreateObject method of Display component.

Values:

IG_DSPL_OBJ_ZOOM
IGDisplayZoomInfo data type
IG_DSPL_OBJ_SCROLL
IGDisplayScrollInfo data type
IG_DSPL_OBJ_DDB
IGDisplayDDB data type


enumIGDsplAliasModes

Group: Enumeration

Description:

Identifies the different types of image aliasing. Applicable only if an 1-bit per pixel image is to be drawn and only if the destination image has a lower resolution then the original one.

Values:

IG_DSPL_ANTIALIAS_NONE
Anti-aliasing is not used
IG_DSPL_ANTIALIAS_SCALE_TO_GRAY
The scale to gray algorithm is used and the output image becomes 4 bits per pixel
IG_DSPL_ANTIALIAS_PRESERVE_BLACK
This mode directs ImageGear to preserve black pixels while drawing
IG_DSPL_ANTIALIAS_PRESERVE_WHITE
This mode directs ImageGear to preserve white pixels while drawing
IG_DSPL_ANTIALIAS_SUBSAMPLE
This flag directs ImageGear to use sub-sampling during anti-alias scaling. The output quality is higher and the display speed is considerably faster


enumIGDsplAlignModes

Group: Enumeration

Description:

Identifies the different types of image display allignment modes, i.e. identifies how the displayed image is aligned relative to the device rectangle.

Values:

IG_DSPL_ALIGN_X_LEFT
The image is aligned to the left border of the device rectangle
IG_DSPL_ALIGN_X_CENTER
The image is centered horizontally
IG_DSPL_ALIGN_X_RIGHT
The image is aligned to the right border of the device rectangle
IG_DSPL_ALIGN_Y_LEFT
The image is aligned to the top border of the device rectangle
IG_DSPL_ALIGN_Y_CENTER
The image is centered vertically
IG_DSPL_ALIGN_Y_RIGHT
The image is aligned to the bottom border of the device rectangle


enumIGDsplAspectModes

Group: Enumeration

Description:

Identifies the different types of image's display aspect ratio (i.e. width-to-height ratio).

Values:

IG_DSPL_ASPECT_FIXED
Aspect ratio is the one specified by Aspect Value parameter
IG_DSPL_ASPECT_NOT_FIXED
Aspect ratio is the one of the device rectangle


enumIGDsplBackgroundModes

Group: Enumeration

Description:

Identifies the different modes of image background drawing.

Values:

IG_DSPL_BACKGROUND_NONE
The background is disabled and IG does not fill this area
IG_DSPL_BACKGROUND_UNDER_IMAGE
The image's transparent pixels are drawn with current backgound color and backgound brush. The area outside of Displayed Image Rectangle is not affected
IG_DSPL_BACKGROUND_BEYOND_IMAGE
The transparent pixels that are outside of Displayed Image Rectangle are drawn with current background color and background brush


enumIGDsplContrastFlags

Group: Enumeration

Description:

Identifies the different color components of RGB color.

Values:

IG_DSPL_R_CHANNEL
Red color component
IG_DSPL_G_CHANNEL
Green color component
IG_DSPL_B_CHANNEL
Blue color component
IG_DSPL_ALL_CHANNELS
OR-ed combination of 3 flags above, identifies all 3 color components


enumIGDsplConvModes

Group: Enumeration

Description:

Identifies the coordinate translation methods.

Values:

IG_DSPL_CONV_IMAGE_TO_DEVICE
Converts coordinates from image coordintates to device ones
IG_DSPL_CONV_DEVICE_TO_IMAGE
Converts coordinates from device coordintates to image ones


enumIGDsplDitheringModes

Group: Enumeration

Description:

Identifies the different dithering types.

Values:

IG_DSPL_DITHER_AUTO
Destination device color resolution should be used for dithering. In this mode IG automatically applies dithering only when it is necessary
IG_DSPL_DITHER_TO_8BPP
Forces ImageGear to assume that the output device is 8 bits per pixel and perform the necessary dithering
IG_DSPL_DITHER_TO_4BPP
Forces ImageGear to assume that the output device is 4 bits per pixel and perform the necessary dithering
IG_DSPL_DITHER_TO_1BPP
Forces ImageGear to assume that the output device is 1 bit per pixel and perform the necessary dithering
IG_DSPL_DITHER_NONE
Disables ImageGear's dithering. In this mode dithering is performed by the operating system or the device driver
IG_DSPL_DITHER_FIXED_PALETTE
ImageGear will try to use the standard palette when performing dithering. This may be useful if the output device contains more than one image and by using this flag it is possible to draw images with the same palette
IG_DSPL_DITHER_NETSCAPE_PALETTE
Applicable only if the output device is 8 bits per pixel. It directs ImageGear to use the 216 entries of Netscape's palette.


enumIGDsplFitModes

Group: Enumeration

Description:

Identifies how an image fits to the device rectangle.

Values:

IG_DSPL_FIT_TO_DEVICE
The image is scaled to fit both the width and height of the device rectangle
IG_DSPL_FIT_TO_WIDTH
The image is scaled to fit the width of the device rectangle
IG_DSPL_FIT_TO_HEIGHT
The image is scaled to fit the height of the device rectangle
IG_DSPL_ACTUAL_SIZE
The device rectangle is ignored and the image is scaled 1:1


enumIGDsplMapModes

Group: Enumeration

Description:

Identifies the different mapping modes. The mapping mode defines the unit of measure used to convert logical units to device units. For mode details see MS SDK.

Values:

IG_DSPL_MM_TEXT
GDI MM_TEXT mode
IG_DSPL_MM_LOMETRIC
GDI MM_LOMETRIC mode
IG_DSPL_MM_HIMETRIC
GDI MM_HIMETRIC mode
IG_DSPL_MM_LOENGLISH
GDI MM_LOENGLISH mode
IG_DSPL_MM_HIENGLISH
GDI MM_HIENGLISH mode
IG_DSPL_MM_TWIPS
GDI MM_TWIPS mode
IG_DSPL_MM_ISOTROPIC
GDI MM_ISOTROPIC mode
IG_DSPL_MM_ANISOTROPIC
GDI MM_ANISOTROPIC mode


enumIGDsplPaletteModes

Group: Enumeration

Description:

Identifies the different modes of palette handling.

Values:

IG_DSPL_PALETTE_HIGH
Use the palette in the high priority mode. This means that the operating system palette manager will try to best map colors of DevicePalette to the system palette
IG_DSPL_PALETTE_LOW
Use the palette in the low priority mode. In this mode the palette manager will try to best preserve current view of the destination while drawing the new image on it
IG_DSPL_PALETTE_DISABLE
Not to implement DevicePalette in the destination device while drawing the image


enumIGDsplScrollBarModes

Group: Enumeration

Description:

Identifies the scroll bar display methods.

Values:

IG_DSPL_SB_AUTO
Automaticaly show and hide scroll bars when required accroding with image zoom
IG_DSPL_SB_ENABLED
Always show scroll bar
IG_DSPL_SB_DISABLED
Hide scrollbar


enumIGDsplScrollType

Group: Enumeration

Description:

Identifies the scroll bar type, horizontal or vertical.

Values:

IG_DSPL_SCROLL_HORIZ
Horizontal scrollbar
IG_DSPL_SCROLL_VERT
Vertical scrollbar


enumIGDsplTranspModes

Group: Enumeration

Description:

Identifies the different transparency modes.

Values:

IG_DSPL_TRANSPARENCY_NONE
Transparency is disabled
IG_DSPL_TRANSPARENCY_COLOR
Transparency color is enabled and the color's value assigned to the Transparency Color option is transparent while drawing the image
IG_DSPL_TRANSPARENCY_MASK
Transparency mask is enabled and the Transparency Mask option is used as the transparent bitmap
IG_DSPL_TRANSPMASK_STRETCH_TO_IMAGE
TranspMask image is resized and oriented along with the image being displayed (it is used when the transparency mask is enabled). If this flag is not set, the transparency mask is not scaled
IG_DSPL_TRANSPMASK_LOCATE_TO_IMAGE
Mask is calculated in the image-dependent coordinate system (it is used when the transparency mask is enabled). This means that the mask is oriented as the image is, and that the MaskLocation option is calculated from the original image's ImageRect
IG_DSPL_TRANSPMASK_LOCATE_TO_CLIPRECT
Locates the transparent mask relative to the ClipRect so that the MaskLocation is calculated from the rectangle's top left point (it is used when the transparency mask is enabled)
IG_DSPL_TRANSPMASK_LOCATE_ABSOLUTE
Locates the transparent mask on the output device so that the mask's top left point has the coordinates specified in the MaskLocation option (it is used when the transparency mask is enabled)


enumIGDsplZoomModes

Group: Enumeration

Description:

Identifies how the image is zoomed in the horizontal and vertical directions.

Values:

IG_DSPL_ZOOM_H_NOT_FIXED
This mode allows any horizontal zoom value
IG_DSPL_ZOOM_H_FIXED
Horizontal zoom factor is taken from Horizontal Zoom Value parameter
IG_DSPL_ZOOM_V_NOT_FIXED
This mode allows any vertical zoom value
IG_DSPL_ZOOM_V_FIXED
Vertical zoom factor is taken from the Vertical Zoom Value parameter


enumIGOrientationModes

Group: Enumeration

Description:

Identifies how the image is oriented before it is drawn on the output device. Possible values are determined by the constants of the form IG_DSPL_ORIENT_X_Y, where each of X and Y can be LEFT, TOP, RIGHT or BOTTOM. X represents the position of the topmost row of the bitmap after applying the transformation. Y represents the position of the left-most column of the bitmap after applying the transformation.

For example, IG_DSPL_ORIENT_RIGHT_TOP means that the left-most column becomes the image's new topmost row, and that the topmost row becomes the image's new right-most column. The image, therefore, is rotated on 90 degrees.

Values:

IG_DSPL_ORIENT_BOTTOM_LEFT
The image is flipped vertically.
IG_DSPL_ORIENT_BOTTOM_RIGHT
The image is rotated 180 degrees.
IG_DSPL_ORIENT_LEFT_BOTTOM
The image is rotated 270 degrees.
IG_DSPL_ORIENT_LEFT_TOP
The image is rotated 270 degrees and then flipped vertically.
IG_DSPL_ORIENT_RIGHT_BOTTOM
The image is rotated 90 degrees and then flipped vertically.
IG_DSPL_ORIENT_RIGHT_TOP
The image is rotated 90 degrees.
IG_DSPL_ORIENT_TOP_LEFT
The image is displayed unchanged.
IG_DSPL_ORIENT_TOP_RIGHT
The image is flipped horizontally.


enumIGWipeStyles

Group: Enumeration

Description:

Identifies the different image transition effects.

Values:

IG_WIPE_LEFTTORIGHT
Left-to-Right Wipe.
IG_WIPE_RIGHTTOLEFT
Right-To-Left Wipe.
IG_WIPE_UP_TO_DOWN
Up-to-Down Wipe.
IG_WIPE_DOWN_TO_UP
Down-to-Up Wipe.
IG_WIPE_SPARKLE
Sparkle Transition
IG_WIPE_ULTOLRDIAG
Upper Left to Lower Right wipe
IG_WIPE_LRTOULDIAG
Lower Right to Upper Left wipe
IG_WIPE_URTOLLDIAG
Upper Right to Lower Left wipe.
IG_WIPE_LLTOURDIAG
Lower Left to Upper Right wipe.
IG_WIPE_CLOCK
Clockwise wipe.
IG_WIPE_SPARKLE_CLOCK
Clockwise wipe with sparkles.
IG_WIPE_DOUBLE_CLOCK
Two simultaneous clockwise wipes, 180 grades apart.
IG_WIPE_SLIDE_RIGHT
New image slides in from the left.
IG_WIPE_SLIDE_LEFT
New image slides in from the right.
IG_WIPE_SLIDE_UP
New image slides in from the down.
IG_WIPE_SLIDE_DOWN
New image slides in from the up.
IG_WIPE_RANDOM_BARS_DOWN
Vertical bars of old image fall to reveal new image.
IG_WIPE_RAIN
Vertical lines of new image cover over old, like paint running down the side of a bucket.
IG_WIPE_BOOK
Bookwisw wipe.
IG_WIPE_ROLL
Old image rolls in from right to left.
IG_WIPE_UNROLL
New image rolls out from left to right.
IG_WIPE_EXPAND_PROPORTIONAL
New image expands from the center of old image in diagonal directions.
IG_WIPE_EXPAND_HORIZONTAL
New image expands from the center of old image in horizontal directions.
IG_WIPE_EXPAND_VERTICAL
New image expands from the center of old image in vertical directions.
IG_WIPE_STRIPS_HORIZONTAL
New image appeares as expanding horizontal strips.
IG_WIPE_STRIPS_VERTICAL
New image appeares as expanding vertical strips.
IG_WIPE_CELLS
New image appeares as expanding square cells.
IG_WIPE_BALL
New image appeares as tracks of spirally moving balls.
IG_WIPE_GEARS
New image appeares as tracks of moving ImageGear's icons.


ImageGear Effects Component API Reference

ImageGear Effects Component API Reference

ImageGear Effects component provides a group of special effects methods for blurring, blending, diffusing, embossing, motion, noising, pixelating, posterizing, spotlighting, stitching, twisting and superimposesing texture and watermarks. It exposes the following objects:

IGEffectsCtl
ImageGear Effects Control
IGMosaicBorderParams
Specifies Border parameters for MosaicTiles
IGMosaicCellParams
Specifies Cell parameters for MosaicTiles
IGMosaicFillParams
Specifies Fill parameters for MosaicTiles
IGMosaicShadowParams
Specifies Shadow parameters for MosaicTiles

The following interfaces that don't have corresponding objects are defined in ImageGear Effects component:

IIGEffects
ImageGear Effects Interface

The following enumerations are used in ImageGear Effects component:

enumIGBlurModes
Kernel sizes used by IGEffectsCtl. Blur method
enumIGDirections
Enumeration of compass directions
enumIGFXBrushType
Specifies types of the brush for the Pointillist method.
enumIGFXLensFlareType
Specifies the types of lens flare effect for LensFlare method.
enumIGMosaicType
Types for IGEffectsCtl.MosaicTiles method
enumIGNoiseMethods
Modes for IGEffectsCtl. AddNoise method
enumIGResampleInModes
Input modes for IGEffectsCtl. Pixelate method
enumIGResampleOutModes
Output modes for IGEffectsCtl. Pixelate method
enumIGShearFillStyle
Specifies shear filling styles.
enumIGTwistModes
Rotation modes for IGEffectsCtl. Twist method

Below is an alphabetized reference of ImageGear Effects objects and interfaces and their API (properties, methods, and events).


IGEffectsCtl

Group: Control

Description:

The ImageGear Effects component, created explicitly by application developer using IDE/language capabilities.

Interface:

IIGEffectsCtl extends IIGEffects

Class Members:

BackColor
property
Background color used by IGEffectsCtl methods
ComponentInfo
property
Provides access to the IGComponentInfo object for IGEffectsCtl. The IGComponentInfo object identifies the particular version of IGEffectsCtl installed in the computer.
ComponentInterface
property
Provides access to the IIGComponent interface for IGEffectsCtl. Used in IGCoreCtl . AssociateComponent call.
AddChromaKey
method
Blends two images
AddMotion
method
Makes an image look as though it was moving when it was captured
AddNoise
method
Creates a noise, which make an image look older
AddSpotlight
method
Produces a "spotlight" effect
AddTexture
method
Applies a texture to an image
AddWatermark
method
Produces a watermark like effect
Aging
method
Applies an aging effect to make an image look older.
Blur
method
Blurs an image
Cylinder
method
Provides a cylindrical warping effect on the IGPage.
Diffuse
method
Diffuses an image by shuffling the positions of pixels
DirectionalLight
method
Changes the colors of an image according to the pattern of a sine wave.
DirectionalWave
method
Provides a directional wave effect on the IGPage.
DropShadow
method
Adds a drop shadow to an image.
Emboss
method
Produces an embossed or 3-D like chiseled-in-stone look to an image
EmbossEx
method
Produces an embossed or 3-D like chiseled-in-stone look to an image
Fragment
method
Fragments an image into four blended images which move diagonally outward from the original image.
FreeDirectionalLight
method
Changes the colors of an image according to the pattern of a sine wave.
FreeRadialLight
method
Changes the colors of an image according to the pattern of a sine wave.
LensFlare
method
Applies a lens flare effect to the image.
MosaicTiles
method
Provides a mosaic effect on the IGPage.
Oilify
method
Applies an effect to an image that makes it appear similar to an oil painting.
Parabola
method
Provides a parabolic warping effect on the IGPage.
Pinch
method
Provides a pinch effect on the IGPage.
Pixelate
method
Redraws an image using what appear to be very large pixels
Pointillist
method
Applies an effect to an image that makes it appear to have been painted in the pointillism style of painting.
Posterize
method
Reduces the number of actual colors in image by creating a "staircase" in the palette
RadialLight
method
Changes the colors of an image according to the pattern of a sine wave.
RadialWave
method
Provides a radial wave effect on the IGPage.
Ripple
method
Provides the ripple effect on the image, as if it is looked at through a relief glass.
RippleFreeHand
method
Provides the ripple effect on the image, as if it is looked at through a relief glass.
RippleTexture
method
Provides the ripple effect on the image, as if it is looked at through a relief glass.
Shear
method
Applies a shearing effect to an image.
Solarize
method
Mimics the accidental exposure of photographic film to light.
Spatter
method
Applies a spatter effect to an image, making it look as if it was painted in the impressionist style of painting.
Sphere
method
Provides a spherical warping effect on the IGPage.
Stitch
method
Produces similar to Emboss effect, but the output resembles a quilted stitch pattern
Twist
method
Makes an image distorted, as though it was being viewed through textured glass


AddChromaKey

Group: Method

Description:

This method blends two images, inserting the pixel values from image referenced by pBackPage object wherever the pixel from image referenced by pPage object is in the hue range specified by hueRange parameter. The background image referenced by pBackPage object must have the same height, width, and bit depth as the foreground image referenced by pPage object. You can control the smoothness of the transitions using Smooth parameter, and you can prevent the hue of dark pixels from being considered using IntensityThreshold parameter. To determine the proper hue center and hue range, you may want to use the IGPage .GetPixelCopy and IGProcessingCtl . GetHueValue methods. The hue is not a 8-bit HSI. HSI is the name of the color space.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

AddChromaKey (pPage As IGPage, pBackPage As IGPage, hueCenter As
Double, hueRange As Double, Smooth As Long, IntensityThreshold
As Long)

Parameters:

pPage
Reference to IGPage object of the foreground image to modify where the specified hue is found
pBackPage
Reference to IGPage object of the background image to insert from on hue match
hueCenter
Angle of the matching hue in the standard 360 degrees Color Wheel format. 360 has the same meaning as 0
hueRange
Range in the standard 360 degrees Color Wheel format to allow on either side
Smooth
Value between 0 and 25 specifying how much to smooth the transition. 0 gives the sharpest edge
IntensityThreshold
Intensity value between 0 and 255 specifying the threshold below which to ignore the hue. 0 is the sharpest edge

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


AddMotion

Group: Method

Description:

This method makes the image referenced by pPage object look as though it was moving when it was captured. The amount of motion depends on the Extent parameter. The larger Extent makes the motion appear faster. Use Direction to select in which direction the image appears to be moving toward.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

AddMotion (pPage As IGPage, Extent As Long, Direction As
enumIGDirections)

Parameters:

pPage
Reference to IGPage object for which the motion happens
Extent
Amount of motion to be applied. When Direction is set to "S, W, E, N", the correct range for this variable is 2 - 15. When Direction is set to "SE, NE, NW, SW", the correct range for this variable is 3 - 22. It determines the extent to which the pixels will be "moved" or "smeared", or literally how many pixel lengths each pixel will "move over"
Direction
Any value of enumIGDirections specifying compass direction

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


AddNoise

Group: Method

Description:

This method is used to create a noise in the image referenced by pPage object. This can make the image look older. You can control the amount of pixels to be affected as well the strength and the algorithm of the noise alteration. Setting HitRate to 1 indicates that almost every pixel should be affected. A value of 100 would indicate that every 100th pixel should be affected. Setting Strength parameter to 1.0 indicates that a value of about +1 to -1 should be added to those pixels selected while setting Strength to 50.0 would increase the noise result by adding values in the range of -50 to +50. The amount of noise and the pixels to apply it to are selected randomly.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

AddNoise (pPage As IGPage, NoiseMethod As enumIGNoiseMethods,
Strength As Double, HitRate As Long, Sigma As Double,
colorChannel As enumIGColorChannels)

Parameters:

pPage
Reference to IGPage object for which to add the noise
NoiseMethod
Any value of enumIGNoiseMethods specifying noise algorithm used for the alteration
Strength
Value between 0.0 and 127.0 specifying degree of the noise alteration to be done for the image, i.e how much pixel's value needs to be altered
HitRate
Value between 1 and 500.
Use 1 to add noise to all the pixels, use > 1 to skip some pixels. Larger values result in fewer affected pixels
Sigma
Value between 0.1 and 25.0 used with IG_NOISE_GAUSSIAN algorithm
colorChannel
Any value of enumIGColorChannels specifying color channels to apply the alteration for

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


AddSpotlight

Group: Method

Description:

This method produces a "spotlight" effect for the image referenced by pPage object within the circle specified by radius and (centerX, centerY) parameters. It leaves the pixels within the circle unchanged while darkening the surrounding pixels by reducing their intensity. Use darkenBy parameter to specify the reduction in intensity of the surrounding pixels. Use smoothing parameter to specify the amount of smoothing at the perimeter of the circle. Setting smoothing to 0 will leave the sharpest edge.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

AddSpotlight (pPage As IGPage, centerX As Long, centerY As Long,
radius As Long, darkenBy As Long, smoothing As Long)

Parameters:

pPage
Reference to IGPage object for which to add the spotlight
centerX
X coordinate of the circle center to get a spotlight effect
centerY
Y coordinate of the circle center to get a spotlight effect
radius
Circle radius in pixels
darkenBy
Reduction in intensity of the surrounding pixels
smoothing
Value between 0 and 255 specifying how much smoothing to apply at the edges. 0 gives the sharpest edge, > 0 gives the smoother edges

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


AddTexture

Group: Method

Description:

This method applies a texture referenced by pTexturePage object to the image referenced by pPage object. The texture image is a small 8-bit grayscale image that is treated as a sign centered image. Pixels in the texture image that are 127 have no effect on the original image and the farther a texture image pixel is from 127, the greater its effect. The texture image is tiled over the entire original image starting in the top left corner. Any left over is clipped.

Sign centered images can be created using the emboss function.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

AddTexture (pPage As IGPage, pTexturePage As IGPage)

Parameters:

pPage
Reference to IGPage object for which to apply the texture
pTexturePage
Reference to IGPage object of the texture image

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


AddWatermark

Group: Method

Description:

This method is used to produce a watermark like effect. 8-bit sign centered image referenced by pWatermarkPage object is scaled to match the image referenced by pPage object and merged with watermark effect.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

AddWatermark (pPage As IGPage, pWatermarkPage As IGPage)

Parameters:

pPage
Reference to IGPage object for which to apply the watermark
pWatermarkPage
Reference to IGPage object of the watermark image

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


Aging

Group: Method

Description:

This method applies an aging effect to make an image look older. The effect can adjust image saturation and contrast, and add noise and random vertical lines to the image.

Declaration:

Sub Aging(Page As IGPage, Saturation As Single, Deviation As
Single, ImageContrast As Single, LineContrast As Single,
LineDensity As Long, AgingColor As IGDataArray)

Parameters:

Page
IGPage object to apply the effect to.
Saturation
Adjusts color saturation of the original image. The value should range from 0 to 1, where 0 removes all color from the image and 1 does not adjust color saturation.
Deviation
Amount of noise to add to the image. The value should range from 0 to 50.
ImageContrast
Adjusts image contrast. The value should range from 0 to 1, where 0 is minimum contrast and 1 does not adjust contrast. Values less than 0 produce inverted contrast.
LineContrast
Adjusts contrast of random vertical lines added to the image. The value should range from -1 to 1, where -1 is completely black lines, 0 is invisible lines, and 1 is completely white lines. Values between 0 and 1, for example, blend line color between original image pixel colors and white.
LineDensity
Adjusts density (quantity) of random vertical lines added to the image. The value should range from 0 to the width of the image in pixels, where 0 would add no lines, and the width of the image in pixels would fill the image with lines.
AgingColor
An array containing IG_DATA_DOUBLE values. Adjusts color tint of the image. The color of the image will be tinted according to the values of the array. The array consists of three elements which represent color adjustment factors, corresponding to image colorspace. Each element ranges from -1 to 1, where a value of 0 represents no change to the image's color component, -1 represents completely change to the color component's minimum value, and 1 represents complete change to the color component's maximum value. Array length must be equal to number of image channels.

Return Value:

N/A

Bits Per Pixel:

RGB, non bitonal Gray and indexed with grayscale palette. Does not support Grayscale with LUT.

Sample:

Image Processing and Effects


BackColor

Group: Property

Description:

This property contains background color used by IGEffectsCtl methods.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


Blur

Group: Method

Description:

This method blurs the image referenced by pPage object. Use Mode parameter to specify how blurring needs to be applied.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Blur (pPage As IGPage, Mode As enumIGBlurModes)

Parameters:

pPage
Reference to IGPage object for which the blur happens
Mode
Any value of enumIGBlurModes specifying kernel size using for blurring

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGEffectsCtl. The IGComponentInfo object identifies the particular version of IGEffectsCtl installed in the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGEffectsCtl. Used in IGCoreCtl . AssociateComponent call.

Property Summary:

Data Type:
IIGComponent
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


Cylinder

Group: Method

Description:

Provides a cylindrical warping effect on the IGPage.

Declaration:

Sub Cylinder(pPage As IGPage, Distance As Long, Radius As Long,
Height As Long, Horizontal As Boolean, Interpolate As Boolean,
UseFillColor As Boolean)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
Distance
Distance to the cylinder axes, in pixels.
Radius
Radius of the cylinder
Height
Height of the cylinder segment, in pixels. Height can be changed from (-radius) to (radius).
Horizontal
If TRUE, cylinder is horizontal.
Interpolate
If TRUE, use interpolation; otherwise do not
UseFillColor
If TRUE, use fill color; otherwise do not

Return Value:

N/A

Bits Per Pixel:

All except bitonal if interpolation is off; All except bitonal, non-gray Indexed and Grayscale with LUT if interpolation is on.

Sample:

Image Processing and Effects

See Also:

IGPage


Diffuse

Group: Method

Description:

This method diffuses the image referenced by pPage object by shuffling the positions of pixels. The greater the value of Amount parameter, the greater the diffusion.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Diffuse (pPage As IGPage, Amount As Long)

Parameters:

pPage
Reference to IGPage object for which the diffusion happens
Amount
Value between 1 and 16 specifying the amount of diffusion

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


DirectionalLight

Group: Method

Description:

This method changes the colors of an image according to the pattern of a sine wave. The image will appear to have regularly spaced bars of light and shadow overlaid on top of it.

Declaration:

Sub DirectionalLight(Page As IGPage, Angle As Single, Amplitude
As IGDataArray, Frequency As Single, Phase As Single,
Attenuation As Single)

Parameters:

Page
IGPage object to apply the effect to..
Angle
Direction to apply the effect across the image. The value is specified as an angle in degrees and ranges from 0 to 360.
Amplitude
Controls the magnitude of color adjustment for each channel of the image. The number of elements of the array is typically set to the number of channels in the image. Each value should range from 0 to 2, although higher values are possible. 0 represents no change in the image color. Higher values represent more intense change. Color changes are clipped, so higher values result in a harder edge to the waveform.
Frequency
Frequency of sine wave. The value should be from 0 to 0.5. The higher the frequency, the more bars will be visible.
Phase
Phase of sine wave. The value should be from 0 to 2*PI (approximately 6.28). As the phase is changed, the alignment of the bars is changed. This can be used to line up the bars with image content or boundaries.
Attenuation
Attenuation of sine wave. The value should be from -0.01 to 0.01. Attenuation adjusts how much the amplitude of the sine wave is decreased or increased as the sine wave proceeds. It can be used to cause the lighting to fade or intensify.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


DirectionalWave

Group: Method

Description:

Provides a directional wave effect on the IGPage.

Declaration:

Sub DirectionalWave(pPage As IGPage, Angle As Single, Amplitude
As Single, Frequency As Single, Phase As Single, Attenuation As
Single, Interpolate As Boolean, UseFillColor As Boolean)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
Angle
Wave direction
Amplitude
Wave amplitude
Frequency
Wave frequency
Phase
Wave phase
Attenuation
Wave attenuation
Interpolate
If TRUE, use interpolation; otherwise do not
UseFillColor
If TRUE, use fill color; otherwise do not

Return Value:

N/A

Bits Per Pixel:

All except bitonal if interpolation is off; All except bitonal, non-gray Indexed and Grayscale with LUT if interpolation is on.

Sample:

Image Processing and Effects

See Also:

IGPage


DropShadow

Group: Method

Description:

This method adds a drop shadow to an image. The image is enlarged to contain a background and shadowed area.

Declaration:

Sub DropShadow(Page As IGPage, Width As Long, Distance As Long,
Angle As Long, InsideColor As IGPixel, OutsideColor As IGPixel)

Parameters:

Page
IGPage object to apply the effect to.
Width
Width of background and shadow area to add to the image.
Distance
Distance to move image from shadow area.
Angle
Angle (direction) of movement of image from shadow area.
InsideColor
Color of shadow area.
OutsideColor
Color of background.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


Emboss

Group: Method

Description:

This method produces an embossed or 3-D like chiseled-in-stone look to the image referenced by pPage object. The result looks similar to the engraved face of a coin. The greater the value of Strength parameter, the greater the effect will be (higher ridges and lower depressions). Direction parameter specifies direction in which the image will appear elevated.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Emboss (pPage As IGPage, Strength As Double, Direction As
enumIGDirections)

Parameters:

pPage
Reference to IGPage object for which the embossing happens
Strength
Value between 1.0 and 5.0 specifying the embossing strength
Direction
Any value of enumIGDirections specifying compass direction

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


EmbossEx

Group: Method

Description:

This method produces an embossed or 3-D like chiseled-in-stone look to the image referenced by pPage object. The result looks similar to the engraved face of a coin. The greater the value of Strength parameter, the greater the effect will be (higher ridges and lower depressions). Direction parameter specifies direction in which the image will appear elevated. The greater the Height parameter, the more the resulting image will appear to be offset in the embossed direction.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

EmbossEx (pPage As IGPage, Height As Long, Strength As Double,
Direction As enumIGDirections)

Parameters:

pPage
Reference to IGPage object for which the embossing happens
Height
Value greater than 0 defining kernel size for embosser.
Strength
Value between 1.0 and 5.0 specifying the embossing strength
Direction
Any value of enumIGDirections specifying compass direction

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


Fragment

Group: Method

Description:

This method fragments an image into four blended images which move diagonally outward from the original image.

Declaration:

Sub Fragment(Page As IGPage, Displacement As Long)

Parameters:

Page
IGPage object to apply the effect to.
Displacement
Distance in pixels to move each blended image away from the original image.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


FreeDirectionalLight

Group: Method

Description:

This method changes the colors of an image according to the pattern of a sine wave. The image will appear to have regularly spaced bars of light and/or shadow overlaid on top of it.

Declaration:

Sub FreeDirectionalLight(Page As IGPage, Angle As Single, Points
As IGDataArray, Amplitude As IGDataArray, Frequency As Single,
Phase As Single, Attenuation As Single)

Parameters:

Page
IGPage object to apply the effect to.
Angle
Direction to apply the effect across the image. The value is specified as an angle in degrees and ranges from 0 to 360.
Points
Array of points containing relative light deviations along the period of the sine wave. Each value typically ranges from -1 to 1. The number of points is flexible and should be chosen based on the period length relative to the image size and desired resolution of the effect.
Amplitude
Controls the magnitude of color adjustment for each channel of the image. The number of elements of the array is typically set to the number of channels in the image. Each value should range from 0 to 2, although higher values are possible. 0 represents no change in the image color. Higher values represent more intense change. Color changes are clipped, so higher values result in a harder edge to the waveform.
Frequency
Frequency of sine wave. The value should be from 0 to 0.5. The higher the frequency, the more bars will be visible.
Phase
Phase of sine wave. The value should be from 0 to 2*PI (approximately 6.28). As the phase is changed, the alignment of the bars is changed. This can be used to line up the bars with image content or boundaries.
Attenuation
Attenuation of sine wave. The value should be from -0.01 to 0.01. Attenuation adjusts how much the amplitude of the sine wave is decreased or increased as the sine wave proceeds. It can be used to cause the lighting to fade or intensify.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


FreeRadialLight

Group: Method

Description:

This method changes the colors of an image according to the pattern of a sine wave. The image will appear to have regularly spaced bars of light and/or shadow overlaid on top of it in a radial pattern.

Declaration:

Sub FreeRadialLight(Page As IGPage, XCenter As Long, YCenter As
Long, Points, Amplitude, Frequency As Single, Phase As Single,
Attenuation As Single)

Parameters:

Page
IGPage object to apply the effect to.
XCenter
X coordinate of the center point in the image (in pixels) about which the effect is applied.
YCenter
Center point Y xoordinate in the image (in pixels) about which the effect is applied.
Points
Array of points containing relative light deviations along the period of the sine wave. Each value typically ranges from -1 to 1. The number of points is flexible and should be chosen based on the period length relative to the image size and desired resolution of the effect.
Amplitude
Controls the magnitude of color adjustment for each channel of the image. The number of elements of the array is typically set to the number of channels in the image. Each value should range from 0 to 2, although higher values are possible. 0 represents no change in the image color. Higher values represent more intense change. Color changes are clipped, so higher values result in a harder edge to the waveform.
Frequency
Frequency of sine wave. The value should be from 0 to 0.5. The higher the frequency, the more bars will be visible.
Phase
Phase of sine wave. The value should be from 0 to 2*PI (approximately 6.28). As the phase is changed, the alignment of the bars is changed. This can be used to line up the bars with image content or boundaries.
Attenuation
Attenuation of sine wave. The value should be from -0.01 to 0.01. Attenuation adjusts how much the amplitude of the sine wave is decreased or increased as the sine wave proceeds. It can be used to cause the lighting to fade or intensify.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


LensFlare

Group: Method

Description:

This method applies a lens flare effect to the image. The effect simulates a bright light, such as the sun, and some reflections within the lens. It is typically used to add a sense of drama or realism to a photographic image.

Declaration:

Sub LensFlare(Page As IGPage, xPos As Long, yPos As Long,
primaryBrightness As Single, secondaryBrightness As Single,
flareType As enumIGFXLensFlareType)

Parameters:

Page
IGPage object to apply the effect to..
xPos
X coordinate of the primary flare.
yPos
Y coordinate of the primary flare.
primaryBrightness
Brightness of the primary flare. This value should range from 0 to 1.
secondaryBrightness
Brightness of the secondary flare. This value should range from 0 to 1.
flareType
Predefined flare type to use. Determines the shape and appearance of the lens flare elements.

Return Value:

N/A

Bits Per Pixel:

RGB-based colorspaces only.

Sample:

Image Processing and Effects


MosaicTiles

Group: Method

Description:

Provides a 3D mosaic effect on the IGPage.

Declaration:

Sub MosaicTiles(pPage As IGPage, FillParams As
IGMosaicFillParams, CellParams As IGMosaicCellParams,
BorderParams As IGMosaicBorderParams, ShadowParams As
IGMosaicShadowParams)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
FillParams
Mosaic fill parameters
CellParams
Mosaic cell parameters
BorderParams
Mosaic border parameters
ShadowParams
Mosaic shadow parameters

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects

See Also:

IGPage

IGMosaicBorderParams

IGMosaicCellParams

IGMosaicFillParams

IGMosaicShadowParams


Oilify

Group: Method

Description:

This method applies an effect to an image that makes it appear similar to an oil painting.

Declaration:

Sub Oilify(Page As IGPage, BrushSize As Long)

Parameters:

Page
IGPage object to apply the effect to.
BrushSize
Brush size in pixels. As the brush size is increased, less detail is visible in the image and the effect becomes more dramatic.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


Parabola

Group: Method

Description:

Provides the effect of warping around a paraboloid on the IGPage.

Declaration:

Sub Parabola(pPage As IGPage, XCenter As Long, YCenter As Long,
XRadius As Long, YRadius As Long, Height As Single, Interpolate
As Boolean, UseFillColor As Boolean)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
XCenter
X coordinate of the center
YCenter
Y coordinate of the center
XRadius
X coordinate of the radius
YRadius
Y coordinate of the radius
Height
Distance to the screen
Interpolate
If TRUE, use interpolation; otherwise do not
UseFillColor
If TRUE, use fill color; otherwise do not

Return Value:

N/A

Bits Per Pixel:

All except bitonal if interpolation is off; All except bitonal, non-gray Indexed and Grayscale with LUT if interpolation is on.

Sample:

Image Processing and Effects

See Also:

IGPage


Pinch

Group: Method

Description:

This method pinches an image toward or away from the pinch center.

Declaration:

Sub Pinch(pPage As IGPage, XCenter As Long, YCenter As Long,
Radius As Long, Strength As Single, Interpolate As Boolean,
UseFillColor As Boolean)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
XCenter
X coordinate of the center
YCenter
Y coordinate of the center
Radius
Pinch radius
Strength
Pinch strength
Interpolate
If TRUE, use interpolation; otherwise do not
UseFillColor
If TRUE, use fill color; otherwise do not.

Return Value:

N/A

Bits Per Pixel:

All except bitonal if interpolation is off; All except bitonal, non-gray Indexed and Grayscale with LUT if interpolation is on.

Sample:

Image Processing and Effects

See Also:

IGPage


Pixelate

Group: Method

Description:

This method redraws the image referenced by pPage object using what appear to be very large pixels. It uses imageWidth and imageHeight to specify how many "apparent pixels" you want in the result. InputMode tells ImageGear what to do with the block of pixels it reads in. It lets you to compute the output of each "apparent pixel" as the average, minimum, maximum, or central pixel in the block. Giving the same value to a group of pixels can effectively reduce the image resolution, making it appear you have zoomed in on a smaller image.

When the outputMode is set to IG_RESAMPLE_OUT_CIRCLE the background color surrounding the output circles is provided by IGEffectsCtl. BackColor property.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Pixelate (pPage As IGPage, imageWidth As Long, imageHeight As
Long, inputMode As enumIGResampleInModes, outputMode As
enumIGResampleOutModes, radius As Long)

Parameters:

pPage
Reference to IGPage object for which to apply the pixelate
imageWidth
Distance between the new pixels in the horizontal direction
imageHeight
Distance between the new pixels in the vertical direction
inputMode
Any value of enumIGResampleInModes
outputMode
Any value of enumIGResampleOutModes
radius
Radius of the new pixels in pixel values in case if outputMode is set to IG_RESAMPLE_OUT_CIRCLE

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


Pointillist

Group: Method

Description:

This method applies an effect to an image that makes it appear to have been painted in the pointillism style of painting.The painted points are randomly generated, hence creating a slightly different look to the image each time the method is applied with the exact same settings.

Declaration:

Sub Pointillist(Page As IGPage, PointSize As Long, BrushType As
enumIGFXBrushType, smoothness As Long, BkColor As IGPixel)

Parameters:

Page
IGPage object to apply the effect to.
PointSize
Average size of each point (in pixels).
BrushType
Type of brush to use for each point. Determines the shape of the point.
smoothness
Smoothness factor for each point. This value typically ranges from 0 to 100.
BkColor
Specifies a background color to use. If this parameter is null, all points fit together smoothly with no gaps. If this parameter specifies a background a color, there are some occasional gaps which are set to the specified background color.

Return Value:

N/A

Bits Per Pixel:

All except bitonal; if non-gray Indexed, smoothness parameter is ignored.

Sample:

Image Processing and Effects


Posterize

Group: Method

Description:

This method reduces the number of colors in the image referenced by pPage object by creating a "staircase" in the palette. Use the Levels parameter to specify the number of steps or levels you want in the resulting image. A value of 255 means no change; a value of 20 creates 20 equally spaced "steps".

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Posterize (pPage As IGPage, Levels As Long, imageChannels As
enumIGColorChannels)

Parameters:

pPage
Reference to IGPage object for which to apply the posterize
Levels
Value between 1 and 255 specifying the number of unique colors or levels you want in the resulting image
imageChannels
IG_COLOR_COMP_RGB, IG_COLOR_COMP_R, _B, or _G values of enumIGColorChannels specifying color channels to apply the posterize operation for

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


RadialLight

Group: Method

Description:

This method changes the colors of an image according to the pattern of a sine wave. The image will appear to have regularly spaced bars of light and shadow overlaid on top of it in a radial pattern.

Declaration:

Sub RadialLight(Page As IGPage, XCenter As Long, YCenter As
Long, Amplitude As IGDataArray, Frequency As Single, Phase As
Single, Attenuation As Single)

Parameters:

Page
IGPage object to apply the effect to.
XCenter
X coordinate of the center point in the image (in pixels) about which the effect is applied.
YCenter
Y coordinate of the center point in the image (in pixels) about which the effect is applied.
Amplitude
Controls the magnitude of color adjustment for each channel of the image. The number of elements of the array is typically set to the number of channels in the image. Each value should range from 0 to 2, although higher values are possible. 0 represents no change in the image color. Higher values represent more intense change. Color changes are clipped, so higher values result in a harder edge to the waveform.
Frequency
Frequency of sine wave. The value should be from 0 to 0.5. The higher the frequency, the more bars will be visible.
Phase
Phase of sine wave. The value should be from 0 to 2*PI (approximately 6.28). As the phase is changed, the alignment of the bars is changed. This can be used to line up the bars with image content or boundaries.
Attenuation
Attenuation of sine wave. The value should be from -0.01 to 0.01. Attenuation adjusts how much the amplitude of the sine wave is decreased or increased as the sine wave proceeds. It can be used to cause the lighting to fade or intensify.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


RadialWave

Group: Method

Description:

This method provides a radial wave effect on the IGPage.

Declaration:

Sub RadialWave(pPage As IGPage, XCenter As Long, YCenter As
Long, Amplitude As Single, Frequency As Single, Phase As Single,
Attenuation As Single, Interpolate As Boolean, UseFillColor As
Boolean)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
XCenter
X coordinate of the center
YCenter
Y coordinate of the center
Amplitude
Wave amplitude
Frequency
Wave frequency
Phase
Wave phase
Attenuation
Wave attenuation
Interpolate
If TRUE, use interpolation; otherwise do not
UseFillColor
If TRUE, use fill color; otherwise do not.

Return Value:

N/A

Bits Per Pixel:

All except bitonal if interpolation is off; All except bitonal, non-gray Indexed and Grayscale with LUT if interpolation is on.

Sample:

Image Processing and Effects

See Also:

IGPage


Ripple

Group: Method

Description:

This function provides the ripple effect on the image, as if it is looked at through a relief glass. The function uses one of the prefefined ripple patterns.

Declaration:

Sub Ripple(Page As IGPage, Depth As Single, XPeriod As Long,
YPeriod As Long, RippleType As enumIGFXRipplePattern, smoothness
As Single, Invert As Boolean)

Parameters:

Page
IGPage object to apply the effect to.
Depth
Strength of the ripple effect.
XPeriod
X period of the ripple pattern, in pixels.
YPeriod
Y period of the ripple pattern, in pixels.
RippleType
Identifies a predefined ripple pattern (see enumIGFXRipplePattern).
smoothness
Specifies how much the ripple pattern should be smoothed before applying.
Invert
Inverts the ripple pattern, effectifely swapping "convex" and "concave" areas.

Return Value:

N/A

Bits Per Pixel:

All

Sample:

Image Processing and Effects


RippleFreeHand

Group: Method

Description:

This function provides the ripple effect on the image, as if it is looked at through a relief glass. The function uses a custom ripple pattern, defined as two one-dimensional arrays containing light deviations in X and Y directions.

Declaration:

Sub RippleFreeHand(Page As IGPage, XDistribution As IGDataArray,
YDistribution As IGDataArray, XPeriod As Long, XPhase As Long,
YPeriod As Long, YPhase As Long, smoothness As Single, Angle As
Single)

Parameters:

Page
IGPage object to apply the effect to.
XDistribution
Array of points containing relative light deviations along the X axis in each cell. Each value typically ranges from -1 to 1. The number of points is flexible and should be chosen based on the period length relative to the image size and desired resolution of the effect.
YDistribution
Array of points containing relative light deviations along the Y axis in each cell. Each value typically ranges from -1 to 1. The number of points is flexible and should be chosen based on the period length relative to the image size and desired resolution of the effect.
XPeriod
Horizontal period of the repeating pattern. It corresponds to number of points from the xDistribution array that should be used in the transform, and does not have to be equal to the length of the array.
XPhase
Index of the first point in the xDistribution array to be used in the transform.
YPeriod
Vertical period of the repeating pattern. It corresponds to number of points from the yDistribution array, that should be used in the transform, and does not have to be equal to the length of the array.
YPhase
Index of the first point in the yDistribution array to be used in the transform.
smoothness
Specifies how much the ripple pattern should be smoothed before applying.
Angle
Specifies the angle for the ripple pattern, in degrees. Valid range is from 0 to 360.

Return Value:

N/A

Bits Per Pixel:

All

Sample:

Image Processing and Effects


RippleTexture

Group: Method

Description:

This function provides the ripple effect on the image, as if it is looked at through a relief glass. The function uses an image as a ripple pattern. If the scaled ripple pattern image is smaller than the source image, or if offsets are greater than 0, pattern is repeated over the image.

Declaration:

Sub RippleTexture(Page As IGPage, Texture As IGPage, Depth As
Single, Scale As Single, XOffset As Long, YOffset As Long,
smoothness As Single, Invert As Boolean)

Parameters:

Page
IGPage object to apply the effect to.
Texture
IGPage object to use as a ripple pattern.
Depth
Strength of the ripple effect.
Scale
Specifies the scaling factor for pattern image.
XOffset
Horizontal offset at which the upper left corner of the ripple texture shall be placed.
YOffset
Horizontal offset at which the upper left corner of the ripple texture shall be placed.
smoothness
Specifies how much the ripple pattern should be smoothed before applying.
Invert
Inverts the ripple pattern, effectifely swapping "convex" and "concave" areas.

Return Value:

N/A

Bits Per Pixel:

All colorspaces for image, DibStd for texture. The first channel of the texture is used as ripple mask.

Sample:

Image Processing and Effects


Shear

Group: Method

Description:

This method applies a shearing effect to an image, moving the image rasters or columns according to the specified offsets.

Declaration:

Sub Shear(Page As IGPage, Points As IGDataArray, FillStyle As
enumIGShearFillStyle, Interpolate As Boolean, Vertical As
Boolean)

Parameters:

Page
IGPage object to apply shear effect to.
Points
The array of offsets to move the image by. Every offset is in the range -1 to 1. Negative values shift the raster/column to the left, while positive values shift it to the right. The number of offsets is equal to the image width or height depending on the direction of movement (horizontal or vertical).
FillStyle
Specifies how the empty image area is filled, as an enumIGShearFillStyle value.
Interpolate
If true, interpolation is used to smooth shifted pixel values.
Vertical
If true, the direction of motion is vertical. Otherwise, the direction is horizontal.

Return Value:

N/A

Bits Per Pixel:

All if interpolation is off; All except non-gray Indexed and Grayscale with LUT if interpolation is on.

Sample:

Image Processing and Effects


Solarize

Group: Method

Description:

The Solarize effect mimics the accidental exposure of photographic film to light, by inverting the colors of pixels whose lightness exceeds a given threshold. To calculate the threshold, use the following formula:

2^bpc (i.e., 24bit RGB is 8bpc, 2^8 = 256, hence the range is 0 to 256).

Declaration:

Sub Solarize(Page As IGPage, Threshold As Long)

Parameters:

Page
IGPage object to apply the effect to.
Threshold
Specifies minimum intensity at which the pixels should be inverted.

Return Value:

N/A

Bits Per Pixel:

All except bitonal, non-gray Indexed and Grayscale with LUT.

Sample:

Image Processing and Effects


Spatter

Group: Method

Description:

This method applies a spatter effect to an image, making it look as if it was painted in the impressionist style of painting. The painted points are randomly generated, hence creating a slightly different look to the image each time the method is applied with the exact same settings.

Declaration:

Sub Spatter(Page As IGPage, diffusionHor As Long, diffusionVert
As Long, smoothness As Long)

Parameters:

Page
IGPage object to apply the effect to.
diffusionHor
Factor of horizontal diffusion. The greater this value, the deeper the horizontal diffusion. Typical values range from 1 to 20.
diffusionVert
Factor of vertical diffusion. The greater this value, the deeper the vertical diffusion. Typical values range from 1 to 20.
smoothness
Smoothness factor of diffusion. Typical values range from 0 to 100.

Return Value:

N/A

Bits Per Pixel:

All.

Sample:

Image Processing and Effects


Sphere

Group: Method

Description:

This method provides warping around a sphere on the IGPage.

Declaration:

Sub Sphere(pPage As IGPage, XCenter As Long, YCenter As Long,
Radius As Long, Height As Long, Interpolate As Boolean,
UseFillColor As Boolean)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
XCenter
X coordinate of the center
YCenter
Y coordinate of the center
Radius
Sphere radius
Height
Distance to the screen
Interpolate
If TRUE, use interpolation; otherwise do not
UseFillColor
If TRUE, use fill color; otherwise do not.

Return Value:

N/A

Bits Per Pixel:

All except bitonal if interpolation is off; All except bitonal, non-gray Indexed and Grayscale with LUT if interpolation is on.

Sample:

Image Processing and Effects

See Also:

IGPage


Stitch

Group: Method

Description:

This method produces similar to Emboss effect, except that the output resembles a quilted stitch pattern.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Stitch (pPage As IGPage, Direction As enumIGDirections, Strength
As Double)

Parameters:

pPage
Reference to IGPage object for which the stitching happens
Direction
Any value of enumIGDirections specifying compass direction
Strength
Value between 0.0 and 5.0 specifying the stitching strength. A very low value will produce a gray screen with no detail

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


Twist

Group: Method

Description:

This method makes the image referenced by pPage object distorted, as though the image was being viewed through textured glass. Each square of image pixels of size Size is rotated according to Mode parameter specifying the twisting method.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Twist (pPage As IGPage, Mode As enumIGTwistModes, Size As Long)

Parameters:

pPage
Reference to IGPage object for which the twisting happens
Mode
Any value of enumIGTwistModes specifying twist method
Size
Size of squares (in pixels) to apply for twisting

Return value:

N/A

Bits Per Pixel:

8-bit gray level, 9-16-bit gray level, 24, and 32

Sample:

Ip_Fx


IGMosaicBorderParams

Type: Class

Description:

Specifies the MosaicTiles effect border Parameters.

Interface:

Class IGMosaicBorderParams

Class Members:

Color
property
The border color
Height
property
The border height
Irregularity
property
The border irregularity
Opacity
property
The border opacity
Width
property
The border width


Color

Group: Property

Description:

Specifies the mosaic border color for MosaicTiles.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read-only
Settings:
IGPixel value
Bits Per Pixel:
All except Indexed
Sample:
Image Processing and Effects


Height

Group: Property

Description:

Specifies the mosaic border height for MosaicTiles.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Any Long value
Bits Per Pixel:
All except Indexed
Sample:
Image Processing and Effects


Irregularity

Group: Property

Description:

Specifies the mosaic border irregularity for MosaicTiles.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Any Long value
Bits Per Pixel:
All except Indexed
Sample:
Image Processing and Effects


Opacity

Group: Property

Description:

Specifies the mosaic border opacity for MosaicTiles. A value of 0 specifies a completely transparent border, while a value of 100 specifies a completely opaque border.

Property Summary:

Data Type:
Single
Default Value:
1.0
Access:
Read-Write
Settings:
0.0 ... 1.0
Bits Per Pixel:
All except Indexed
Sample:
Image Processing and Effects


Width

Group: Property

Description:

Specifies the mosaic border width for MosaicTiles.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Any Long value
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


IGMosaicCellParams

Description:

Specifies the MosaicTiles effect cell Parameters.

Interface:

Class IGMosaicCellParams

Class Members:

Height
property
Specifies the cell height.
PolarCenterX
property
Specifies the polar center x-coordinate.
PolarCenterY
property
Specifies the polar center y-coordinate.
Type
property
Specifies the cell type.
Width
property
Specifies the cell width.


Height

Group: Property

Description:

Specifies the mosaic tile cell height for MosaicTiles.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Any Long value
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


PolarCenterX

Group: Property

Description:

Specifies the mosaic tile cell polar center x-coordinate for MosaicTiles.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Any Long value
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


PolarCenterY

Group: Property

Description:

Specifies the mosaic tile cell polar center y-coordinate for MosaicTiles.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Any Long value
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


Type

Group: Property

Description:

Specifies the mosaic tile cell type for MosaicTiles.

Property Summary:

Data Type:
enumIGMosaicType
Default Value:
IG_MOSAIC_CARTESIAN
Access:
Read-Write
Settings:
enumIGMosaicType
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


Width

Group: Property

Description:

Specifies the mosaic tile cell width for MosaicTiles.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read-Write
Settings:
Any Long value
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


IGMosaicFillParams

Description:

Specifies the MosaicTiles effect fill Parameters.

Interface:

Class IGMosaicFillParams

Class Members:

Color
property
Specifies the fill color.
Opacity
property
Specifies the fill opacity.


Color

Group: Property

Description:

Specifies the mosaic tile fill color for MosaicTiles.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
IGPixel
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


Opacity

Group: Property

Description:

Specifies the mosaic tile fill opacity for MosaicTiles. A value of 0 specifies that filling color is not used, while a value of 100 specifies that tile is completely covered by the filling color.

Property Summary:

Data Type:
Single
Default Value:
0.0
Access:
Read-Write
Settings:
0..1.0
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


IGMosaicShadowParams

Description:

Specifies the MosaicTiles effect shadow Parameters.

Interface:

Class IGMosaicShadowParams

Class Members:

Direction
property
Specifies the mosaic shadow direction.
Enabled
property
Specifies whether or not the mosaic shadow is enabled.
HighResolution
property
Specifies whether or not the mosaic shadow is high resolution.
Intensity
property
Specifies the mosaic shadow intensity.
Threshold
property
Specifies the mosaic shadow threshold.


Direction

Group: Property

Description:

Specifies the mosaic tile shadow direction for MosaicTiles.

Property Summary:

Data Type:
enumIGDirections
Default Value:
IG_COMPASS_NE
Access:
Read-Write
Settings:
Any enumIGDirections value
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


Enabled

Group: Property

Description:

Specifies whether or not the mosaic shadow is enabled for MosaicTiles.

Property Summary:

Data Type:
Boolean
Default Value:
FALSE
Access:
Read-Write
Settings:
TRUE, FALSE
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


HighResolution

Group: Property

Description:

Specifies whether or not the mosaic shadow is high resolution for MosaicTiles.

Property Summary:

Data Type:
Boolean
Default Value:
FALSE
Access:
Read-Write
Settings:
TRUE, FALSE
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


Intensity

Group: Property

Description:

Specifies the mosaic tile shadow intensity for MosaicTiles.

Property Summary:

Data Type:
Single
Default Value:
1.0
Access:
Read-Write
Settings:
0...100
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


Threshold

Group: Property

Description:

Specifies the mosaic tile shadow threshold for MosaicTiles.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read-Write
Settings:
Any Single valye
Bits Per Pixel:
All except indexed
Sample:
Image Processing and Effects


Effects Component Enumerations

This section of the Manual provides an alphabetized reference of enumerations defined in ImageGear Effects component:

    • enumIGBlurModes
    • enumIGDirections
    • enumIGMosaicType
    • enumIGNoiseMethods
    • enumIGResampleInModes
    • enumIGResampleOutModes
    • enumIGShearFillStyle
    • enumIGTwistModes


enumIGBlurModes

Group: Enumeration

Description:

This enumeration contains blur kernel sizes.

Values:

IG_BLUR_3
Kernel size 3
IG_BLUR_5
Kernel size 5


enumIGDirections

Group: Enumeration

Description:

This enumeration contains general purpose compass directions.

Values:

IG_COMPASS_N
North
IG_COMPASS_NE
North-East
IG_COMPASS_E
East
IG_COMPASS_SE
South-East
IG_COMPASS_S
South
IG_COMPASS_SW
South-West
IG_COMPASS_W
West
IG_COMPASS_NW
North-West


enumIGFXBrushType

Group: Enumeration

Description:

This enumeration specifies types of the brush for Pointillist effect.

Values:

IG_BRUSHTYPE_POINT
Each point is a randomly shaped polygon whose shape approximates a paint brush contacting the canvas.
IG_BRUSHTYPE_STICKER
Each point is a circle.


enumIGFXLensFlareType

Group: Enumeration

Description:

This enumeration specifies the types of LensFlare effect.

Values:

IG_FLARETYPE_ZOOM50_300
Telephoto lens effect
IG_FLARETYPE_DIGITAL
Hexagonal flare
IG_FLARETYPE_RAINBOW
Rainbow flare
IG_FLARETYPE_PRIME35mm
Analog 35 mm film camera effect


enumIGFXRipplePattern

Group: Enumeration

Description:

This enumeration specifies predefined patterns for the Ripple effect. Please see Ripple for reference.

Values:

IG_RIPPLE_PATTERN_0
Ripple pattern 0
IG_RIPPLE_PATTERN_1
Ripple pattern 1
IG_RIPPLE_PATTERN_2
Ripple pattern 2
IG_RIPPLE_PATTERN_3
Ripple pattern 3
IG_RIPPLE_PATTERN_4
Ripple pattern 4
IG_RIPPLE_PATTERN_5
Ripple pattern 5


enumIGMosaicType

Group: Enumeration

Description:

Specifies the types of Mosaic.

Values:

IG_MOSAIC_CARTESIAN
0
Cartesian
IG_MOSAIC_POLAR
1
Polar
IG_MOSAIC_SPIDERWEB
2
Spiderweb


enumIGNoiseMethods

Group: Enumeration

Description:

This enumeration contains noise methods for IGEffectsCtl. AddNoise.

Values:

IG_NOISE_LINEAR
Linear method
IG_NOISE_GAUSSIAN
Gaussian method


enumIGResampleInModes

Group: Enumeration

Description:

This enumeration contains input modes for IGEffectsCtl. Pixelate method.

Values:

IG_RESAMPLE_IN_AVE
Average
IG_RESAMPLE_IN_MIN
Min
IG_RESAMPLE_IN_MAX
Max
IG_RESAMPLE_IN_CENTER
Center


enumIGResampleOutModes

Group: Enumeration

Description:

This enumeration contains output modes for IGEffectsCtl. Pixelate method.

Values:

IG_RESAMPLE_OUT_SQUARE
Square
IG_RESAMPLE_OUT_CIRCLE
Circle


enumIGShearFillStyle

Group: Enumeration

Description:

This enumeration specifies Shear effect filling styles. Please see Shear reference.

Values:

IG_IP_SHEAR_NOCHANGE
Empty area remains unchanged.
IG_IP_SHEAR_FILLCOLOR
Empty area is filled with the specified color.
IG_IP_SHEAR_REPEATEDGE
Empty area is filled with the first or last raster color.
IG_IP_SHEAR_REPEATRASTER
The raster is repeated periodically across the empty area.


enumIGTwistModes

Group: Enumeration

Description:

This enumeration contains rotation modes for IGEffectsCtl. Twist method.

Values:

IG_TWIST_90
90
IG_TWIST_180
180
IG_TWIST_270
270
IG_TWIST_RANDOM
Random


ImageGear Formats Component API Reference

ImageGear Formats Component API Reference

ImageGear Formats component provides image loading/saving operations for all other ImageGear components. It exposes the following objects:

IGBatchPreLoadParams
Provides a set of options to batch the file before loading
IGBatchPreSaveParams
Provides a set of options to batch the document before saving
IGCompressionsInfo
Provides info about all compression types available in IG
IGControlParameter
Provides info about a single format control parameter
IGDocumentInfo
Provides information about a document
IGFormatIDCollection
Implements continuous collection of format IDs supported by IG
IGFormatPageInfo
Provides information about a single page
IGFormatParams
Provides access to all control parameters for the given format
IGFormatsCtl
The main control that provides access for all other formats objects and common formats properties/methods
IGFormatsSettings
Provides a common information about IG formats
IGImageChannelInfo
Provides information about image channel as it is stored in the file in its original form
IGImageTileInfo
Provides information about image tile
IGIOFile
Describes a file location for loading/saving operations
IGIOMemory
Describes a memory location for loading/saving operations
IGIOStream
Describes a stream location for loading/saving operations
IGIOURL
Describes URL location for loading/saving operations
IGLoadCroppingOptions
Describes cropping options for loading operations
IGLoadOptions
Provides a set of all options for loading operations
IGLoadRawOptions
Provides an access to options for raw image loading
IGLoadReductionOptions
Describes reduction options for loading operations
IGLoadResizingOptions
Describes resizing options for loading operations
IGMemFile
Provides an access to the memory buffer
IGMetadataItem
Describes an item of metadata used by some graphics formats
IGSaveFormatsInfo
Provides info about all save formats available in IG
IGSaveOptions
Provides a set of all options for saving operations
IGSaveThumbnailOptions
Defines thumbnail save options

The following interfaces that don't have corresponding objects are defined in ImageGear Formats component:

IIGFormats
Base interface for the IGFormatsCtl control
IIGIOLocation
Base interface for IGIOFile, IGIOStream, IGIOMemory, IGIOURL

The following enumerations are used in ImageGear Formats component:

enumIGBatchOptions
Identifies the options for batch conversion
enumIGCompressions
Identifies the different format compression schemes
enumIGConversionCommands
Identifies the commands for file conversion
enumIGConversionOptions
Identifies the options for file conversion
enumIGDocAccessModes
reserved for the future
enumIGDocSaveModes
reserved for the future
enumIGFillOrder
Identifies the raw bit order
enumIGFltrFormatFlags
Identifies the format flags such as DETECTSUPPORT, PAGEREADSUPPORT and other
enumIGFormats
Identifies the formats supported by IG
enumIGFormatsObjType
Identifies all types of creatable objects
enumIGHTTPVerbs
currently ignored
enumIGImageChannelType
Identifies the different types of image channel
enumIGInetServices
Identifies the Inet service for IGIOURL
enumIGIOLocationType
Identifies a type of the location for loading/saving operations
enumIGJPGType
Identifies JPEG saving types.
enumIGMETADItemType
Identifies the type of the metadata item
enumIGPageSaveModes
Identifies the page save modes such as overwrite, append
enumIGSaveFormats
Identifies the formats available for saving
enumIGSysDataType
Identifies the IG data types

Below is an alphabetized reference of ImageGear Formats interfaces, control, objects and theirs API (properties, methods, and events).


IGBatchPreLoadParams

Group: Object

Description:

Provides a set of options to batch the file before loading.

See also BatchBeforeLoad event and ConvertBatch method.

Interface:

IIGBatchPreLoadParams

Class Members:

FileName
property
Provides the name of file to be loaded
ID
property
Provides ID passed to ConvertBatch method


FileName

Group: Property

Description:

This property provides the name of file to be loaded.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
path to the file to be loaded
Bits Per Pixel:
N/A
Sample:
None


ID

Group: Property

Description:

This property provides the name of file to be loaded.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any integer value
Bits Per Pixel:
N/A
Sample:
None


IGBatchPreSaveParams

Group: Object

Description:

Provides a set of options to batch the page of the document before saving.

See also BatchBeforeSave event and ConvertBatch method.

Interface:

IIGBatchPreSaveParams

Class Members:

Page
property
Provides the reference to IGPage object
PageNum
property
Provides the number of page to be saved
ID
property
Provides ID passed to ConvertBatch method


Page

Group: Property

Description:

This property provides the reference to IGPage object.

Property Summary:

Data Type:
IGPage
Default Value:
N/A
Access:
Read only
Settings:
IIGPage interface
Bits Per Pixel:
N/A
Sample:
None


PageNum

Group: Property

Description:

This property provides the number of page to be saved.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any integer value
Bits Per Pixel:
N/A
Sample:
None


ID

Group: Property

Description:

Provides ID passed to ConvertBatch method.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any integer value
Bits Per Pixel:
N/A
Sample:
None


IGCompressionsInfo

Group: Object

Description:

Provides info about all compression types available in ImageGear.

Interface:

IIGCompressionsInfo

Class Members:

Count
property
Count of all supported compressions
Item
property
Array of all supported compression IDs


Count

Group: Property

Description:

This property provides a count of all supported compressions.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any positive long value
Bits Per Pixel:
N/A
Sample:
Core


Item

Group: Indexed property

Description:

This indexed property provides an array of all supported compression IDs.

Property Summary:

Data Type:
enumIGCompressions
Default Value:
IG_COMPRESSION_NONE
Access:
Read only
Settings:
any enumIGCompressions value
Bits Per Pixel:
N/A
Sample:
Core


IGControlParameter

Group: Object

Description:

This object provides info about a single format control parameter.

Interface:

IIGControlParameter

Class Members:

DefaultValue
property
default value of the control parameter
Name
property
name of the control parameter
Value
property
value of the control parameter


DefaultValue

Group: Property

Description:

This property provides a default value of the control parameter.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only
Settings:
Valid control parameter value depending on parameter type
Bits Per Pixel:
N/A
Sample:
Core


Name

Group: Property

Description:

This property gets/sets the name of the control parameter.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read/Write
Settings:
Valid control parameter name
Bits Per Pixel:
N/A
Sample:
Core


Value

Group: Property

Description:

This property provides a value of the control parameter.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only
Settings:
Valid control parameter value depending on parameter type
Bits Per Pixel:
N/A
Sample:
Core


IGDocumentInfo

Group: Object

Description:

This object provides the info about opened document, that is, the document assocated with i/o location.

Interface:

IIGDocumentInfo

Class Members:

Location
property
i/o location the document associated with
PageCount
property
page count of the opened document


Location

Group: Property

Description:

This property provides an i/o location the document associated with.

Property Summary:

Data Type:
IIGIOLocation
Default Value:
N/A
Access:
Read only
Settings:
IIGIOLocation interface
Bits Per Pixel:
N/A
Sample:
Core


PageCount

Group: Property

Description:

This property provides a count of pages of the document associated with i/o location.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Valid page count
Bits Per Pixel:
N/A
Sample:
Core


IGFormatIDCollection

Group: Object

Description:

Implements continuous collection of format IDs supported by ImageGear.

Interface:

IIGFormatIDCollection

Class Members:

Count
property
count of items in the collection
Item
property
collection of format IDs
RemoveItem
method
removes item from the collection and decrements Count


Count

Group: Property

Description:

This property provides a count of items in the collection.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Valid item count
Bits Per Pixel:
N/A
Sample:
Core


Item

Group: Indexed property

Description:

This indexed property gets/sets a collection of Format IDs. Index can be [0.. Count-1] for "get" and [0.. Count] for "set". Putting an item at the position Count appends the item to the collection and increments the Count value.

Property Summary:

Data Type:
enumIGFormats
Default Value:
N/A
Access:
Read/Write
Settings:
any enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


RemoveItem

Group: Method

Description:

Removes item from the collection and decrements the Count value. Index can be [0.. Count-1].

Declaration:

RemoveItem(Index as Long)

Parameters:

Index
Zero-based index of the item to be removed

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGFormatPageInfo

Group: Object

Description:

Provides info about a single page .

Interface:

IIGFormatPageInfo

Class Members:

BitDeph
property
Image bit depth
ChannelCount
property
count of Image channel
ColorSpace
property
Image color space
Compression
property
Image compression
DIBInfo
property
Image DIB info
Format
property
Image format
ImageChannelInfo
property
Info about Image channels
ImageHeight
property
Image height
ImageResolution
property
Image resolution
ImageTileInfo
property
Info about image tiles
ImageWidth
property
Image width
TileCount
property
count of image tiles


BitDeph

Group: Property

Description:

This property provides an image's bit depth.

Property Summary:

Data Type:
long
Default Value:
N/A
Access:
Read only
Settings:
valid Image bit depth
Bits Per Pixel:
N/A
Sample:
Core


ChannelCount

Group: Property

Description:

This property provides a count of the image channels.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
0 as for now
Bits Per Pixel:
N/A
Sample:
Core


ColorSpace

Group: Property

Description:

This property provides an image color space.

Property Summary:

Data Type:
enumIGColorSpaces
Default Value:
N/A
Access:
Read only
Settings:
enumIGColorSpaces value
Bits Per Pixel:
N/A
Sample:
Core


Compression

Group: Property

Description:

This property provides an image compression.

Property Summary:

Data Type:
enumIGCompressions
Default Value:
N/A
Access:
Read only
Settings:
any enumIGCompressions value
Bits Per Pixel:
N/A
Sample:
Core


DIBInfo

Group: Property

Description:

This property provides an info about the image DIB.

Property Summary:

Data Type:
IGDIBInfo
Default Value:
N/A
Access:
Read only
Settings:
IGDIBInfo object interface
Bits Per Pixel:
N/A
Sample:
Core


Format

Group: Property

Description:

This property provides an image format.

Property Summary:

Data Type:
enumIGFormats
Default Value:
N/A
Access:
Read only
Settings:
enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


ImageChannelInfo

Group: Indexed property

Description:

This indexed property provides an info about all image channels. Its range is [0.. ChannelCount-1].

Property Summary:

Data Type:
IGImageChannelInfo
Default Value:
N/A
Access:
Read only
Settings:
IGImageChannelInfo object interface
Bits Per Pixel:
N/A
Sample:
Core


ImageHeight

Group: Property

Description:

This property provides an image's height in pixels.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
valid Image height
Bits Per Pixel:
N/A
Sample:
Core


ImageResolution

Group: Property

Description:

This property provides an info about image resolution.

Property Summary:

Data Type:
IGImageResolution
Default Value:
N/A
Access:
Read only
Settings:
IGImageResolution object interface
Bits Per Pixel:
N/A
Sample:
Core


ImageTileInfo

Group: Property

Description:

This property provides an info about all image's tiles.

Property Summary:

Data Type:
IGImageTileInfo
Default Value:
N/A
Access:
Read only
Settings:
IGImageTileInfo object interface
Bits Per Pixel:
N/A
Sample:
Core


ImageWidth

Group: Property

Description:

This property provides an image's width in pixels.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
valid Image width
Bits Per Pixel:
N/A
Sample:
Core


TileCount

Group: Property

Description:

This property provides a count of the image's tiles.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Valid image tile count
Bits Per Pixel:
N/A
Sample:
Core


IGFormatParams

Group: Object

Description:

This object provides info about the format.

Interface:

IIGFormatParams

Interface Members:

DefaultExt
property
This property provides default format extension
DetectionEnabled
property
This property tells whether format detection is enabled
DetectionPriority
property
This property tells the detection priority for the format
Flags
property
This property provides different format flags
FullName
property
This property provides the format full name
ID
property
This property provides the format ID
Name
property
This property provides the format short name
ParamCount
property
This property provides a total count of the control parameters for the given format
GetCompressions
method
This method returns a list of the compressions supported by the format
GetCompressionsForPage
method
This method returns a list of compressions for the specified page
GetParamCopy
method
This method returns an info about format control parameter by its name
GetParamCopyByIndex
method
This method returns an info about format control parametr by its index
UpdateParamFrom
method
This method updates the format control parameter


DefaultExt

Group: Property

Description:

This property provides default format extension.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Valid format extension
Bits Per Pixel:
N/A
Sample:
Core


DetectionEnabled

Group: Property

Description:

This property tells whether format detection is enabled.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True to enable format autodetection, False to disable
Bits Per Pixel:
N/A
Sample:
Core


DetectionPriority

Group: Property

Description:

This property detection priority for the format. The higher the detection priority, the lower the format index is in the format table.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
0 - (count of formats - 1)
Bits Per Pixel:
N/A
Sample:
Core


Flags

Group: Property

Description:

This property provides the format filter flags such as IG_FLTR_DETECTSUPPORT, IG_FLTR_PAGEREADSUPPORT and others.

Property Summary:

Data Type:
enumIGFltrFormatFlags
Default Value:
N/A
Access:
Read only
Settings:
combination of enumIGFltrFormatFlags values
Bits Per Pixel:
N/A
Sample:
Core


FullName

Group: Property

Description:

This property provides the format full name like "Microsoft Windows Bitmap", "Tagged Image File Format" and so on.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Valid full format name
Bits Per Pixel:
N/A
Sample:
Core


GetCompressions

Group: Method

Description:

This method creates new IGCompressionsInfo object, containing an information about all available compressions for the format.

Declaration:

GetCompressions() As IGCompressionsInfo

Return value:

IGCompressionsInfo object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetCompressionsForPage

Group: Method

Description:

This method creates new IGCompressionsInfo, object containing an information about compressions that are applicable for the given IGPage object.

Declaration:

GetCompressionsForPage(Page as IGPage) as IGCompressionsInfo

Parameters:

Page
Page for which the compressin list is got.

Return value:

IGCompressionsInfo object.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetParamCopy

Group: Method

Description:

This method creates new IGControlParameter object, containing an information about the control parameter specified by name.

Declaration:

GetParamCopy((Name As String) As IGControlParameter

Parameters:

Name
Name of the control parameter for which the information is obtained.

Return value:

IGControlParameter object

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetParamCopyByIndex

Group: Method

Description:

Creates new IGControlParameter object, containing an information about a control parameter specified by index.

Declaration:

GetParamCopyByIndex(Index As Long) As IGControlParameter

Parameters:

Index
Index of the control parameter for which the information is obtained.

Return value:

IGControlParameter object

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ID

Group: Property

Description:

This property provides the format ID.

Property Summary:

Data Type:
enumIGFormats
Default Value:
N/A
Access:
Read only
Settings:
Valid format value. See enumIGFormats
Bits Per Pixel:
N/A
Sample:
Core


Name

Group: Property

Description:

Format short name like "BMP", "TIFF" and so on.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
Valid format name
Bits Per Pixel:
N/A
Sample:
Core


ParamCount

Group: Property

Description:

This property provides a total count of control parameters for the given format.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
control parameter count
Bits Per Pixel:
N/A
Sample:
Core


UpdateParamFrom

Group: Method

Description:

This method updates the format control parameter from IGControlParameter object

Declaration:

UpdateParamFrom(CtrlPatam as IGControlParameter)

Parameters:

CtrlPatam
IGControlParameter object to update control parameter from.

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGFormatsCtl

Group: Control

Description:

The main ImageGear Formats control. Should be included into every application using load/save ImageGear operations. The instance of IGFormatsCtl should be either added to the form during design time, or created dynamically during run time. All other Formats objects are either contained inside IGFormatsCtl or created using its methods.

Default interface:

IIGFormatsCtl extends IIGFormats

Class Members:

ComponentInfo
property
Provides access to the IGComponentInfo object for IGFormatsCtl. The IGComponentInfo object identifies the particular version of IGFormatsCtl installed in the computer.
ComponentInterface
property
Provides access to the IIGComponent interface for IGFormatsCtl. Used in IGCoreCtl . AssociateComponent call.
BatchBeforeLoad
event
This event is fired by IGFormatsCtl control to batch the file before load operation.
BatchBeforeSave
event
This event is fired by IGFormatsCtl control to batch the page of the document before save operation.
IGMetadataItemAdd
event
This event is fired by IGFormatsCtl control to get the new metadata item during save operations. IGMetadataItem parameter should be filled by the user.
IGMetadataItemRead
event
This event is fired by IGFormatsCtl control to read the new metadata item during load operations
IGMetadataItemWrite
event
This event is fired by IGFormatsCtl control to get the new metadata item value during save operations. A new IGMetadataItem object is created and filled with old metadata item info that can be changed.


BatchBeforeLoad

Group: Event

Description:

This batch conversion event, if enabled, is fired by IGFormatsCtl control to batch the file before load operation. Params parameter should be determined using IGBatchPreLoadParams object. This event can be turned on/off using UseEvents parameter of IIGFormats. ConvertBatch method.

Declaration:

Sub IGFormatsCtl1_BatchBeforeLoad(ByVal Params As
IIGBatchPreLoadParams)

Parameters:

Params
This parameter should be determined using IGBatchPreLoadParams object.


BatchBeforeSave

Group: Event

Description:

This batch conversion event, if enabled, is fired by IGFormatsCtl control to batch the page of the document before save operation. Params parameter should be determined using IGBatchPreSaveParams object. This event can be turned on/off using UseEvents parameter of IIGFormats. ConvertBatch method.

Declaration:

Sub IGFormatsCtl1_BatchBeforeSave(ByVal Params As
IIGBatchPreSaveParams)

Parameters:

Params
This parameter should be determined using IGBatchPreSaveParams object.


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGFormatsCtl. The IGComponentInfo object identifies the particular version of IGFormatsCtl installed in the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGFormatsCtl. Used in IGCoreCtl . AssociateComponent call.

Property Summary:

Data Type:
IIGComponent
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


IGMetadataItemAdd

Group: Event

Description:

This metadata event, if enabled, it's fired by IGFormatsCtl control to get the new metadata item during save operations. MetadataItem parameter should be filled by the user. The user have to set IsLastItem property of IGMetadataItem object to True, if there is no metadata to add. This event can be turned on/off using the IIGFormats.Settings. MetaDataEnabled property.

Declaration:

Sub IGFormatsCtl1_IGMetadataItemAdd(ByVal MetadataItem As
IIGMetaDataItem)

Parameters:

MetadataItem
An object that should be filled with the new metadata info


IGMetadataItemRead

Group: Event

Description:

This metadata event, if enabled, is fired by IGFormatsCtl control to read the new metadata item during load operations. A new IGMetadataItem object is created and filled with the info each time the event is fired. This event can be turned on/off using the IIGFormats.Settings. MetaDataEnabled property.

Declaration:

Sub IGFormatsCtl1_IGMetadataItemRead(ByVal MetadataItem As
IIGMetaDataItem)

Parameters:

MetadataItem
An object containing info about a metadata item being read


IGMetadataItemWrite

Group: Event

Description:

This metadata event, if enabled, is fired by IGFormatsCtl control to get the new metadata item value during save operations. A new IGMetadataItem object is created and filled with the old metadata item info that can be changed. The user have to set IsLastItem property of IGMetadataItem object to True if there is no longer metadata to write. This event can be turned on/off using the IIGFormats.Settings. MetaDataEnabled property.

Declaration:

Sub IGFormatsCtl1_IGMetadataItemWrite(ByVal MetadataItem As
IIGMetaDataItem)

Parameters:

MetadataItem
An object containing info about a metadata item to be written


IGFormatsSettings

Group: Object

Description:

This object provides access to the common formats settings.

Default interface:

IIGFormatsSettings

Interface Members:

Format
property
This property provides an access to the format array items
FormatCount
property
This property provides a count of available formats
MetaDataEnabled
property
This property tells whether the format matadata enabled for reading and writing
GetCompressions
method
This method returns all available compressions for all formats
GetCompressionsForPage
method
This method returns all compressions compatible with the given page.
GetFormatRef
method
This method returns info about all format control parameters
GetSaveFormats
method
This method returns all available saving formats
GetSaveFormatsForDocument
method
This method returns list of the compressions supported by the format
GetSaveFormatsForPage
method
This method returns list of the compressions supported by the format


Format

Group: Indexed property

Description:

This property provides an access to the format parameters information by the index of the format.

Property Summary:

Data Type:
IGFormatParams
Default Value:
N/A
Access:
Read only
Settings:
IGFormatParams object interface
Bits Per Pixel:
N/A
Sample:
Core


FormatCount

Group: Property

Description:

This property gets a total count of all available formats.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
valid format count
Bits Per Pixel:
N/A
Sample:
Core


MetaDataEnabled

Group: Property

Description:

This property tells whether the metadata is available. If metadata is available, then metadata events are fired during reading and writing an image.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read / Write
Settings:
True - metadata enabled, False - disabled
Bits Per Pixel:
N/A
Sample:
Core


GetCompressions

Group: Method

Description:

This method returns all available compressions for all formats.

Declaration:

GetCompressions() as IGCompressionsInfo

Return value:

Interface describing all available compressions

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetCompressionsForPage

Group: Method

Description:

This method returns all compressions compatible with the given page.

Declaration:

GetCompressionsForPage(Page As IGPage) As IGCompressionsInfo

Parameters:

Page
the page object.

Return value:

Interface, describing the compressions that are compatible with the page. If the page is not valid, then info about all available compressions is returned

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetFormatRef

Group: Method

Description:

This method returns an interface describing the format by its ID.

Declaration:

GetFormatRef(FormatID As enumIGFormats) As IGFormatParams

Parameters:

FormatID
Identifier of the format which info is retrieved about.

Return value:

Interface describing the format

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetSaveFormats

Group: Method

Description:

This method returns an interface, describing all available saving formats.

Declaration:

GetSaveFormats() As IGSaveFormatsInfo

Return value:

Interface describing all saving formats

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetSaveFormatsForDocument

Group: Method

Description:

This method returns info about all saving formats compatible with the given document.

Declaration:

GetSaveFormatsForDocument(Doc As IGDocument, Formats As
IGFormatIDCollection) As IGSaveFormatsInfo

Parameters:

Doc
The document object.
Formats
Collection of format IDs supported by ImageGear.

Return value:

The object IGSaveFormatsInfo, describing saving formats compatible with document. If the document is not valid then info about all available saving formats is returned

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetSaveFormatsForPage

Group: Method

Description:

This method returns info about all saving formats compatible with the given page.

Declaration:

GetSaveFormatsForPage(Page As IGPage, Formats As
IGFormatIDCollection) As IGSaveFormatsInfo

Parameters:

Page
The page object.
Formats
Collection of format IDs supported by ImageGear.

Return value:

The object IGSaveFormatsInfo, describing saving formats compatible with page. If the page is not valid then info about all available saving formats is returned

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGImageChannelInfo

Group: Object

Description:

This object provides information about image channel that is stored in the file in its original form.

Interface:

IIGImageChannelInfo

Class Members:

Depth
property
This property provides the bit depth of the channel
Type
property
This property provides the type of the channel (Red, Green, Blue, or Alpha)


Depth

Group: Property

Description:

This property provides the bit depth of the channel.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
valid bit depth
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property provides the type of the channel (Red, Green, Blue, or Alpha).

Property Summary:

Data Type:
enumIGImageChannelType
Default Value:
N/A
Access:
Read only
Settings:
any enumIGImageChannelType value
Bits Per Pixel:
N/A
Sample:
Core


IGImageTileInfo

Group: Object

Description:

THis object provides an information about the image tile.

Interface:

IIGImageTileInfo

Class Members:

Height
property
This property returns an image tile height
Width
property
This property returns an image tile width


Height

Group: Property

Description:

This property returns an image tile height.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
valid tile height
Bits Per Pixel:
N/A
Sample:
Core


Width

Group: Property

Description:

This property returns an image tile width in pixels.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
valid tile width
Bits Per Pixel:
N/A
Sample:
Core


IGIOFile

Group: Object

Description:

This object provides an information about a disk file location.

Interface:

IIGIOFile extends IIGIOLocation

Class Members:

FileName
property
This get/set property provides the path to the file disk location


FileName

Group: Property

Description:

This get/set property provides the path to the file disk location.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read / Write
Settings:
valid file name
Bits Per Pixel:
N/A
Sample:
Core


IGIOMemory

Group: Object

Description:

This object provides an information about a memory location.

Interface:

IIGIOMemory extends IIGIOLocation

Class Members:

Buffer
property
This property gets IGMemFile object, describing memory buffer


Buffer

Group: Property

Description:

This property gets IGMemFile object, describing memory buffer.

Property Summary:

Data Type:
IGMemFile
Default Value:
N/A
Access:
Read only
Settings:
IGMemFile object interface
Bits Per Pixel:
N/A
Sample:
Core


IGIOStream

Group: Object

Description:

This object provides an information about a stream location.

Interface:

IIGIOStream extends IIGIOLocation

Class Members:

Handle
property
This property tells about the stream handle


Handle

Group: Property

Description:

This property tells about the stream handle.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
Valid stream handle
Bits Per Pixel:
N/A
Sample:
Core


IGIOURL

Group: Object

Description:

This object provides an information about an URL location.

Interface:

IIGIOURL extends IIGIOLocation

Class Members:

AccessType
property
Type of internet access
Flags
property
Various internet open flags
HostName
property
Host name of an internet server
HTTPSecure
property
If true then the secure transaction semantics are used for HTTP requests
HTTPVerb
property
Determines whether to save to file or the web script
InetService
property
Type of service to access
Password
property
Password to log on
ProxyBypass
property
Optional list of host names or IP addresses, or both, that should not be routed through the proxy
ProxyName
property
Name of the proxy server
ServerPort
property
Number of TCP/IP port on the server to connect to
URLPath
property
URL path
UserName
property
User name to log on


AccessType

Group: Property

Description:

This get/set property provides the type of internet access.

Property Summary:

Data Type:
Long
Default Value:
INTERNET_OPEN_TYPE_DIRECT
Access:
Read / Write
Settings:
INTERNET_OPEN_TYPE_ constants defined in wininet.h. Possible values:
  • INTERNET_OPEN_TYPE_PRECONFIG = 0
  • INTERNET_OPEN_TYPE_DIRECT = 1
  • INTERNET_OPEN_TYPE_PROXY = 3
  • INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4
Bits Per Pixel:
N/A
Sample:
None


Flags

Group: Property

Description:

This get/set property provides an Internet open flags.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Combination of the following values defined in wininet.h:
  • INTERNET_FLAG_ASYNC = 0x10000000
  • INTERNET_FLAG_FROM_CACHE = 0x01000000
Bits Per Pixel:
N/A
Sample:
None


HostName

Group: Property

Description:

This get/set property provides the host name of an internet server.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read / Write
Settings:
Valid host name of the internet server
Bits Per Pixel:
N/A
Sample:
None


HTTPSecure

Group: Property

Description:

This get/set property tells whether to use the secure transaction semantics for HTTP requests.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read / Write
Settings:
True - the secure transaction semantics for HTTP requests are used, False - are not .
Bits Per Pixel:
N/A
Sample:
None


HTTPVerb

Group: Property

Description:

This property determines whether to save to file or the web script.

Please see enumIGHTTPVerbs for possible values.

NOTE: This parameter is used only for INTERNET_SERVICE_HTTP.

Property Summary:

Data Type:
enumIGHTTPVerbs
Default Value:
N/A
Access:
Read / Write
Settings:
enumIGHTTPVerbs value.
Bits Per Pixel:
N/A
Sample:
None


InetService

Group: Property

Description:

This get/set property provides the type of Inet service to access.

Property Summary:

Data Type:
enumIGInetServices
Default Value:
IG_INETSERV_HTTP
Access:
Read / Write
Settings:
Valid Inet service. See enumIGInetServices
Bits Per Pixel:
N/A
Sample:
None


Password

Group: Property

Description:

This get/set property provides the Password to log on.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read / Write
Settings:
Valid password.
Bits Per Pixel:
N/A
Sample:
None


ProxyBypass

Group: Property

Description:

This get/set property provides an optional list of host names or IP addresses, or both, that should not be routed through the proxy server.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read / Write
Settings:
The list of host names or IP addresses, or both. Can be empty.
Bits Per Pixel:
N/A
Sample:
None


ProxyName

Group: Property

Description:

This get/set property provides the name of the proxy server.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read / Write
Settings:
A valid proxy server name. In the string is empty then the proxy information is read from the registry.
Bits Per Pixel:
N/A
Sample:
None


ServerPort

Group: Property

Description:

This get/set property provides the number of TCP/IP port on the server to connect to.

Property Summary:

Data Type:
Long
Default Value:
80
Access:
Read / Write
Settings:
Valid server port.
Bits Per Pixel:
N/A
Sample:
None


URLPath

Group: Property

Description:

This get/set property provides an URL path of an image file.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read / Write
Settings:
Valid URL name
Bits Per Pixel:
N/A
Sample:
None


UserName

Group: Property

Description:

This get/set property provides the user name to log on.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read / Write
Settings:
Valid user name.
Bits Per Pixel:
N/A
Sample:
None


IGLoadCroppingOptions

Group: Object

Description:

This object provides an access to the cropping options during the load operations.

Interface:

IIGLoadCroppingOptions

Class Members:

Enabled
property
Enables/disables cropping an image when loading
Rectangle
property
Cropping rectangle of the loaded image


Enabled

Group: Property

Description:

This property enables/disables the cropping of an image to load.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read / Write
Settings:
True - cropping is enabled, False - disabled
Bits Per Pixel:
N/A
Sample:
Core


Rectangle

Group: Property

Description:

This property gets the new rectangle of the loaded image.

Property Summary:

Data Type:
IGRectangle
Default Value:
N/A
Access:
Read only
Settings:
IGRectangle object interface
Bits Per Pixel:
N/A
Sample:
Core


IGLoadOptions

Group: Object

Description:

This object provides a set of all options for loading operations

Default interface:

IIGLoadOptions

Interface Members:

Cropping
property
Access to the cropping options if ThumbnailLoading is True
Format
property
Determines the format of the file to load
RawOptions
property
Provides the loading options of the raw image to load
Reduction
property
Access to reduction options if ThumbnailLoading is True
Resizing
property
Access to resizing options if ThumbnailLoading is True
ThumbnailLoading
property
Enables/disables loading of a thumbnail version of an image


Cropping

Group: Property

Description:

This property gets the access to cropping options, if ThumbnailLoading is False.

Property Summary:

Data Type:
IGLoadCroppingOptions
Default Value:
N/A
Access:
Read only
Settings:
IGLoadCroppingOptions object interface
Bits Per Pixel:
N/A
Sample:
Core


Format

Group: Property

Description:

This property determines the format of the file to load.

Property Summary:

Data Type:
enumIGFormats
Default Value:
IG_FORMAT_UNKNOWN
Access:
Read / Write
Settings:
any enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


RawOptions

Group: Property

Description:

If the Format property is equal to IG_FORMAT_RAW, then the RawOptions object must contain all attributes for raw loading. The image offset is specified by IGIOLocation. ImageOffset property in this case

Property Summary:

Data Type:
IGLoadRawOptions
Default Value:
N/A
Access:
Read only
Settings:
IGLoadRawOptions object interface
Bits Per Pixel:
N/A
Sample:
Core


Reduction

Group: Property

Description:

This property gets the access to reduction options, if ThumbnailLoading is False.

Property Summary:

Data Type:
IGLoadReductionOptions
Default Value:
N/A
Access:
Read only
Settings:
IGLoadReductionOptions object interface
Bits Per Pixel:
N/A
Sample:
Core


Resizing

Group: Property

Description:

This property gets the access to resizing options, if ThumbnailLoading is False.

Property Summary:

Data Type:
IGLoadResizingOptions
Default Value:
N/A
Access:
Read only
Settings:
IGLoadResizingOptions object interface
Bits Per Pixel:
N/A
Sample:
Core


ThumbnailLoading

Group: Property

Description:

This property determines whether the loading of thumbnailed image is enabled, or disabled.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read / Write
Settings:
True - enable loading thumbnailed image, False - disable
Bits Per Pixel:
N/A
Sample:
Core


IGLoadRawOptions

Group: Object

Description:

This object provides an access to options for raw image loading, e.g. loading a CCITT (Group3/Group4) compressed data stream without a header.

Interface:

IIGLoadRawOptions

Class Members:

BitDepth
property
This get/set property determines the bit depth of the raw image.
Compression
property
This get/set property determines the compression of the image.
FillOrder
property
This get/set property specifies byte order in the raw.
ImageHeight
property
This get/set property determines the height of the raw image.
ImageWidth
property
This get/set property determines the width of the raw image.


BitDepth

Group: Property

Description:

This property determines the bit depth of the raw image.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
Bit depth of the image
Bits Per Pixel:
N/A
Sample:
Core


Compression

Group: Property

Description:

This property determines the compression type of the image.

Property Summary:

Data Type:
enumIGCompressions
Default Value:
N/A
Access:
Read / Write
Settings:
enumIGCompressions value
Bits Per Pixel:
N/A
Sample:
Core


FillOrder

Group: Property

Description:

This property specifies byte order in the raw.

Property Summary:

Data Type:
enumIGFillOrder
Default Value:
N/A
Access:
Read / Write
Settings:
enumIGFillOrder value
Bits Per Pixel:
N/A
Sample:
Core


ImageHeight

Group: Property

Description:

This property determines the height of the raw image.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
Height of the image.
Bits Per Pixel:
N/A
Sample:
Core


ImageWidth

Group: Property

Description:

This property determines the width of the image.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
Width of the image
Bits Per Pixel:
N/A
Sample:
Core


IGLoadReductionOptions

Group: Object

Description:

This object provides an access to reduction options for loading operations.

Interface:

IIGLoadReductionOptions

Class Members:

Enabled
property
Enables/disables reduction an image when loading
BitDepth
property
New bit depth of the loaded image


Enabled

Group: Property

Description:

This property enables/disables the reduction of an image to load.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read / Write
Settings:
True - reduction is enabled, False - disabled
Bits Per Pixel:
N/A
Sample:
Core


BitDepth

Group: Property

Description:

This property determines the new bit depth of the loaded image.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
Width of the loaded image, if Enabled is set to True
Bits Per Pixel:
N/A
Sample:
Core


IGLoadResizingOptions

Group: Object

Description:

This object provides an access to resizing options for loading operations.

Interface:

IIGLoadResizingOptions

Class Members:

Enabled
property
Enables/disables the resizing of the loaded image
Height
property
New height of the loaded image
Width
property
New width of the loaded image


Enabled

Group: Property

Description:

This property enables/disables the resizing of the loaded image.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read / Write
Settings:
True - resizing is enabled, False - disabled
Bits Per Pixel:
N/A
Sample:
Core


Height

Group: Property

Description:

This property determines the new height of the loaded image.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
Height of the loaded image if Enabled is set to True
Bits Per Pixel:
N/A
Sample:
Core


Width

Group: Property

Description:

This property determines the new width of the loaded image.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
Width of the loaded image if Enabled is set to True
Bits Per Pixel:
N/A
Sample:
Core


IGMemFile

Group: Object

Description:

This object provides an access to the memory buffer.

Interface:

IIGMemFile

Class Members:

ImageSize
property
Size of image in the buffer
Size
property
Returns current size of the memory buffer
Attach
method
Associates memory buffer with the object
Free
method
Frees memory buffer
GetPtr
method
Returns memory buffer
GetSafeArray
method
This method gets SAFEARRAY of the memory buffer
Reallocate
method
Allocates or re-allocates memory buffer of specified size
UpdateFrom
method
Updates memory buffer


Attach

Group: Method

Description:

Associates an external memory buffer with the IGMemFile object. The user is responsible for the release of memory buffer being attached.

Declaration:

Attach(MemPointer as Long, MemSize as Long, ImageSize as Long)

Parameters:

MemPointer
Pointer to the external memory buffer pointer to attach to the object
MemSize
Size of the memory buffer
ImageSize
Size of the image in the external memory buffer.

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Free

Group: Method

Description:

This method frees the memory buffer allocated by Reallocate method.

Declaration:

Free()

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPtr

Group: Method

Description:

This method gets raw pointer to the array of bytes.

Declaration:

GetPtr() As Long

Return value:

The long pointer to the array of bytes.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetSafeArray

Group: Method

Description:

This method gets SAFEARRAY of the memory buffer.

Declaration:

GetSafeArray() As Variant

Return value:

SAFEARRAY of the memory buffer. See example code for IGMemFile. UpdateFrom method.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageSize

Group: Property

Description:

This property provides the size of the image in the memory buffer.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Size of the image in the memory
Bits Per Pixel:
N/A
Sample:
Core


Reallocate

Group: Method

Description:

This method allocates or re-allocates the memory buffer of the specified size. The memory buffer being reallocated is deleted automatically.

Declaration:

Reallocate(Size as Long)

Parameters:

Size
new size of the memory buffer.

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the current size of the memory buffer.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Size of the allocated buffer
Bits Per Pixel:
N/A
Sample:
Core


UpdateFrom

Group: Method

Description:

This method updates specified SAFEARRAY memory buffer.

Declaration:

UpdateFrom( MemBuffer As Variant )

Parameters:

MemBuffer
SAFEARRAY buffer to update from.

Return value: N/A

Bits Per Pixel: N/A

Example:

Private m_igFileDialog As IGFileDlg
Private m_iBuffer() As Byte
Private m_igIOMem As IGIOMemory
Set m_igFileDialog = IGDlgsCtl1.CreateFileDlg
Set m_igIOMem =
IGFormatsCtl1.CreateObject(IG_FORMATS_OBJ_IOMEMORY)
If m_igFileDialog.Show(dialogLoadOptions) Then
file_name = dialogLoadOptions.FileName
file_length = FileLen(file_name)
fnum = FreeFile
ReDim m_iBuffer(1 To file_length)
Open file_name For Binary As #fnum
Get #fnum, 1, m_iBuffer
Close fnum
End If
m_igIOMem.Buffer.UpdateFrom m_iBuffer
Dim Buffer As Variant
Buffer = m_igIOMem.Buffer.GetSafeArray


IGMetadataItem

Group: Object

Description:

This object describes an item of metadata used by some graphics formats.

Interface:

IIGMetadataItem

Class Members:

FilterID
property
Format ID
ID
property
Metadata item ID
IsLastItem
property
used by add/set events to indicate that metadata processing is finished
Name
property
Metadata item name
ReadOnly
property
tells whether metadata item is readonly or not
Type
property
Metadata item type
Value
property
Metadata item value
ValueType
property
Metadata value type


FilterID

Group: Property

Description:

This property gets the ID of the format for which the metadata is processed.

Property Summary:

Data Type:
enumIGFormats
Default Value:
N/A
Access:
Read only
Settings:
enumIGFormats value
Bits Per Pixel:
N/A
Sample:
Core


ID

Group: Property

Description:

This property determines the identifier of the metadata item.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read / Write
Settings:
valid metadata item ID
Bits Per Pixel:
N/A
Sample:
Core


IsLastItem

Group: Property

Description:

Used inside IGMetadataItemAdd/IGMetadataItemWrite events to indicate that metadata processing is finished.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read /Write
Settings:
True if there is no longer metadata items for processing, False otherwise
Bits Per Pixel:
N/A
Sample:
Core


Name

Group: Property

Description:

This property gets/sets the name of the metadata item.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read / Write
Settings:
valid metadata item name
Bits Per Pixel:
N/A
Sample:
Core


ReadOnly

Group: Property

Description:

This property tells whether metadata item is read-only, or not.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read /Write
Settings:
True or False
Bits Per Pixel:
N/A
Sample:
Core


Type

Group: Property

Description:

This property determines the type of the metadata item.

Property Summary:

Data Type:
enumIGMETADItemType
Default Value:
N/A
Access:
Read / Write
Settings:
enumIGMETADItemType value
Bits Per Pixel:
N/A
Sample:
Core


Value

Group: Property

Description:

This property get the metadata item value.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only
Settings:
IGDataItem object interface for access to the item value
Bits Per Pixel:
N/A
Sample:
Core


ValueType

Group: Property

Description:

This property determines the metadata item value type.

Property Summary:

Data Type:
enumIGSysDataType
Default Value:
N/A
Access:
Read /Write
Settings:
enumIGSysDataType value
Bits Per Pixel:
N/A
Sample:
Core


IGSaveFormatsInfo

Group: Object

Description:

This object provides information about all available saving formats.

Interface:

IIGSaveFormatsInfo

Class Members:

Count
property
total count of items in the array
Item
property
Saving formats array


Count

Group: Property

Description:

This property gets the total count of available saving formats.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read Only
Settings:
count of available saving formats
Bits Per Pixel:
N/A
Sample:
Core


Item

Group: Indexed property

Description:

This property represents an array of saving formats.

Property Summary:

Data Type:
enumIGSaveFormats
Default Value:
N/A
Access:
Read Only
Settings:
enumIGSaveFormats value
Bits Per Pixel:
N/A
Sample:
Core


IGSaveOptions

Group: Object

Description:

This object defines page and document and their thumbnail save options.

Interface:

IIGSaveOptions

Class Members:

Format
property
Save format
Thumbnail
property
Provides thumbnail saving options
UsePageCompressions
property
This property is only used by document saving methods such as SaveDocument. It specifies whether or not the compression types specified by the Compression property of the IGPage within the IGDocument should be used for saving those pages when saving or updating an IGDocument.


Format

Group: Property

Description:

This property gets/sets the saving format for an image to save.

Property Summary:

Data Type:
enumIGSaveFormats
Default Value:
N/A
Access:
Read /Write
Settings:
enumIGSaveFormats value
Bits Per Pixel:
N/A
Sample:
Core


Thumbnail

Group: Property

Description:

This property gets/sets the saving options to save thumbnail. See IGSaveThumbnailOptions object description.

Property Summary:

Data Type:
IGSaveThumbnailOptions
Default Value:
N/A
Access:
Read only
Settings:
IGSaveThumbnailOptions data
Bits Per Pixel:
N/A
Sample:
None


UsePageCompressions

Group: Property

Description:

This property is only used by document saving methods such as SaveDocument. It specifies whether or not the compression types specified by the Compression property of the IGPage within the IGDocument should be used for saving those pages when saving or updating an IGDocument. If this property is set to False, then the entire document will be saved using the compression specified by the Format property of IGSaveOptions. If this property is set to True, then individual pages may be saved using different compression types depending on the values of their Compression and CompressionUsed properties.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


IGSaveThumbnailOptions

Group: Object

Description:

This object defines thumbnail save options. See Thumbnail property of IGSaveOptions object.

Interface:

IIGSaveThumbnailOptions

Class Members:

Enabled
property
This boolean property determines wether thumbnail should be saved.
Height
property
The height of thumbnail to save
Width
property
The width of thumbnail to save


Enabled

Group: Property

Description:

If this property is True then thumbnail should be saved.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


Height

Group: Property

Description:

This property determines the height of thumbnail to save.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
Any integer value
Bits Per Pixel:
N/A
Sample:
None


Width

Group: Property

Description:

This property determines the width of thumbnail to save.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any integer value
Bits Per Pixel:
N/A
Sample:
None


IIGFormats

Group: Interface

Description:

This is the base interface for the IGFormatsCtl control.

Interface Members:

Settings
property
Provides an access to the common Formats settings
CloseDocument
method
Closes a document being previously opened with OpenDocument method
ConvertBatch
method
Performs batch conversion.
ConvertFile
method
Converts file from one format to another without loading.
CreateObject
method
Creates a new instance of any Formats object. Returns an IIGObject interface.
DetectImageFormat
method
Detect format of the image file
GetDocumentInfo
method
Creates an object representing an info about external file associated with the document
GetPageCount
method
Returns number of pages
GetPageInfo
method
Creates new object representing info about format page
IsDocumentOpen
method
Tells whether the document is associated with a location or not
LoadDocument
method
Loads range of pages from any supported i/o location
LoadDocumentFromFile
method
Loads range of pages from file
LoadPage
method
Loads one page from any supported i/o location using loading options
LoadPageFromFile
method
Loads one page from file
OpenDocument
method
Associates a document with the external i/o location
ReadPagesToDocument
method
Loads range of pages from associated i/o location to the document previously opened with OpenDocument
SaveDocument
method
Saves range of document pages to the any supported i/o location using save options
SaveDocumentToFile
method
Saves range of document pages to the file
SavePage
method
Saves a page to the any supported i/o location using save options
SavePageToFile
method
Saves a page to the file
UpdateDocument
method
Synchronizes an opened document with external i/o location


CloseDocument

Group: Method

Description:

Closes a document previously opened with OpenDocument method.

Declaration:

CloseDocument(Document as IGDocument, UpdateLocation as
Boolean)

Parameters:

Document
Document to be closed
UpdateLocation
If it is True, then the location should be updated before closing

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ConvertBatch

Group: Method

Description:

This method converts a specified set of files from one ImageGear-supported image format type to another.

Declaration:

ConvertBatch(SrcDir as String, SrcFilter as String, DstDir as
String, DstFormat as enumIGSaveFormats, Options as
enumIGBatchOptions, LogFile as String, UseEvents as Boolean, ID
as Long)

Parameters:

SrcDir
Source directory
SrcFilter
Source files filter
DstDir
Destination directory
DstFormats
Destination file format
Options
Batch conversion options. See enumIGBatchOptions values.
LogFile
Conversion log file
UseEvents
Enables batch conversion events (BatchBeforeLoad and BatchBeforeSave) for this call. If True, batch conversion events are fired. Otherwise, events are not fired for this call.
ID
Allows to specify unique ID that will be returned to you via parameters of the batch conversion events. This would allow you to determine the source of the event from within the event handler. Set it to 0, if you don't need to use it.

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ConvertFile

Group: Method

Description:

This method allows you to transform image file without decoding it completely and avoiding the need to load it into memory. The following types of transformations are supported as of this writing:

  • Lossless conversion of JPEG compressed image files
  • Conversion between PDF and PostScript formats

This method does not process image's metadata. This is responsibility of the user. See filter sample for an example of working with metadata.

Lossless conversion of JPEG compressed image files

This method allows to apply certain operations on JPEG compressed image files, such as rotation, flipping, etc, without degradation of image quality. It can be used also for lossless conversion between JFIF JPEG and EXIF JPEG file formats, and for adding a thumbnail to a JFIF of EXIF file.

Transformation is done on the DCT coefficients rather than on decompressed pixels, so the lossy decompression/compression stages are not involved.

In contrast, the usual way (to load, rotate and save image) results in significant image degradation, especially when high compression rate is used.

This method can be useful for converting photographic images between portrait and landscape layouts.

The following lossless operations (Command argument) are supported:

IG_CONVERT_NONE
No conversion
IG_CONVERT_ROTATE_90
Rotate 90
IG_CONVERT_ROTATE_180
Rotate 180
IG_CONVERT_ROTATE_270
Rotate 270
IG_CONVERT_FLIP_HORIZONTAL
Flip horizontal
IG_CONVERT_FLIP_VERTICAL
Flip vertical
IG_CONVERT_TRANSPOSE
Flip about upper left - lower right diagonal
IG_CONVERT_TRANSVERSE
Flip about upper right - lower left diagonal

IG_CONVERT_NONE mode can be used for converting between JFIF JPEG and EXIF JPEG format, or for adding a thumbnail to the image.

Option parameter is a bit mask. Only one bit flag is supported:

IG_CONVERT_OPTION_TRIM = 1

An inherent limitation of such conversions is that source image dimensions must be multiples of DCT matrix size (typically 8 or 16) to preserve the entire image. If they are not, the remaining pixels at the right and/or bottom are undefined after transform. The method fills them with mirror projection of the preceeding pixels. This may work well enough for many photographic pictures. If you don't like to keep mirrored edge, set Option parameter to IG_CONVERT_OPTION_TRIM. With this option set, the method will trim result image dimensions to a multiple of DCT size. In particular:

IG_CONVERT_NONE
Resulting image dimensions will not be modified
IG_CONVERT_ROTATE_90
Resulting image width can be trimmed
IG_CONVERT_ROTATE_180
Resulting image width and height can be trimmed
IG_CONVERT_ROTATE_270
Resulting image height can be trimmed
IG_CONVERT_FLIP_HORIZONTAL
Resulting image width can be trimmed
IG_CONVERT_FLIP_VERTICAL
Resulting image height can be trimmed
IG_CONVERT_TRANSPOSE
Resulting image dimensions will not be modified
IG_CONVERT_TRANSVERSE
Resulting image width and height can be trimmed

The following formats are supported as both source and destiation: JFIF-JPEG, EXIF-JPEG. Only Lossy and Progressive compressions are supported. If any other format is used for either source or destination, the method will set an error.

If FormatType == IG_FORMAT_UNKNOWN, the method will recognize source file format and use it for the destination file to save.

This method also converts image's thumbnail, if it is present. If the thumbnail is JPEG compressed, it will be converted without degradation of quality. If the source image does not contain a thumbnail, and destination filter's SAVE_THUMNBAIL control parameter is set to TRUE, the method will create a thumbnail from the source image.

Conversion between PDF and PostScript formats

This method can also be used for conversion of the entire document from PDF to PostScript or back. The method's parameters should be set as follows to achieve that:

SrcFileName
Name of the input PDF or PS document to convert
DstFileName
Name of the output PDF or PS document
FormatType
Save format, either IG_FORMAT_PDF, or IG_FORMAT_POSTSCRIPT
Command
IG_CONVERT_NONE
Options
Not used, set to 0

Declaration:

ConvertFile(SrcFileName as String, DstFileName as String,
DstFormat as enumIGFormats, Command as
enumIGConversionCommands, Options as enumIGConversionOptions)

Parameters:

SrcFileName
Source file name
DstFileName
Destination file name
DstFormats
Destination format
Command
Conversion commands
Options
Conversion options

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateObject

Group: Method

Description:

Creates a new instance of any Formats object. Returns an IIGObject interface.

Declaration:

CreateObject(ObjType as enumIGFormatsObjType) as IGObject

Parameters:

ObjType
Specifies a type of created object

Return value:

A new object of the requested type

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DetectImageFormat

Group: Method

Description:

Detects format of the image.

Declaration:

DetectImageFormat(IOLocation as IIGIOLocation) as enumIGFormats

Parameters:

IOLocation
i/o location object describing the image location

Return value:

Image format identifier.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetDocumentInfo

Group: Method

Description:

Creates an object representing an info about external i/o location associated with the document.

Declaration:

GetDocumentInfo(Document as IGDocument) as IGDocumentInfo

Parameters:

Document
i/o location object describing the image

Return value:

A new IGDocumentInfo object filled with information about the document.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPageCount

Group: Method

Description:

Returns a count of pages in the specified location.

Declaration:

GetPageCount(IOLocation as IIGIOLocation, Format as
enumIGFormats) as Long

Parameters:

IOLocation
i/o location object describing the image location
Format
Expected format of the page. If Format is IG_FORMAT_UNKNOWN, then page format is autodetected

Return value:

A count of pages at the specified location.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPageInfo

Group: Method

Description:

Creates new object representing info about format page.

Declaration:

GetPageInfo(IOLocation as IIGIOLocatin, PageNum as Long, Format
as enumIGFormats) as FormatPageInfo

Parameters:

IOLocation
i/o location object describing the image location
PageNum
number of page
Format
expected format of the page. If Format is IG_FORMAT_UNKNOWN, then page format is autodetected

Return value:

A new IGFormatPageInfo object filled with information about the specified page

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsDocumentOpen

Group: Method

Description:

Tells whether the document is associated with any location or not.

Declaration:

IsDocumentOpen(Document as IGDocument) as Boolean

Parameters:

Document
a document for checking

Return value:

True, if the specified document is associated with location, False otherwise.

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LoadDocument

Group: Method

Description:

Loads range of pages from any supported i/o location.

Declaration:

LoadDocument(Document as IGDocument, IOLocation as
IIGIOLocation, StartPageFile as Long, StartIndexDoc as Long,
PageCount as Long, LoadOptions as IGLoadOptions)

Parameters:

Document
a document the specified pages must be loaded into
IOLocation
location of the pages that must be loaded into the document
StartPageFile
Zero-based start page index at the location for loading into the document
StartIndexDoc
Zero-based start page index in the document
PageCount
A count of pages to be loaded into the document
LoadOptions
Loading options

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LoadDocumentFromFile

Group: Method

Description:

Loads the range of pages into the multi-page document from the disk file.

Declaration:

LoadDocumentFromFile(Document as IGDocument, FileName as
String, StartPageFile as Long, StartIndexDoc as Long, PageCount
as Long)

Parameters:

Document
A document the specified pages must be loaded into
FileName
Location of the pages that must be loaded into the document
StartPageFile
Zero-based start page index at the location for loading into the document
StartIndexDoc
Zero-based start page index in the document
PageCount
A count of pages to be loaded into the document. If PageCount = -1, then all pages starting from StartPageFile are loaded.

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LoadPage

Group: Method

Description:

Loads a single page from any supported i/o location. This method stitches page's tiles in the case of TileNum = -1.

Declaration:

LoadPage(Page As IGPage, IOLocation As IIGIOLocation, PageNum As
Long, TileNum As Long, LoadOptions As IGLoadOptions)

Parameters:

Page
A page for loading
IOLocation
Location of the page
PageNum
Zero-based page number
TileNum
Zero-based tile number
LoadOptions
Loading options

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LoadPageFromFile

Group: Method

Description:

Loads a single page from the disk file. This method stitches page's parts during loading, if the image is tiled.

Declaration:

LoadPageFromFile(Page As IGPage, FileName As String, PageNum As
Long)

Parameters:

Page
a page for loading
FileName
name of the file to read a page from
PageNum
Zero-based page number

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


OpenDocument

Group: Method

Description:

Associates a document with the external i/o location as follows:

  • Any pages previously contained in the document are removed from it
  • All necessary info is obtained (Page count etc)

New empty page is created in the document per each image at the i/o location. I.e, PageCount is equal to the number of pages at the location, but IGDocument.ValidPagesCount will be 0.

Declaration:

OpenDocument(Document as IGDocument, IOLocation as
IIGIOLocation, Mode as enumIGDocAccessMode)

Parameters:

Document
a document to be opened
IOLocation
i/o location the document should be associated with
Mode
Access mode of the opened document. Can be read/only or read/write

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReadPagesToDocument

Group: Method

Description:

Reads range of pages from associated i/o location into the document previously opened with OpenDocument.

Declaration:

ReadPagesToDocument(Document as IGDocument, StartPage as Long,
PageCount as Long) as Boolean

Parameters:

Document
a document the pages must be loaded into
StartPage
zero-based start page index
PageCount
a count of pages to be read into the document

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SaveDocument

Group: Method

Description:

Saves range of the document pages to any supported i/o location using save options.

Declaration:

SaveDocument(Document as IGDocument, IOLocation as
IIGIOLocation, StartPageFile as Long, StartIndexDoc as Long,
PageCount as Long, Mode as enumIGDocSaveModes, SaveOptions as
IGSaveOptions)

Parameters:

Document
A document to be saved
IOLocation
Location to save the document to
StartPageFile
Zero-based start page index at the location
StartIndexDoc
Zero-based start page index in the document
PageCount
A count of pages to be saved
Mode
Document saving mode. Can be `default', `overwrite', `append', `insert', `replace'
SaveOptions
Saving options

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SaveDocumentToFile

Group: Method

Description:

Saves a range of the document pages to the disk file.

Declaration:

SaveDocumentToFile(Document as IGDocument, FileName as String,
StartPageFile as Long, StartIndexDoc as Long, PageCount as Long,
Mode as enumIGDocSaveModes, SaveFormat as enumIGSaveFormats)

Parameters:

Document
A document to be saved
FileName
Name of the disk file to save the document to
StartPageFile
Zero-based start page index at the location
StartIndexDoc
Zero-based start page index in the document
PageCount
A count of pages to be saved
Mode
Document saving mode. Can be `default', `overwrite', `append', `insert', `replace'
SaveFormat
A file format to save document to

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SavePage

Group: Method

Description:

Saves single page to the any supported i/o location using save options.

Declaration:

SavePage(Page as IGPage, IOLocation as IIGIOLocation, PageNumber
as Long, Mode as enumIGPageSaveModes, SaveOptions as
IGSaveOptions)

Parameters:

Page
a page to be saved
IOLocation
location to save the document to
PageNumber
zero-based page index at the location to save the page to
Mode
page saving mode. Can be `overwrite', `append', `replace'
SaveOptions
saving options

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SavePageToFile

Group: Method

Description:

Saves a single page to the disk file.

Declaration:

SavePageToFile(Page as IGPage, FileName as String, PageNumber as
Long, Mode as enumIGPageSaveModes, SaveFormat as
enumIGSaveFormats)

Parameters:

Page
A page to be saved
FileName
Name of the disk file to save the page to
PageNumber
Zero-based page index at the location to save the page to
Mode
Document saving mode. Can be `default', `overwrite', `append', `insert', `replace'
SaveFormat
A file format to save page to

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Settings

Group: Property

Description:

This property provides an access to the common Formats.

Property Summary:

Data Type:
IGFormatsSettings
Default Value:
M/A
Access:
Read only
Settings:
IGFormatsSettings object interface
Bits Per Pixel:
N/A
Sample:
Core


UpdateDocument

Group: Method

Description:

This method synchronizes the document with external source by performing the following algorithm (only allowed if document was opened in r/w mode):

  1. Document pages with indices >= "file page count" are analyzed. Such "trailing segment" can have the following structure in order for saving to proceed: <valid page 1>, <valid page 2>, ..., <valid page N>,<empty page 1>, < empty page 2>, ..., < empty page M>. If valid pages are mixed with empty pages then it's unclear what to do and updating can't be done. Otherwise trailing empty pages are removed and trailing valid pages are shrunk so that they have indices "file page count", "file page count"+1, "file page count"+2 and so on.
  2. All valid pages are updated in the external file. "Trailing pages" are appended.
  3. If there are some indices within the range [0..<file page count>-1] for whose no IGPage exists in the document, corresponding pages are deleted from the external file, and page collection is shrunk so that it is now continuous.

Declaration:

UpdateDocument(Document as IGDocument)

Parameters:

Document
A document to be update

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IIGIOLocation

Group: Interface

Description:

This is the base interface for all IO location objects.

Interface Members:

ImageOffset
property
This property defines an offset at which image data starts
Type
property
This property defines a type of the location - file, stream, memory or URL
CopyImageTo
method
This method copies an image from one location to another


CopyImageTo

Group: Method

Description:

This method copies an image from one location to another.

Declaration:

CopyImageTo(DestLocation as IIGIOLocation)

Parameters:

DestLocation
Destination location

Return value: N/A

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageOffset

Group: Property

Description:

This property defines an offset at which image data starts.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / Write
Settings:
any long value
Bits Per Pixel:
N/A
Sample:
None


Type

Group: Property

Description:

This property defines a type of the location - file, stream, memory or URL.

Property Summary:

Data Type:
enumIGIOLocationType
Default Value:
IG_LOC_FILE (0)
Access:
Read only
Settings:
any enumIGIOLocationType value
Bits Per Pixel:
N/A
Sample:
Core


Formats Component Enumerations

This section represents an alphabetized reference of enumerations defined in ImageGear Formats component:

    • enumIGBatchOptions
    • enumIGCompressions
    • enumIGConversionCommands
    • enumIGConversionOptions
    • enumIGDocAccessModes
    • enumIGDocSaveModes
    • enumIGFltrFormatFlags
    • enumIGFormats
    • enumIGFormatsObjType
    • enumIGHTTPVerbs
    • enumIGImageChannelType
    • enumIGInetServices
    • enumIGIOLocationType
    • enumIGJPGType
    • enumIGMETADItemType
    • enumIGPageSaveModes
    • enumIGSaveFormats
    • enumIGSysDataType


enumIGBatchOptions

Group: Enumeration

Description:

Identifies the options for batch conversion.

Values:

IG_BATCH_MP_TO_MP
Converts multipage file to multipage if the format supports this
IG_BATCH_RECURSIVE
Recursive convertion
IG_BATCH_USE_SRC_NAME
Converts file using its src name


enumIGCompressions

Group: Enumeration

Description:

Identifies the different format compression schemes.

Values:

IG_COMPRESSION_NONE
No compression
IG_COMPRESSION_PACKED_BITS
Packed bits compression
IG_COMPRESSION_HUFFMAN
Huffman encoding
IG_COMPRESSION_CCITT_G3
CCITT Group 3
IG_COMPRESSION_CCITT_G4
CCITT Group 4
IG_COMPRESSION_CCITT_G32D
CCITT Group 3 2D
IG_COMPRESSION_JPEG
JPEG compression
IG_COMPRESSION_RLE
Run length encoding
IG_COMPRESSION_LZW
LZW compression
IG_COMPRESSION_ABIC_BW
IBM ABIC compression
IG_COMPRESSION_ABIC_GRAY
IBM ABIC compression
IG_COMPRESSION_JBIG
IBM JBIG compression
IG_COMPRESSION_FPX_SINCOLOR
single color compression
IG_COMPRESSION_FPX_NOCHANGE
save with the same compression as loaded
IG_COMPRESSION_DEFLATE
IG_COMPRESSION_IBM_MMR
IG_COMPRESSION_ABIC
IBM ABIC compression
IG_COMPRESSION_PROGRESSIVE
Progressive compression ( Progressive JPEG and may be PNG in future )
IG_COMPRESSION_EQPC
PowerSDK EQPC(Wavelet) compression
IG_COMPRESSION_JBIG2
JBIG2 compression
IG_COMPRESSION_LURAWAVE
Wavelet compression (LuraWave)
IG_COMPRESSION_LURADOC
Document compression (LuraDoc)
IG_COMPRESSION_LURAJP2
Lura JPEG2000 compression
IG_COMPRESSION_ASCII
Image data is converted to ASCII text
IG_COMPRESSION_RAW
Imagedata is stored directory in binary raw format
IG_COMPRESSION_JPEG2K


enumIGConversionCommands

Group: Enumeration

Description:

Identifies the commands for file conversion

Values:

IG_CONVERT_NONE
convert with no processing
IG_CONVERT_ROTATE_90
convert with rotating to 90 degrees
IG_CONVERT_ROTATE_180
convert with rotating to 180 degrees
IG_CONVERT_ROTATE_270
convert with rotating to 270 degrees
IG_CONVERT_FLIP_HORIZONTAL
convert with flipping horizontal
IG_CONVERT_FLIP_VERTICAL
convert with flipping vertical
IG_CONVERT_TRANSPOSE
convert and transpose
IG_CONVERT_TRANSVERSE
convert and transverse


enumIGConversionOptions

Group: Enumeration

Description:

Identifies the options for file conversion.

Values:

IG_CONVERT_OPTION_TRIM
Trims result image dimensions to a multiple of DCT size


enumIGDocAccessModes

Group: Enumeration

Description:

Document access modes.

Values:

IG_ACCESSMODE_READONLY
Reserved for the future
IG_ACCESSMODE_READWRITE
Reserved for the future


enumIGDocSaveModes

Group: Enumeration

Description:

Identifies the document save modes such as overwrite, append, replace

Values:

IG_DOCSAVEMODE_DEFAULT
Same as IG_DOCSAVEMODE_REPLACE
IG_DOCSAVEMODE_OVERWRITE
Overwrite the whole file, if it exists, with new pages
IG_DOCSAVEMODE_APPEND
Append new pages at the end of existing file
IG_DOCSAVEMODE_INSERT
Insert new pages to the specified location
IG_DOCSAVEMODE_REPLACE
Replace pages with new ones, starting from the specified location


enumIGFillOrder

Group: Enumeration

Description:

Identifies the raw bit order.

Values:

IG_FILL_MSB
Little endian bit order
IG_FILL_LSB
Big endian bit order


enumIGFltrFormatFlags

Group: Enumeration

Description:

Identifies the format flags such as DETECTSUPPORT, PAGEREADSUPPORT and other.

Values:

IG_FLTR_DETECTSUPPORT
Format detection is supported
IG_FLTR_PAGEREADSUPPORT
Page reading is supported
IG_FLTR_MPAGEREADPSUPPORT
Multipage reading is supported
IG_FLTR_MPAGEWRITEPSUPPORT
Multipage writing is supported
IG_FLTR_PAGEINSERTSUPPORT
Page insertion is supported
IG_FLTR_PAGEDELETESUPPORT
Page deleting is supported
IG_FLTR_PAGESWAPSUPPORT
Page swapping is supported
IG_FLTR_MPDATASUPPORT
Multipage data is supported


enumIGFormats

Group: Enumeration

Description:

Identifies the formats supported by IG.

Values:

IG_FORMAT_UNKNOWN
Unknown format
IG_FORMAT_ATT
Not supported
IG_FORMAT_BMP
Microsoft Windows Bitmap
IG_FORMAT_BRK
BTR
IG_FORMAT_CAL
CAL
IG_FORMAT_CLP
CLP
IG_FORMAT_CUT
CUT
IG_FORMAT_DCX
Paintbrush
IG_FORMAT_DIB
the same as IG_FORMAT_BMP
IG_FORMAT_EPS
Encapsulated postscript
IG_FORMAT_G3
Group 3
IG_FORMAT_G4
Group 4
IG_FORMAT_GEM
GEM Raster
IG_FORMAT_GIF
GIF
IG_FORMAT_ICA
IBM IOCA
IG_FORMAT_ICO
Windows icon
IG_FORMAT_IFF
Interchange File Format
IG_FORMAT_IMT
IMT
IG_FORMAT_JPG
JPEG File Interchange
IG_FORMAT_KFX
KFX
IG_FORMAT_LV
LV
IG_FORMAT_MAC
MAC
IG_FORMAT_MSP
MSP
IG_FORMAT_MOD
IBM MO:DCA
IG_FORMAT_NCR
NCR
IG_FORMAT_PBM
PBM
IG_FORMAT_PCD
PCD
IG_FORMAT_PCT
Mac PICT
IG_FORMAT_PCX
PC Paintbrush File Format
IG_FORMAT_PGM
Not supported
IG_FORMAT_PNG
Portable Network Graphics
IG_FORMAT_PNM
Not supported
IG_FORMAT_PPM
Not supported
IG_FORMAT_PSB
Adobe PSD Big
IG_FORMAT_PSD
Adobe PSD
IG_FORMAT_RAS
RAS
IG_FORMAT_SGI
SGI
IG_FORMAT_TGA
TGA
IG_FORMAT_TIF
Tagged Image File Format
IG_FORMAT_TXT
TXT
IG_FORMAT_WPG
WPG
IG_FORMAT_XBM
XBM
IG_FORMAT_WMF
Windows MetaFile
IG_FORMAT_XPM
XPM
IG_FORMAT_XRX
IMG
IG_FORMAT_XWD
XWD
IG_FORMAT_DCM
DICOM
IG_FORMAT_AFX
Auto FX
IG_FORMAT_FPX
FlashPix
IG_FORMAT_PJPEG
Not supported
IG_FORMAT_AVI
AVI
IG_FORMAT_G32D
Group 3 2D
IG_FORMAT_ABIC_BILEVEL
IBM ABIC
IG_FORMAT_ABIC_CONCAT
IBM ABIC
IG_FORMAT_PDF
Adobe PDF
IG_FORMAT_JBIG
JBIG
IG_FORMAT_RAW
RAW
IG_FORMAT_IMR
IMR
IG_FORMAT_STX
Not supported
IG_FORMAT_WLT
Not supported
IG_FORMAT_JB2
Jbig2
IG_FORMAT_WL16
Not supported
IG_FORMAT_MODCA
Not supported
IG_FORMAT_PTOCA
PTOCA file
IG_FORMAT_WBMP
Wireless Bitmap File Format
IG_FORMAT_MUL
MULTIMEDIA
IG_FORMAT_CAD
Not supported
IG_FORMAT_DWF
DWF
IG_FORMAT_DWG
DWG
IG_FORMAT_DXF
DXF
IG_FORMAT_EXIF_JPEG
Exchangeable image file format
IG_FORMAT_HPGL
HPGL
IG_FORMAT_DGN
DGN
IG_FORMAT_EXIF_TIFF
Exchangeable image file format (EXIF-TIFF)
IG_FORMAT_CGM
CGM
IG_FORMAT_SCITEX
Not supported
IG_FORMAT_SCI_CT
Scitex CT file
IG_FORMAT_CUR
Windows Cursors
IG_FORMAT_LURADOC
LuraDoc(Lura)
IG_FORMAT_LURAWAVE
Wavelet(Lura)
IG_FORMAT_LURAJP2
JPEG2000(Lura)
IG_FORMAT_JPEG2K
JPEG2000
IG_FORMAT_JPX
JPX
IG_FORMAT_POSTSCRIPT
Not supported


enumIGFormatsObjType

Group: Enumeration

Description:

Identifies all types of creatable objects.

Values:

IG_FORMATS_OBJ_LOADOPTIONS
IGLoadOptions object identifier
IG_FORMATS_OBJ_SAVEOPTIONS
IGSaveOptions object identifier
IG_FORMATS_OBJ_IOFILE
IGIOFile object identifier
IG_FORMATS_OBJ_IOSTREAM
IGIOStream object identifier
IG_FORMATS_OBJ_IOMEMORY
IGIOMemory object identifier
IG_FORMATS_OBJ_IOURL
IGIOURL object identifier


enumIGHTTPVerbs

Group: Enumeration

Description:

Identifies the method of saving an annotation or image.

Values:

IG_HTTP_VERB_PUT
For saving the annotation page or image to the file.
IG_HTTP_VERB_POST
For transferring the annotation page or image data to the web script.


enumIGImageChannelType

Group: Enumeration

Description:

Identifies the different types of image channel.

Values:

IG_ICT_RED
Red channel
IG_ICT_GREEN
Green channel
IG_ICT_BLUE
Blue channel
IG_ICT_ALPHA
Alpha channel


enumIGInetServices

Group: Enumeration

Description:

Identifies the Inet service for loading from URL

Values:

IG_INETSERV_HTTP
HTTP service
IG_INETSERV_FTP
FTP service
IG_INETSERV_GOPHER
GOPHER service


enumIGIOLocationType

Group: Enumeration

Description:

Identifies a type of the location for loading/saving operations.

Values:

IG_LOC_FILE
File location
IG_LOC_MEMORY
Memory location
IG_LOC_STREAM
Stream location
IG_LOC_URL
URL location


enumIGJPGType

Group: Enumeration

Description:

Identifies JPEG saving types.

Values:

IG_JPG_LOSSY
Lossy JPEG compression.
IG_JPG_LOSSLESS
Lossless JPEG compression.
IG_JPG_PROGRESSIVE
Progressive JPEG compression.


enumIGMETADItemType

Group: Enumeration

Description:

Identifies the Inet service for loading from URL.

Values:

IG_METAD_LEVEL_START
Start of new metadata level
IG_METAD_VALUE_ITEM
Metadata item
IG_METAD_LEVEL_END
End of metadata level


enumIGPageSaveModes

Group: Enumeration

Description:

Identifies the page save modes such as `overwrite', `append', `replace'.

NOTE: These modes are relevant to multipage file formats only. When saving to a format that does not support multiple pages, the file is always re-written.

Values:

IG_PAGESAVEMODE_DEFAULT
Same as IG_PAGESAVEMODE_INSERT
IG_PAGESAVEMODE_OVERWRITE
Overwrite the file, if it already exists.
IG_PAGESAVEMODE_APPEND
Append page, if the file aready exists.
IG_PAGESAVEMODE_INSERT
Insert page at the specificed location
IG_PAGESAVEMODE_REPLACE
Replace page at the specified location


enumIGSaveFormats

Group: Enumeration

Description:

Identifies the formats available for saving

Values:

IG_SAVE_UNKNOWN
unknown format
IG_SAVE_BRK_G3
BTR with Group 3 compression
IG_SAVE_BRK_G3_2D
BTR with Group 3 2D compression
IG_SAVE_BMP_RLE
Microsoft Windows bitmap with RLE compression
IG_SAVE_BMP_UNCOMP
Microsoft Windows bitmap uncompressed
IG_SAVE_CAL
CAL
IG_SAVE_CLP
CLP
IG_SAVE_DCX
Paintbrush
IG_SAVE_EPS_UNCOMP
Encapsulated postscript uncompressed
IG_SAVE_EPS_JPG
Encapsulated postscript with JPG compression
IG_SAVE_EPS_G3
Encapsulated postscript with Group 3 compression
IG_SAVE_EPS_G4
Encapsulated postscript with Group 4 compression
IG_SAVE_GIF
GIF
IG_SAVE_ICA_G3
IBM IOCA with Group 3 compression
IG_SAVE_ICA_G4
IBM IOCA with Group 4 compression
IG_SAVE_ICA_IBM_MMR
IBM IOCA with IBM MMR compression
IG_SAVE_ICO
windows icon
IG_SAVE_IMT
IMT
IG_SAVE_IFF
Interchange uncompressed
IG_SAVE_IFF_RLE
Interchange with RLE compression
IG_SAVE_JPG
JPEG File Interchange
IG_SAVE_PJPEG
Not supported
IG_SAVE_MOD_G3
IBM MO:DCA with Group 3 compression
IG_SAVE_MOD_G4
IBM MO:DCA with Group 4 compression
IG_SAVE_MOD_IBM_MMR
IBM MO:DCA with MMR compression
IG_SAVE_NCR
NCR uncompressed
IG_SAVE_NCR_G4
NCR with Group 4 compression
IG_SAVE_PBM_ASCII
PBM converted to ASCII text
IG_SAVE_PBM_RAW
PBM binary row format
IG_SAVE_PCT
Mac Pict
IG_SAVE_PCX
PC Paintbrush File Format
IG_SAVE_PDF_UNCOMP
Adobe PDF uncompressed
IG_SAVE_PDF_JPG
Adobe PDF with JPEG compression
IG_SAVE_PDF_G3
Adobe PDF with Group 3 compression
IG_SAVE_PDF_G3_2D
Adobe PDF with Group3 2D compression
IG_SAVE_PDF_G4
Adobe PDF with Group 4 compression
IG_SAVE_PDF_RLE
Adobe PDF with RLE compression
IG_SAVE_PDF_DEFLATE
Adobe PDF with Deflate compression
IG_SAVE_PDF_LZW
Adobe PDF with LZW compression
IG_SAVE_PS_UNCOMP
Postscript uncompressed
IG_SAVE_PS_JPG
Postscript with JPEG compression
IG_SAVE_PS_G3
Postscript with Group 3 compression
IG_SAVE_PS_G3_2D
Postscript with Group3 2D compression
IG_SAVE_PS_G4
Postscript with Group 4 compression
IG_SAVE_PS_RLE
Postscript with RLE compression
IG_SAVE_PS_DEFLATE
Postscript with Deflate compression
IG_SAVE_PS_LZW
Postscript with LZW compression
IG_SAVE_PNG
Portable network graphics
IG_SAVE_PSB
Adobe PSD Big
IG_SAVE_PSD
Adobe PSD
IG_SAVE_PSD_PACKED
Adobe PSD with packed bits compression
IG_SAVE_RAS
RAS
IG_SAVE_RAW_G3
RAW with Group 3 compression
IG_SAVE_RAW_G4
RAW with Group 4 compression
IG_SAVE_RAW_G32D
RAW with Group 3 2D compression
IG_SAVE_RAW_LZW
RAW with LZW compression
IG_SAVE_RAW_RLE
RAW with RLE compression
IG_SAVE_SGI
SGI
IG_SAVE_SGI_RLE
SGI with RLE compression
IG_SAVE_TGA
TGA
IG_SAVE_TGA_RLE
TGA with RLE compression
IG_SAVE_TIF_UNCOMP
Tagged Image File Format uncompressed
IG_SAVE_TIF_G3
Tagged Image File Format with Group 3 compression
IG_SAVE_TIF_G3_2D
Tagged Image File Format with Group 3 2D compression
IG_SAVE_TIF_G4
Tagged Image File Format with Group 4 compression
IG_SAVE_TIF_HUFFMAN
Tagged Image File Format with Huffman compression
IG_SAVE_TIF_JPG
with JPEG compression
IG_SAVE_TIF_LZW
Tagged Image File Format with LZW compression
IG_SAVE_TIF_PACKED
Tagged Image File Format with Packed Bits compression
IG_SAVE_XBM
XBM
IG_SAVE_XPM
XPM
IG_SAVE_XWD
XWD
IG_SAVE_WMF
Windows MetaFile
IG_SAVE_WLT
NotSupported
IG_SAVE_JB2
Lbig2
IG_SAVE_WL16
Not supported
IG_SAVE_WBMP
Wireless Bitmap File Format
IG_SAVE_FPX_NOCHANGE
FlashPix with the current compression
IG_SAVE_FPX_UNCOMP
FlashPix uncompressed
IG_SAVE_FPX_JPG
FlashPix with JPEG compression
IG_SAVE_FPX_SINCOLOR
FlashPix with the single color compression
IG_SAVE_DCM
DICOM
IG_SAVE_JBIG
JBIG
IG_SAVE_SCI_ST
Scitex CT format
IG_SAVE_LURAWAVE
Wavelet(Lura)
IG_SAVE_LURADOC
LuraDoc(Lura)
IG_SAVE_LURAJP2
JPEG2000(Lura
IG_SAVE_JPEG2K
JPEG2000
IG_SAVE_JPX
JPX
IG_SAVE_EXIF_JPEG
Exchangeable image file format
IG_SAVE_EXIF_TIFF
Exchangeable image file format (EXIF-TIFF)


enumIGSysDataType

Group: Enumeration

Description:

Identifies the IG data types

Values:

AM_TID_META_INT8
8 bit signed integer
AM_TID_META_UINT8
8 bit unsigned integer
AM_TID_META_INT16
16 bit signed integer
AM_TID_META_UINT16
16 bit unsigned integer
AM_TID_META_INT32
32 bit signed integer
AM_TID_META_UINT32
32 bit unsigned integer
AM_TID_META_BOOL
Boolean
AM_TID_META_STRING
String
AM_TID_META_RATIONAL_UINT32
Rational 32 bit unsigned integer
AM_TID_META_RATIONAL_INT32
Rational 32 bit bit signed integer
AM_TID_META_FLOAT
Float
AM_TID_META_DOUBLE
Double
AM_TID_RAW_DATA
Raw Data
AM_TID_META_INT64
64 bit signed integer
AM_TID_META_UINT64
64 bit unsigned integer


ImageGear FreqIP Component API Reference

ImageGear FreqIP Component API Reference

FreqIP (Frequency Domain Image Processing) component is responsible for image processing functionalities in frequency domain. It exposes the following two objects:

IGFreqIPCtl
Frequency Domain Image Processing Control
IGComplexObject
This objects can store both real and imaginary part of complex data, using double precision

The following enumerations are used in this component:

enumIGCoObjConvType
Conversion types to convert an ImGearComplexObject object to an ImGearPage object
enumIGFFTScalingMethods
Scaling methods for the result of Fast Fourier Transform (FFT)
enumIGFreqIPFilterBrands
Filter brands available


IGFreqIPCtl

Group: Control

Description:

The Frequency Domain Image Processing component. The instance of IGFreqIPCtl should be either added to the form during design time, or created dynamically during run time. This object has no visible representation on screen and provides access to frequency domain functionalities.

Interface:

IIGFreqIPCtl extends IIGFreqIP

Class Members:

CreateComplexObject
method
This method creates an object of type IGComplexObject.
ForwardFFT
method
This method performs a forward Fast Fourier Transform of the input IGComplexObject object.
ForwardFFTFromImage
method
This method performs a forward Fast Fourier Transform of the input IGPage object.
InverseFFT
method
This method performs an inverse Fast Fourier Transform and returns an IGComplexObject object.
InverseFFTToImage
method
This method performs an inverse Fast Fourier Transform and returns an IGPage object.
LowPassFilter
method
This method filters the input image using a low-pass filter.
HighPassFilter
method
This method filters the input image using a high-pass filter.
BandPassFilter
method
This method filters the input image using a band-pass filter.
BandStopFilter
method
This method filters the input image using a band-stop filter.
InverseRestore
method
This method performs image restoration using inverse filtering in the frequency domain.
WienerRestore
method
This method performs image restoration using Wiener filtering in the frequency domain.
Convolve
method
This method convolves an image with the given kernel matrix, through FFT using the Convolution Theorem.
ForwardDCT
method
This method performs a forward Discrete Cosine Transform of the input IGComplexObject object.
ForwardDCTFromImage
method
This method performs a forward Discrete Cosine Transform of the input IGPage object.
InverseDCT
method
This method performs an inverse Discrete Cosine Transform and returns an IGComplexObject object.
InverseDCTToImage
method
This method performs an inverse Discrete Cosine Transform and returns an IGPage object.
ForwardDST
method
This method performs a forward Discrete Sine Transform of the input IGComplexObject object.
ForwardDSTFromImage
method
This method performs a forward Discrete Sine Transform of the input IGPage object.
InverseDST
method
This method performs an inverse Discrete Sine Transform and returns an IGComplexObject object.
InverseDSTToImage
method
This method performs an inverse Discrete Sine Transform and returns an IGPage object.


CreateComplexObject

Group: Method

Description:

This method creates an object of type IGComplexObject.

Declaration:

CreateComplexObject() As IGComplexObject

Parameters:

N/A

Return Value:

The newly created IGComplexObject object

Bits Per Pixel:

N/A

Sample:

FreqIP


ForwardFFT

Group: Method

Description:

This method performs a forward Fast Fourier Transform of the input IGComplexObject object.

Declaration:

ForwardFFT(pComplexObject As IGComplexObject, nScalingMethod As
enumIGFFTScalingMethods, bCenterTransform As Boolean) As
IGComplexObject

Parameters:

pComplexObject
IGComplexObject object to process.
nScalingMethod
Specifies the method of scaling the result data.
bCenterTransform
Flag to indicate whether to center the transform.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


ForwardFFTFromImage

Group: Method

Description:

This method performs a forward Fast Fourier Transform of the input image. The difference between this method and ForwardFFT is that this method takes an IGPage as the input.

Declaration:

ForwardFFTFromImage (pPage As IGPage, nScalingMethod As
enumIGFFTScalingMethods, bCenterTransform As Boolean) As
IGComplexObject

Parameters:

pPage
IGPage object to process.
nScalingMethod
Specifies the method of scaling the result data.
bCenterTransform
Flag to indicate whether to center the transform.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

8, 16, or 32bit grayscale images with one channel

Sample:

FreqIP


InverseFFT

Group: Method

Description:

This method performs an inverse Fast Fourier Transform.

Declaration:

InverseFFT(pComplexObject As IGComplexObject, nScalingMethod As
enumIGFFTScalingMethods, bCenterTransform As Boolean) As
IGComplexObject

Parameters:

pComplexObject
IGComplexObject object to process.
nScalingMethod
Specifies the method of scaling the result data.
bCenterTransform
Flag to indicate whether to center the transform.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


InverseFFTToImage

Group: Method

Description:

This method performs an inverse Fast Fourier Transform of the input IGComplexObject object. The difference between this method and InverseFFT is that this method returns an IGPage as the result, using the default conversion type IG_CO_OBJ_CONV_TYPE_REAL.

Declaration:

InverseFFTToImage (pComplexObject As IGComplexObject,
nScalingMethod As enumIGFFTScalingMethods, bCenterTransform As
Boolean) As IGPage

Parameters:

pComplexObject
IGComplexObject object to process.
nScalingMethod
Specifies the method of scaling the result data.
bCenterTransform
Flag to indicate whether to center the transform.

Return Value:

This method returns an IGPage object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


LowPassFilter

Group: Method

Description:

This method filters the input image using a low-pass filter, with the specified parameters.

Parameter nFilterBrand specifies the brand of filter to use, with available brands being Ideal, Butterworth, Gaussian, Chebyshev I, and Chebyshev II.

Parameter dCutoffFreq specifies the cutoff frequency for the low-pass filter. This parameter should have value within the range of [0, 1], where 0 is DC and 1 is the Nyquist frequency.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

LowPassFilter(pPage As IGPage, nFilterBrand As
enumIGFreqIPFilterBrands, dCutoffFreq As Double, nFilterOrder
As Long, dRippleFactor As Double)

Parameters:

pPage
IGPage object to be filtered
nFilterBrand
Brand of the filter to use.
dCutoffFreq
Cutoff frequency for the low-pass filter
nFilterOrder
Filter order to use, applicable to all except Ideal filter
dRippleFactor
A factor which determines the pass-band ripple for Chebyshev filters, with vaule between [0, 1].

Return Value:

N/A

Bits Per Pixel:

8bit grayscale images with one channel

Sample:

FreqIP


HighPassFilter

Group: Method

Description:

This method filters the input image using a high-pass filter, with the specified parameters.

Parameter nFilterBrand specifies the brand of filter to use, with available brands being Ideal, Butterworth, Gaussian, Chebyshev I, and Chebyshev II.

Parameter dCutoffFreq specifies the cutoff frequency for the high-pass filter. This parameter should have value within the range of [0, 1], where 0 is DC and 1 is the Nyquist frequency.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

HighPassFilter(pPage As IGPage, nFilterBrand As
enumIGFreqIPFilterBrands, dCutoffFreq As Double, nFilterOrder
As Long, dRippleFactor As Double)

Parameters:

pPage
IGPage object to be filtered
nFilterBrand
Brand of the filter to use.
dCutoffFreq
Cutoff frequency for the high-pass filter
nFilterOrder
Filter order to use, applicable to all except Ideal filter
dRippleFactor
A factor which determines the pass-band ripple for Chebyshev filters, with vaule between [0, 1].

Return Value:

N/A

Bits Per Pixel:

8bit grayscale images with one channel

Sample:

FreqIP


BandPassFilter

Group: Method

Description:

This method filters the input image using a band-pass filter, with the specified parameters.

Parameter nFilterBrand specifies the brand of filter to use, with available brands being Ideal, Butterworth, Gaussian, Chebyshev I, and Chebyshev II.

Parameters dCutoffFreqLow and dCutoffFreqHigh specify the lower and upper cutoff frequencies for the band-pass filter. The parameters should have values within the range of [0, 1], where 0 is DC and 1 is the Nyquist frequency.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

BandPassFilter(pPage As IGPage, nFilterBrand As
enumIGFreqIPFilterBrands, dCutoffFreqLow As double,
dCutoffFreqHigh As double, nFilterOrder As long, dRippleFactor
As double)

Parameters:

pPage
IGPage object to be filtered
nFilterBrand
Brand of the filter to use.
dCutoffFreqLow
Lower cutoff frequency for the band-pass filter
dCutoffFreqHigh
Higher cutoff frequency for the band-pass filter
nFilterOrder
Filter order to use, applicable to all except Ideal filter
dRippleFactor
A factor which determines the pass-band ripple for Chebyshev filters, with vaule between [0, 1].

Return Value:

N/A

Bits Per Pixel:

8bit grayscale images with one channel

Sample:

FreqIP


BandStopFilter

Group: Method

Description:

This method filters the input image using a band-stop filter, with the specified parameters.

Parameter nFilterBrand specifies the brand of filter to use, with available brands being Ideal, Butterworth, Gaussian, Chebyshev I, and Chebyshev II.

Parameters dCutoffFreqLow and dCutoffFreqHigh specify the lower and upper cutoff frequencies for the band-pass filter. The parameters should have values within the range of [0, 1], where 0 is DC and 1 is the Nyquist frequency.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

BandStopFilter(pPage As IGPage, nFilterBrand As
enumIGFreqIPFilterBrands, dCutoffFreqLow As Double,
dCutoffFreqHigh As Double, nFilterOrder As Long, dRippleFactor
As Double)

Parameters:

pPage
IGPage object to be filtered
nFilterBrand
Brand of the filter to use.
dCutoffFreqLow
Lower cutoff frequency for the band-stop filter
dCutoffFreqHigh
Higher cutoff frequency for the band-stop filter
nFilterOrder
Filter order to use, applicable to all except Ideal filter
dRippleFactor
A factor which determines the pass-band ripple for Chebyshev filters, with vaule between [0, 1].

Return Value:

N/A

Bits Per Pixel:

8bit grayscale images with one channel

Sample:

FreqIP


InverseRestore

Group: Method

Description:

This method performs image restoration using inverse filtering in the frequency domain. The idea is to deconvolve PSF from the blurred data to extract the original image.

The deconvolution involves dividing the Fourier transform of the blurred image by the Fourier transform of PSF. If the transform of PSF has very small values, then the division result from those small values could easily dominate the entire result. The approach used to get around this issue is to limit the smallest value of the transform of PSF, thus we require a threshold value, dThreshold, to be passed in as a parameter. Ideally, this value will be just above the noise level in the image. This method places zeros in the output for those data points where the magnitude of PSF transform is below the threshold. In this respect, InverseRestore is actually an implementation of a pseudo-inverse filter.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

InverseRestore(pPage As IGPage, PSFVector As IGDataArray,
dThreshold As double)

Parameters:

pPage
IGPage object to be restored
PSFVector
Double array which represents the Point Spread Function (PSF) in spatial domain, also called Degradation Function.
dThreshold
The threshold parameter for Inverse Filtering.

Return Value:

N/A

Bits Per Pixel:

8bit grayscale images with one channel

Sample:

FreqIP


WienerRestore

Group: Method

Description:

This method performs image restoration using Wiener filtering in the frequency domain. This filter is also commonly referred to as the minimum mean square error filter or the least square error filter.

Usually speaking, Wiener filtering can produce better results than inverse filtering.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

WienerRestore(pPage As IGPage, PSFVector As IGDataArray,
dWienerConstant As double)

Parameters:

pPage
IGPage object to be restored
PSFVector
Double array which represents the Point Spread Function (PSF) in spatial domain, also called Degradation Function.
dWienerConstant
The constant for Wiener Filtering.

Return Value:

N/A

Bits Per Pixel:

8bit grayscale images with one channel

Sample:

FreqIP


Convolve

Group: Method

Description:

This method convolves an image with the given kernel matrix. The convolution is implemented using FFT, based on the Convolution Theorem, which provides improved performance for larger kernel matrix.

The result of the convolution is multiplied by normalizer to scale the data. For kernels that sum to zero, the normalizer is usually set to 1.0.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

Convolve(pPage As IGPage, kernel As IGDataArray, kernWidth As
Long, kernHeight As Long, normaliser As Double, addToOrigin As
Boolean)

Parameters:

pPage
IGPage object to be processed
kernel
Array of kernel elements to convolve with.
kernWidth
Width of kernel matrix.
kernHeight
Height of kernel matrix.
normalizer
Normalizer of kernel.
addToOrigin
Whether to add the result of the convolution to the original pixel values, or replace the original pixel values.

Return Value:

N/A

Bits Per Pixel:

8, 16, 32-bit grayscale images with one channel

Sample:

FreqIP


ForwardDCT

Group: Method

Description:

This method computes the forward Discrete Cosine Transform (DCT) of the input IGComplexObject object.

Declaration:

ForwardDCT(pComplexObject As IGComplexObject) As
IGComplexObject

Parameters:

pComplexObject
IGComplexObject object to process.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


ForwardDCTFromImage

Group: Method

Description:

This method computes the forward Discrete Cosine Transform (DCT) of the input image. The difference between this method and ForwardDCT() is that this method takes an IGPage as the input.

Declaration:

ForwardDCTFromImage(pPage As IGPage) As IGComplexObject

Parameters:

pPage
IGPage object to process.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

8, 16, 32-bit grayscale images with one channel

Sample:

FreqIP


InverseDCT

Group: Method

Description:

This method computes the inverse Discrete Cosine Transform of the input IGComplexObject object.

Declaration:

InverseDCT(pComplexObject As IGComplexObject) As
IGComplexObject

Parameters:

pComplexObject
IGComplexObject object to process.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


InverseDCTToImage

Group: Method

Description:

This method computes the inverse Discrete Cosine Transform of the input IGComplexObject object. The difference between this method and InverseDCT() is that this method returns an IGPage as the result, using the default conversion type IG_CO_OBJ_CONV_TYPE_REAL.

Declaration:

InverseDCTToImage(pComplexObject As IGComplexObject) As IGPage

Parameters:

pComplexObject
GComplexObject object to process.

Return Value:

This method returns an IGPage object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


ForwardDST

Group: Method

Description:

This method computes the forward Discrete Sine Transform (DST) of the input IGComplexObject object.

Declaration:

ForwardDST(pComplexObject As IGComplexObject) As
IGComplexObject

Parameters:

pComplexObject
IGComplexObject object to process.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits per Pixel:

N/A

Sample:

FreqIP


ForwardDSTFromImage

Group: Method

Description:

This method computes the forward Discrete Sine Transform (DST) of the input image. The difference between this method and ForwardDST() is that this method takes an IGPage as the input.

Declaration:

ForwardDSTFromImage(pPage As IGPage) As IGComplexObject

Parameters:

pPage
IGPage object to process.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

8, 16, 32-bit grayscale images with one channel

Sample:

FreqIP


InverseDST

Group: Method

Description:

This method computes the inverse Discrete Sine Transform of the input IGComplexObject object.

Declaration:

InverseDST(pComplexObject As IGComplexObject) As
IGComplexObject

Parameters:

pComplexObject
IGComplexObject object to process.

Return Value:

This method returns an IGComplexObject object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


InverseDSTToImage

Group: Method

Description:

This method computes the inverse Discrete Sine Transform of the input image. The difference between this method and InverseDST() is that this method returns an IGPage as the result, using the default conversion type IG_CO_OBJ_CONV_TYPE_REAL.

Declaration:

InverseDSTToImage(pComplexObject As IGComplexObject) As IGPage

Parameters:

pComplexObject
IGComplexObject object to process.

Return Value:

This method returns an IGPage object, which contains result data.

Bits Per Pixel:

N/A

Sample:

FreqIP


IGComplexObject

Type: Object

Description:

Objects of this type can store both real and imaginary part of complex data, which is stored internally using double precision, rather than one of the integral types as in IGPage. Objects of this type can be used as input or output for frequency domain image processing functions so as to keep the precision of the data.

Interface:

IIGComplexObject extends IIGObject

Class Members:

Create
method
Create a complex object.
CreateEmpty
method
Create a complex object, with empty but allocated buffers.
Clear
method
Clear the content of a complex object.
IsValid
method
Check whether this is a valid complex object.
GetRealRasterCopy
method
Create a new IGDataArray object and copies to it the real data at the specified row.
GetImaginaryRasterCopy
method
Creates a new IGDataArray object and copies to it the imaginary data at the specified row.
UpdateRealRasterFrom
method
Updates the real data at the specified row, using data from the IGDataArray object.
UpdateImaginaryRasterFrom
method
Updates the imaginary data at the specified row, using data from the IGDataArray object.
GetDimensions
method
Get dimensions of the object.
ToImage
method
Convert a complex object to an IGPage object.
ToImageWithParameters
method
Convert a complex object to an IGPage object, also return the parameters used to scale the output.


Create

Group: Method

Declaration:

Create(pPageRe As IGPage, pPageIm As IGPage);

Parameters:

pPageRe
IGPage Object to be used as the real part of the newly created object.
pPageIm
IGPage Object to be used as the imaginary part of the newly created object.

Description:

This method creates the content of an IGComplexObject, using the given pPageRe and pPageIm. The object itself can be created using method CreateComplexObject() of CIGFreqIPCtl.

The dimension of the created object is determined by the width and height of pPageRe and pPageIm. If pPageIm is not NULL, this method requires pPageRe and pPageIm to have the same width and height; otherwise, the width and height of pPageRe is used.

Data from pPageRe and pPageIm is then used respectively to populate the real and imaginary buffer in the created object.

Note that pPageRe and pPageIm should only have one channel with bit depth being 8, 16 or 32.

Return Value:

N/A

Bits Per Pixel:

8, 16, or 32bit grayscale images with one channel


CreateEmpty

Group: Method

Description:

This method creates empty but allocated buffers for an IGComplexObject, based on the given width and height. The buffers can be populated later by obtaining pointers to the buffers. The object itself can be created using method CreateComplexObject() of CIGFreqIPCtl.

Declaration:

CreateEmpty(width As Long, height As Long);

Parameters:

width
Width of the object to be created.
height
Height of the object to be created.

Return Value:

N/A

Bits Per Pixel:

N/A


Clear

Group: Method

Description:

This method deletes the content of a complex object.

Declaration:

Clear()

Parameters:

N/A

Return Value:

N/A

Bits Per Pixel:

N/A


IsValid

Group: Method

Description:

This method checks to see whether this is a valid complex object.

Declaration:

IsValid() As Boolean

Parameters:

N/A

Return Value:

True/False.

Bits Per Pixel:

N/A


GetRealRasterCopy

Group: Method

Description:

This method creates a new IGDataArray object and copies to it the real data at the specified row.

Declaration:

GetRealRasterCopy(rowNum As Long) As IGDataArray

Parameters:

rowNum
Index of the row to get real data for.

Return Value:

A new instance of IGDataArray object, containing the real data at the specified row.

Bits Per Pixel:

N/A


GetImaginaryRasterCopy

Group: Method

Description:

This method creates a new IGDataArray object and copies to it the imaginary data at the specified row.

Declaration:

GetImaginaryRasterCopy(rowNum As Long) As IGDataArray

Parameters:

rowNum
Index of the row to get imaginary data for.

Return Value:

A new instance of IGDataArray object, containing the imaginary data at the specified row.

Bits Per Pixel:

N/A


UpdateRealRasterFrom

Group: Method

Description:

This method updates the real data at the specified row, using data from the IGDataArray object. Note that the IGDataArray object must be of type double.

Declaration:

UpdateRealRasterFrom(rowNum As Long, ReDataArray As
IGDataArray)

Parameters:

rowNum
Index of the row to get real data for.
ReDataArray
IGDataArray object to copy the data from.

Return Value:

N/A

Bits Per Pixel:

N/A


UpdateImaginaryRasterFrom

Group: Method

Declaration:

UpdateImaginaryRasterFrom(rowNum As Long, ImDataArray As
IGDataArray)

Parameters:

rowNum
Index of the row to get real data for.
ImDataArray
IGDataArray object to copy the data from.

Description:

This method updates the imaginary data at the specified row, using data from the IGDataArray object. Note that the IGDataArray object must be of type double.

Return Value:

N/A

Bits Per Pixel:

N/A


GetDimensions

Group: Method

Description:

This method obtains the width and height of the given object.

Declaration:

GetDimensions(pWidth As Long, pHeight As Long )

Parameters:

pWidth
Returns the width of the object.
pHeight
Returns the height of the object.

Return Value:

N/A

Bits Per Pixel:

N/A


ToImage

Group: Method

Description:

This method converts a complex object to an IGPage object, using the conversion type specified by parameter nConvType. A complex object should be converted to IGPage only for displaying purpose; otherwise, it should remain in its original format to retain the data accuracy.

Because an IGComplexObject object contains both real and imaginary data, we need to first combine these two data sets into one in order to store the result in an IGPage object, using the option specified by the parameter nConvType. Options available include IG_CO_OBJ_CONV_TYPE_REAL, IG_CO_OBJ_CONV_TYPE_IMAGINARY, IG_CO_OBJ_CONV_TYPE_MAGNITUDE, etc. Please see the help page for enumIGCoObjConvType for details.

The dimensions of the converted IGPage object are determined by those of the complex object, with width and height being the same. The depth of the IGPage object can be 8, 16 or 32, depending on the image size. If the image size is less than or equal to (1 << 8), then the depth will be 8bit; less than or equal to (1 << 16), then 16bit; otherwise, the depth will be 32bit. Of course, the IGPage object will only have one channel.

Once the bit depth is determined, data are then scaled linearly to occupy the entire range of that bit depth and copied to the buffer of IGPage.

If it is desirable to return minimum value before scaling and also scale factor, method ToImageWithParameters() should be used instead .

Declaration:

ToImage(nConvType As enumIGCoObjConvType) As IGPage

Parameters:

nConvType
Conversion type used to convert the object to IGPage.

Return Value:

Returns the converted IGPage object.

Bits Per Pixel:

N/A


ToImageWithParameters

Group: Method

Description:

This method converts a complex object to an IGPage object, using the conversion type specified by parameter nConvType. A complex object should be converted to IGPage only for displaying purpose; otherwise, it should remain in its original format to retain the data accuracy.

Because an IGComplexObject object contains both real and imaginary data, we need to first combine these two data sets into one in order to store the result in an IGPage object, using the option specified by the parameter nConvType. Options available include IG_CO_OBJ_CONV_TYPE_REAL, IG_CO_OBJ_CONV_TYPE_IMAGINARY, IG_CO_OBJ_CONV_TYPE_MAGNITUDE, etc. Please see the help page for enumIGCoObjConvType for details.

The dimensions of the converted IGPage object are determined by those of the complex object, with width and height being the same. The depth of the IGPage object can be 8, 16 or 32, depending on the image size. If the image size is less than or equal to (1 << 8), then the depth will be 8bit; less than or equal to (1 << 16), then 16bit; otherwise, the depth will be 32bit. Of course, the IGPage object will only have one channel.

Once the bit depth is determined, data are then scaled linearly to occupy the entire range of that bit depth and copied to the buffer of IGPage.

Minimum value before scaling and scale factor can be returned through pMinimum and pScale if wanted, so as to provide a coarse way to reconstruct the data.

Declaration:

ToImageWithParameters(nConvType As enumIGCoObjConvType,
pMinimum As Double, pScale As Double) As IGPage

Parameters:

nConvType
Conversion type used to convert the object to IGPage.
pMinimum
Returns the minimum value of the data before scaling.
pScale
Returns the scale factor.

Return Value:

Returns the converted IGPage object.

Bits Per Pixel:

N/A


FreqIP Enumerations

The following enumerations are used in this component:

enumIGCoObjConvType
Conversion types to convert an ImGearComplexObject object to an ImGearPage object
enumIGFFTScalingMethods
Scaling methods for the result of Fast Fourier Transform (FFT)
enumIGFreqIPFilterBrands
Filter brands available


enumIGCoObjConvType

Group: Enumeration

Description:

These constants define the conversion types to convert an IGComplexObject object to an IGPage object.

Values (with description):

IG_CO_OBJ_CONV_TYPE_REAL
Use the real data.
IG_CO_OBJ_CONV_TYPE_IMAGINARY
Use the imaginary data.
IG_CO_OBJ_CONV_TYPE_MAGNITUDE
Use the magnitude data.
IG_CO_OBJ_CONV_TYPE_PHASE
Use the phase data.
IG_CO_OBJ_CONV_TYPE_LOGMAG
Use the logarithm (10) of the magnitude data.
IG_CO_OBJ_CONV_TYPE_LOGMAGP1
Use the logarithm (10) of (magnitude data + 1).
IG_CO_OBJ_CONV_TYPE_MAGSQ
Use the square of the magnitude.
IG_CO_OBJ_CONV_TYPE_LOGMAGSQ
Use the logarithm (10) of the square of the magnitude.
IG_CO_OBJ_CONV_TYPE_LOGMAGSQP1
Use the logarithm (10) of (square of the magnitude + 1).


enumIGFFTScalingMethods

Group: Enumeration

Description:

These constants define the different scaling methods for the result of Fast Fourier Transform (FFT).

Values (with description):

IG_FFT_SCALING_UNITY
Unity scaling, i.e., no scaling on the result
IG_FFT_SCALING_N
Scale by 1/N on each dimension
IG_FFT_SCALING_SQRTN
Scale by 1/sqrt(N) on each dimension


enumIGFreqIPFilterBrands

Group: Enumeration

Description:

These constants define the different kind of filter brands available.

Values:

IG_FREQIP_FILTER_BRAND_IDEAL
Ideal Filter
IG_FREQIP_FILTER_BRAND_BUTTERWORTH
Butterworth Filter
IG_FREQIP_FILTER_BRAND_GAUSSIAN
Gaussian Filter
IG_FREQIP_FILTER_BRAND_CHEBYSHEV_I
Type 1 Chebyshev Filter
IG_FREQIP_FILTER_BRAND_CHEBYSHEV_II
Type 2 Chebyshev Filter


ImageGear GUI Component API Reference

ImageGear GUI Component API Reference

This Chapter represents references of ImageGear GUI controls and their API defined in ImageGear GUI component:

  • GUI Dialogs Control
  • GUI Magnifier Control
  • GUI Palette Control
  • GUI Pan Control
  • GUI Thumbnail Control


GUI Dialogs Control

The GUI Dialogs Control (IGGUIDlgCtl) is provided to save the ImageGear programmer from having to develop application dialog boxes for 17 of the more commonly used ImageGear functions. The 17 functions are broken into 3 categories:

  • Display - Functions that affect how the image appears on the screen (or on printed output), but not the actual image itself
  • Processing - Functions that modify the actual image itself
  • Miscellaneous - Functions, like "file open dialog," that do not fit in either of the two other categories

To use the IGGUIDlgCtl ActiveX control, you must first make an instance of the control available. In Visual Basic, this is done as follows:

  1. Use the Project/Components menu function to bring up the Components dialog.
  2. Scroll down to the "IGGUIDlg 1.0 Type Library" entry under the "Controls" tab.
  3. Check the check-box for that entry.
  4. Click the "OK" button.

Just before clicking "OK", the dialog will look like the following:

You'll then have the IGGUIDlg control on your Toolbox. You can then place a copy of the control on your application by double-clicking the control icon in the toolbox. For example, after placing the control on the "MainFrm" form in the sample GUIDlg program, the Visual Basic editor looks like this:

The Toolbar icon for the control is shown in the red box on the left, and the instance of the control (named IGGUIDlgCtl1) is shown in the red box on the right.

There are some properties of the IGGUIDlgCtl that should be set once, when your application starts up. The VB code to do this is best placed in the Form_Load subroutine. In the sample GUIDlg program, it looks like this:

    On Error GoTo ErrorHandler
    IGGUIDlgCtl1.CoreCtl = IGCoreCtl1
    IGGUIDlgCtl1.FormatsCtl = IGFormatsCtl1
    IGGUIDlgCtl1.DisplayCtl = IGDisplayCtl1
    IGGUIDlgCtl1.ProcessingCtl = IGProcessingCtl1
    IGGUIDlgCtl1.EffectsCtl = IGEffectsCtl1
    Exit Sub
ErrorHandler:
    MsgBox "ImageGear GUIDlg control returned an error (" +
Hex(Err.Number) + "):" + vbCrLf + Err.Description,
vbExclamation, "IGGUIDlg Error"
End Sub

Like the other ImageGear GUI controls, IGGUIDlgCtl uses the COM Error object to report errors. VB programmers use the On Error statement to specify how to handle errors. After each call to an IGGUIDlgCtl method, if there was an error, then the program can inspect Err.Number and Err.Description to determine what went wrong. The list of possible Err.Number values is in the enumIGGUIDlgCtlErrors enumeration.

NOTE: Sometimes the error is detected by the ImageGear controls. In that case, the Err.Number and Err.Description values will be those generated by the ImageGear control.


IGGUIDlgCtl

Group: Control

Interface:

IGGUIDlgCtl extends IDispatch

Class Members:

CoreCtl
Property
Set this to your IGCoreCtl control before calling any of the IP or miscellaneous methods.
Directory
Property
Set this before calling ShowOpenDirDlg, ShowSaveFileDlg or ShowLoadFileDlg, to pre-set the dialog to a particular directory.
DisplayCtl
Property
Set this to your IGDisplayCtl control before calling any of the methods.
FileName
Property
After calling ShowLoadFileDlg or ShowSaveFileDlg, if the function return-value is True, then the name of the file chosen by the end-user will be in here.
FormatsCtl
Property
Set this to your IGFormatsCtl control before calling any of the miscellaneous methods.
PageNum
Property
After calling ShowSaveFileDlg or ShowLoadFileDlg, if the function return-value is True, then the page-number chosen by the end-user will be in here.
PDFCtl
Property
Reference to the PDF control.
PrintProperties
Property
Specifies printing properties used by ShowPrintPageDlg method.
ProcessingCtl
Property
Set this to your IGProcessingCtl control before calling any of the IP methods.
SaveFormat
Property
After calling ShowSaveFileDlg, if the function return-value is True, then the file format chosen by the end-user will be in here.
SaveMode
Property
After calling ShowSaveFileDlg, if the function return-value is True, then the file save-mode chosen by the end-user will be in here.
GetEnableICC
Method
This method checks to determine whether ICC support is currently enabled.
GetShowICCWarning
Method
This method gets the state of the registry entry that determines whether we should show the warning dialog related to embedded color profile or non-RGB color format.
ShowColorBookPropertiesDlg
Method
Displays Color Book properties dialog
ShowColorBooksDlg
Method
Displays Color Books dialog allowing the user to manipulate with the loaded books as well as to add new and remove existing.
ShowColorMismatchDlg
Method
This method performs several checks to determine whether to show a color mismatch warning dialog.
ShowDisplayAlignmentDlg
Method
Sets the alignment of the image within the display window.
ShowDisplayAntialiasingDlg
Method
Controls the anti-aliasing applied to text in scanned pages.
ShowDisplayBackgroundDlg
Method
Controls the background areas within the display window.
ShowDisplayDitheringDlg
Method
Controls the dithering of high-bit-depth images to low-bit-depth output.
ShowDisplayFittingDlg
Method
Controls the way that the image is fit within the display window.
ShowDisplayGammaDlg
Method
Controls the contrast, brightness and gamma-correction used to display an image (as opposed to ShowIPContrastDlg).
ShowDisplayOrientationDlg
Method
Controls the orientation of the image (e.g., landscape or portrait) within the display window.
ShowExtraChannelColorChoiceDlg
Method
Displays a color specification of the specified extra channel.
ShowExtraChannelsDlg
Method
Displays a list of extra channels available in the image.
ShowFileInfoDlg
Method
Displays information about an image file.
ShowIPContrastDlg
Method
Provides a means for the user to set the brightness, contrast and gamma-correction of the actual image (as opposed to ShowDisplayGammaDlg).
ShowIPCropDlg
Method
Provides a means for the user to crop the actual image.
ShowIPResizeDlg
Method
Provides a means for the user to resize the actual image.
ShowIPRotateDlg
Method
Provides a means for the user to rotate the actual image.
ShowLayersDlg
Method
Shows the image layers dialog box.
ShowLayerPropertiesDlg
Method
Shows the specified layer's properties dialog box.
ShowLoadFileDlg
Method
An ImageGear enhanced version of the standard file-chooser dialog.
ShowOpenDirDlg
Method
The standard directory-chooser dialog.
ShowPageInfoDlg
Method
Displays information about the image in an IGPage object.
ShowPrintDocDlg
Method
Print dialog used for printing a document.
ShowPrintPageDlg
Method
An ImageGear enhanced version of the Print dialog.
ShowSaveFileDlg
Method
An ImageGear enhanced version of the standard Save-As dialog.
ShowSpotColorMismatchDlg
Method
Performs checks to determine whether to show a spot color mismatch warning dialog.
SwitchEnableICC
Method
This method switches the state of enabling/disabling ICC support, and returns the state after switching.
SwitchShowICCWarning
Method
This method switches the state of the registry entry that determines whether we should show the warning dialog related to embedded color profile or non-RGB color format, and returns the result after switching.

Enumerations:

enumIGGUIDlgCtlErrors
Used to indicate problems or failures in the course of processing
enumIGPageSaveModes
This enumeration lists the various file save-modes supported by ImageGear
enumIGSaveFormats
This enumeration lists the various file formats supported by ImageGear


CoreCtl

Group: Property

Description:

Set this to your IGCoreCtl control before calling any of the IP or miscellaneous methods.

Property Summary:

Data Type:
IGCoreCtl
Default Value:
Null
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


Directory

Group: Property

Description:

Set this before calling ShowOpenDirDlg, ShowSaveFileDlg or ShowLoadFileDlg, to pre-set the dialog to a particular directory. After calling ShowOpenDirDlg, if the function return-value is True, then the name of the directory chosen by the end-user will be in here.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
Any fully-qualified directory name. Can either be specified with a drive letter (e.g., "C:\My Pictures") or in UNC format (e.g., "\\ImageShare\Corp Pictures").
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


DisplayCtl

Group: Property

Description:

Set this to your IGDisplayCtl control before calling any of the methods.

Property Summary:

Data Type:
IGDisplayCtl
Default Value:
Null
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


FileName

Group: Property

Description:

After calling ShowLoadFileDlg or ShowSaveFileDlg, if the function return-value is True, then the name of the file chosen by the end-user will be in here. You can then use FileName to call the IGFormatsCtl LoadPageFromFile, LoadDocumentFromFile, SavePageToFile or SaveDocumentToFile function.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


FormatsCtl

Group: Property

Description:

Set this to your IGFormatsCtl control before calling any of the miscellaneous methods.

Property Summary:

Data Type:
IGFormatsCtl
Default Value:
Null
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


PageNum

Group: Property

Description:

After calling ShowSaveFileDlg or ShowLoadFileDlg, if the function return-value is True, then the page-number chosen by the end-user will be in here. You can then use PageNum to call the IGFormatsCtl SavePageToFile or LoadPageFromFile function.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


PDFCtl

Group: Property

Description:

This is the reference to the PDF control. It is required by ShowPrintDocDlg for native PDF printing. If it is set to NULL raster PDF printing is applied.

Property Summary:

Data Type:
IGPDFCtl
Default Value:
Null
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
None


PrintProperties

Group: Property

Description:

Specifies printing properties used by ShowPrintPageDlg method.

Property Summary:

Data Type:
IGPrintProperties
Default Value:
Null
Access:
Read only
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


ProcessingCtl

Group: Property

Description:

Set this to your IGProcessingCtl control before calling any of the IP methods.

Property Summary:

Data Type:
IGProcessingCtl
Default Value:
Null
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


SaveFormat

Group: Property

Description:

After calling ShowSaveFileDlg, if the function return-value is True, then the file format chosen by the end-user will be in here. You can then use SaveFormat to call the IGFormatsCtl SavePageToFile or SaveDocumentToFile function.

Property Summary:

Data Type:
enumIGSaveFormats
Default Value:
IG_SAVE_UNKNOWN
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


SaveMode

Group: Property

Description:

After calling ShowSaveFileDlg, if the function return-value is True, then the file save-mode chosen by the end-user will be in here. You can then use SaveMode to call the IGFormatsCtl . SavePageToFile function.

Property Summary:

Data Type:
enumIGPageSaveModes
Default Value:
IG_PAGESAVEMODE_OVERWRITE
Access:
Read/Write
Settings:
Any value of enumIGPageSaveModes
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


GetEnableICC

Group: Method

Description:

This method checks to determine whether ICC support is currently enabled.

Declaration:

GetEnableICC() as VARIANT_BOOL

Parameters:

None

Return Value:

True/False

Bits Per Pixel:

N/A

Sample

ig_guidlg_vb6.exe


GetShowICCWarning

Group: Method

Description:

This method gets the state of the registry entry that determines whether we should show the warning dialog related to embedded color profile or non-RGB color format.

Declaration:

GetShowICCWarning() as VARIANT_BOOL

Parameters:

None

Return Value:

True/False

Bits Per Pixel:

N/A

Sample:

ig_guidlg_vb6.exe


ShowColorBookPropertiesDlg

Group: Method

Declaration:

Sub ShowColorBookPropertiesDlg(Book As IGColorBook)

Description:

This method displays Color Book properties dialog, allowing the user to work with color book colors.

Parameters:

Book
Color book object (IGColorBook).

Return Value:

N/A

Bits Per Pixel:

All

Sample:

ig_guidlg_vb6.exe


ShowColorBooksDlg

Group: Method

Declaration:

Sub ShowColorBooksDlg()

Description:

This method displays Color Books dialog, allowing the user to manipulate with the loaded books as well as to add new and remove existing.

Parameters:

N/A

Return Value:

N/A

Bits Per Pixel:

All

Sample:

ig_guidlg_vb6.exe


ShowColorMismatchDlg

Group: Method

Description:

This method performs several checks to determine whether to show a color mismatch warning dialog, as follows:

The warning dialog will be shown if all of the following are true.

  • The registry entry for "show color mismatch warning" is enabled.
  • The ICC support is currently disabled.
  • The given page either has embedded color profile, or has non-RGB color format.

Declaration:

ShowColorMismatchDlg(pPage as IGPage)

Parameter:

pPage
Provide the IGPage object to check whether it has embedded color profile, or has non-RGB color format.

Return value:

<None>

Bits Per Pixel:

All

Sample:

ig_guidlg_vb6.exe


ShowDisplayAlignmentDlg

Group: Method

Description:

Shows the Display: Alignment dialog. The Display: Alignment dialog is as follows:

The radio buttons on the left side of the dialog are used to set the alignment parameters for the display of the image.

The user can click the "Preview Changes" checkbox to see the effects of the alignment parameters in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the alignment parameters to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "OK".

Clicking the "Apply" button will apply the alignment parameters to the image referenced by thePageDisplay, but leave the dialog on the screen. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowDisplayAlignmentDlg (thePageDisplay As IGPageDisplay, hWnd
As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtl n.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowDisplayAntialiasingDlg

Group: Method

Description:

Shows the Display: Antialias dialog. The Display: Antialias dialog is as follows:

The pull-down list, checkbox and slider controls on the left side of the dialog are used to set the anti-aliasing parameters for the display of the image.

The user can click the "Preview Changes" checkbox to see the effects of the anti-aliasing parameters in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the anti-aliasing parameters to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "OK".

Clicking the "Apply" button will apply the anti-aliasing parameters to the image referenced by thePageDisplay, but leave the dialog on the screen. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowDisplayAntialiasingDlg  (thePageDisplay As IGPageDisplay,
hWnd As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowDisplayBackgroundDlg

Group: Method

Description:

Shows the Display: Background dialog. The Display: Background dialog is as follows:

The R/G/B settings and checkboxes on the left side of the dialog are used to set the background handling parameters for the display of the image. The "Background Image..." brings up the ShowFileInfoDlg dialog, allowing the user to choose a second image (typically a pattern image) to use as the background.

The user can click the "Preview Changes" checkbox to see the effects of the background handling parameters in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the background handling parameters to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "OK".

Clicking the "Apply" button will apply the background handling parameters to the image referenced by thePageDisplay, but leave the dialog on the screen. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowDisplayBackgroundDlg (thePageDisplay As IGPageDisplay, hWnd
As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowDisplayDitheringDlg

Group: Method

Description:

Shows the Display: Dither dialog. The Display: Dither dialog is as follows:

The drop-down list and checkboxes on the left side of the dialog are used to set the dithering parameters for the display of the image.

The user can click the "Preview Changes" checkbox to see the effects of the dithering parameters in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the dithering parameters to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "OK".

Clicking the "Apply" button will apply the dithering parameters to the image referenced by thePageDisplay, but leave the dialog on the screen. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowDisplayDitheringDlg (thePageDisplay As IGPageDisplay, hWnd
As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowDisplayFittingDlg

Group: Method

Description:

Shows the Display: Fit dialog. The Display: Fit dialog is as follows:

The radio buttons on the left side of the dialog are used to set the fit parameters for the display of the image.

The user can click the "Preview Changes" checkbox to see the effects of the fit parameters in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the fit parameters to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "OK".

Clicking the "Apply" button will apply the fit parameters to the image referenced by thePageDisplay, but leave the dialog on the screen. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowDisplayFittingDlg (thePageDisplay As IGPageDisplay, hWnd As
Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowDisplayGammaDlg

Group: Method

Description:

Shows the Display: Contrast, Brightness and Gamma dialog. The Display: Contrast, Brightness and Gamma dialog is as follows:

The sliders and drop-down list on the left side of the dialog are used to set the brightness, contrast and gamma-correction parameters for the display of the image. The settings can be applied to a single (red, green or blue) channel, or to all 3 channels, simultaneously. The graph at the top of the dialog shows the intensity transform function as defined by the brightness, contrast and gamma-correction settings.

The user can click the "Preview Changes" checkbox to see the effects of the brightness, contrast and gamma-correction parameters in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the brightness, contrast and gamma-correction parameters to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "OK".

Clicking the "Apply" button will apply the brightness, contrast and gamma-correction parameters to the image referenced by thePageDisplay, but leave the dialog on the screen. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowDisplayGammaDlg (thePageDisplay As IGPageDisplay, hWnd As
Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowDisplayOrientationDlg

Group: Method

Description:

Shows the Display: Orientation dialog.

The Display: Orientation dialog is as follows:

The radio buttons on the left side of the dialog are used to set the orientation of the image as it is displayed.

The user can click the "Preview Changes" checkbox to see the effects of the orientation setting in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the orientation setting to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "OK".

Clicking the "Apply" button will apply the orientation setting to the image referenced by thePageDisplay, but leave the dialog on the screen. Note that you must specify the hWnd parameter in order for the end-user to see any changes when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowDisplayOrientationDlg (thePageDisplay As IGPageDisplay,
hWnd As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowExtraChannelColorChoiceDlg

Group: Method

Declaration:

Sub ShowExtraChannelColorChoiceDlg(Image As IGPage, Index As
Long)

Description:

This method displays a color specification of the specified extra channel. This dialog can be used for editing extra channel's color.

Parameters:

Image
IGPage object.
Index
Index of the extra channel.

Return Value:

N/A

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowExtraChannelsDlg

Group: Method

Declaration:

Sub ShowExtraChannelsDlg(Image As IGPage, PageDisplay As
IGPageDisplay)

Description:

This method displays a list of extra channels available in the image. This dialog can be used turn on and off extra channels for display.

Parameters:

Image
IGPage object.
PageDisplay
IGPageDisplay object associated with IGPage.

Return Value:

N/A

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowFileInfoDlg

Group: Method

Description:

Shows the File Information dialog. There are no arguments to this subroutine, but the programmer must set the IGGUIDlgCtl .FileName property before calling ShowFileInfoDlg. The FileName property can either be set directly, or by calling ShowLoadFileDlg or ShowSaveFileDlg.

The File Information dialog is as follows:

For multi-page files, the Page control allows the end-user to see a preview of each page in the file.

Clicking the "OK" button will close the dialog and set the IGGUIDlgCtl.PageNum property to the chosen page number.

Declaration:

ShowFileInfoDlg()

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowIPContrastDlg

Group: Method

Description:

Shows the Image Processing: Brightness, Contrast and Gamma dialog. The Image Processing: Brightness, Contrast and Gamma dialog is as follows:

The sliders and drop-down list on the left side of the dialog are used to set the brightness, contrast and gamma-correction parameters for the image. The settings can be applied to a single (red, green or blue) channel, or to all 3 channels, simultaneously. The graph at the top of the dialog shows the intensity transform function as defined by the brightness, contrast and gamma-correction settings.

Note that there is no "undo" capability in this dialog: if the end-user clicks "OK" or "Apply", then the image referenced by thePageDisplay is modified. If your application needs to provide an "undo" capability, then you should make a copy of the IGPage object associated with thePageDisplay before calling ShowIPContrastDlg. Then, if the end-user decides to "undo" the action, your program can simply replace the modified IGPage object with the unmodified copy.

The user can click the "Preview Changes" checkbox to see the effect of the settings on the image in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will apply the settings to the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "OK".

Clicking the "Apply" button will apply the settings to the image referenced by thePageDisplay, but leave the dialog on the screen - the preview will be redisplayed, showing the image with its new settings. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowIPContrastDlg (thePageDisplay As IGPageDisplay, hWnd As
Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowIPCropDlg

Group: Method

Description:

Shows the Image Processing: Crop dialog. The Image Processing: Crop dialog is as follows:

The Left/Top/Right/Bottom controls on the left side of the dialog are used to set the size of the cropping rectangle.

Note that there is no "undo" capability in this dialog: if the end-user clicks "OK" or "Apply", then the image referenced by thePageDisplay is modified. If your application needs to provide an "undo" capability, then you should make a copy of the IGPage object associated with thePageDisplay before calling ShowIPCropDlg. Then, if the end-user decides to "undo" the action, your program can simply replace the modified IGPage object with the unmodified copy.

The user can click the "Preview Changes" checkbox to see the cropping rectangle superimposed on the image in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will crop the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "OK".

Clicking the "Apply" button will crop the image referenced by thePageDisplay, but leave the dialog on the screen - the preview will be redisplayed, showing the now-cropped image. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowIPCropDlg (thePageDisplay As IGPageDisplay, hWnd As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowIPResizeDlg

Group: Method

Description:

Shows the Image Processing: Resize dialog. The Image Processing: Resize dialog is as follows:

The Width, Height, Aspect Ratio and Interpolation controls on the left side of the dialog are used to set the resizing parameters.

Note that there is no "undo" capability in this dialog: if the end-user clicks "OK" or "Apply", then the image referenced by thePageDisplay is modified. If your application needs to provide an "undo" capability, then you should make a copy of the IGPage object associated with thePageDisplay before calling ShowIPResizeDlg. Then, if the end-user decides to "undo" the action, your program can simply replace the modified IGPage object with the unmodified copy.

The user can click the "Preview Changes" checkbox to see the effects of the resizing parameters on the image in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will resize the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "OK".

Clicking the "Apply" button will resize the image referenced by thePageDisplay, but leave the dialog on the screen - the preview will be redisplayed, showing the now-cropped image. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Description:

ShowIPResizeDlg (thePageDisplay As IGPageDisplay, hWnd As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowIPRotateDlg

Group: Method

Description:

Shows the Image Processing: Rotate/Flip dialog. The Image Processing: Rotate/Flip dialog is as follows:

The Rotate and Flip controls on the left side of the dialog are used to specify the way in which the image will be modified.

Note that there is no "undo" capability in this dialog: if the end-user clicks "OK" or "Apply", then the image referenced by thePageDisplay is modified. If your application needs to provide an "undo" capability, then you should make a copy of the IGPage object associated with thePageDisplay before calling ShowIPRotateDlg. Then, if the end-user decides to "undo" the action, your program can simply replace the modified IGPage object with the unmodified copy.

The user can click the "Preview Changes" checkbox to see the rotated/flipped image in the preview area (they can leave the checkbox un-checked if the image is particularly large and therefore takes a long time to render).

Clicking the "OK" button will rotate and/or flip the image referenced by thePageDisplay, and then close the dialog. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "OK".

Clicking the "Apply" button will rotate and/or flip the image referenced by thePageDisplay, but leave the dialog on the screen - the preview will be redisplayed, showing the now-cropped image. Note that you must specify the hWnd parameter in order for the end-user to see any changes to thePageDisplay image when they click "Apply".

Clicking the "Cancel" button will close the dialog without making any changes.

Declaration:

ShowIPRotateDlg (thePageDisplay As IGPageDisplay, hWnd As Long)

Parameters:

thePageDisplay
Provide the IGPageDisplay object that your program is using to handle display functions for your image.
hWnd
If your image is presented via IGPageViewCtl, then specify IGPageViewCtln.hWnd.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowLayersDlg

Group: Method

Description:

This method shows the image layers dialog box. User can choose the layers to flatten and display as well as edit the layers properties.

Declaration:

ShowLayersDlg(Page As IGPage, hWnd As Long)

Parameters:

Page
IGPage with layers.
hWnd
A parent window for the image layers dialog.

Return Value:

Error count.


ShowLayerPropertiesDlg

Group: Method

Description:

This method shows the specified layer's properties dialog box. User can view and edit the layers properties using this dialog.

Declaration:

ShowLayerPropertiesDlg(Layer As IGLayer)

Parameters:

Layer
IGLayer object whose prorerties are accessed.

Return Value:

Error count.


ShowLoadFileDlg

Group: Method

Description:

Shows the Windows standard file-chooser dialog. There are no arguments to this subroutine, but the programmer may set the IGGUIDlgCtl n.Directory property before calling ShowOpenDirDlg, to set the "starting point" from which the end-user will navigate.

The file-chooser dialog is slightly modified as displayed by ShowLoadFileDlg, and is as follows:

The dialog behaves essentially the same as the standard Windows file-chooser dialog: the user navigates to different directories using the "Look in:" pulldown, the navigation buttons, and by double-clicking in the list area. Whenever a file is selected, its name is displayed in the "File name:" field.

The "Files of type" pull-down list displays all of the image file-types supported by ImageGear, plus an "All Files" entry. When the user selects a particular file-type, then the list area will only show directories and files whose file-name extensions correspond to the selected file-type.

The "File Info:" field is generated by ImageGear, by reading the first few bytes of the file and determining its actual file-type (thus, for instance, a JPEG image might be mis-named "foobar.bmp" - the "File Info" field will nevertheless show that the file is a 1-page JPEG file).

Clicking the "Open" button will close the dialog, set the IGGUIDlgCtl n.FileName property to the chosen file, set the IGGUIDlgCtl n.PageNum property to the chosen page number and return True to the application program. Note that the file is not loaded by the ShowLoadFileDlg processing: it is up to the application programmer to actually call IGFormatsCtl n.LoadPageFromFile or IGFormatsCtl n.LoadDocumentFromFile.

Clicking the "Cancel" button will close the dialog and return False to the application program.

Clicking the "Details" button will display the File Information dialog (see ShowFileInfoDlg above) for the currently selected file.

Declaration:

ShowLoadFileDlg() As Boolean

Return value:

True indicates that the user chose a filename and page number and clicked "Open". False indicates that the user clicked "Cancel".

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowOpenDirDlg

Group: Method

Description:

Shows the Windows standard directory-chooser dialog. There are no arguments to this subroutine, but the programmer may set the IGGUIDlgCtl .Directory property before calling ShowOpenDirDlg, to set the "starting point" from which the end-user will navigate.

Declaration:

ShowOpenDirDlg() As Boolean

Return value:

True indicates that the user chose a directory name and clicked "Open". False indicates that the user clicked "Cancel".

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowPageInfoDlg

Group: Method

Description:

Shows the Image Information dialog. The Image Information dialog is as follows:

Clicking the "OK" button will close the dialog.

Declaration:

ShowPageInfoDlg(pPage As IGPage)

Parameters:

pPage
Provide the IGPage object containing the image whose information is to be displayed.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowPrintDocDlg

Group: Method

Description:

Print dialog used for printing a document.

Declaration:

ShowPrintDocDlg(Doc As IGDocument)

Parameters:

Doc
Document to be printed.

Return value:

<None>

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowPrintPageDlg

Group: Method

Description:

Shows the Windows standard Print dialog. The Windows standard Print dialog is slightly modified by ShowPrintPageDlg, and is as follows:

The dialog behaves essentially the same as the standard Windows dialog: clicking the "Properties..." button brings up the printer properties dialog for the selected printer. Clicking "OK" causes the image to be printed, and clicking "Cancel" causes the dialog to be closed without printing.

Clicking the "Image Settings..." button will show the Image Print Settings dialog, as follows:

The Horizontal and Vertical Placement settings together with the Orientation setting allow the user to place the image on the printed page.

The "Use print driver..." checkbox controls how the image will be rendered on the paper: by default ImageGear will render the image (according to the DisplayGamma settings currently in effect for the IGPageDisplay). Setting the checkbox will cause ImageGear to deliver the raw image to the printer driver, and it will be up to the printer driver to set the brightness, dithering, etc. for the image.

The Print Title field is a simple text string provided to the print driver. Some print drivers will generate a cover sheet containing this string.

Declaration:

ShowPrintPageDlg(pPage As IGPage)

Parameters:

pPage
Provide the IGPage object containing the image to be printed.

Return value:

<None>

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowSaveFileDlg

Group: Method

Description:

Shows the Windows standard file "Save As" dialog. There are no arguments to this subroutine, but the programmer may set the IGGUIDlgCtl .Directory property before calling ShowOpenDirDlg(), to set the "starting point" from which the end-user will navigate.

The Save As dialog is slightly modified as displayed by ShowSaveFileDlg, and is as follows:

The dialog behaves essentially the same as the standard Windows Save As dialog: the user navigates to different directories using the "Save in:" pulldown, the navigation buttons, and by double-clicking in the list area. Whenever a file is selected, its name is displayed in the "File name:" field. If the user needs to create a new file for the image, then after navigating to the appropriate folder, the user must enter a file-name.

The "Save as type" pull-down list displays all of the image file-types that ImageGear can write. When the user selects a particular file-type, then the list area will only show directories and files whose file-name extensions correspond to the selected file-type.

The "Selected File:" field is generated by ImageGear, by reading the first few bytes of the selected file and determining its actual file-type (thus, for instance, a JPEG image might be mis-named "foobar.bmp" - the "File Info" field will show that the file is a 1-page JPEG file).

The "Save Mode" and "Page to replace" controls are only active when the selected file is a multi-page file - they allow the user to control the particulars of how the image is written into the existing file.

Clicking the "Save" button will close the dialog, sets the following IGGUIDlgCtl properties and returns True to the application program. Properties set:

  • IGGUIDlgCtl .Filename
  • IGGUIDlgCtl .PageNum
  • IGGUIDlgCtl .SaveMode
  • IGGUIDlgCtl .SaveFormat

Note that the file is not saved by the ShowSaveFileDlg processing: it is up to the application programmer to actually call IGFormatsCtl .SavePageToFile or IGFormatsCtln.SaveDocumentToFile.

Clicking the "Cancel" button will close the dialog and return False to the application program.

Declaration:

ShowSaveFileDlg() As Boolean

Return value:

True indicates that the user chose a filename, save mode and page number and clicked "Save". False indicates that the user clicked "Cancel".

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowSpotColorMismatchDlg

Group: Method

Declaration:

Sub ShowSpotColorMismatchDlg(Image As IGPage)

Description:

This method performs checks to determine whether to show a spot color mismatch warning dialog. The dialog will be displayed in case if image contains spot colors not defined in the available color books. The dialog can be used to add new color books.

Parameters:

Image
IGPage to check whether it has spot colors.

Return Value:

N/A

Bits Per Pixel: N/A

Sample: ig_guidlg.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SwitchEnableICC

Group: Method

Description:

This method switches the state of enabling/disabling ICC support, and returns the state after switching.

Declaration:

SwitchEnableICC() as VARIANT_BOOL

Parameters:

None

Return Value:

True/False

Bits Per Pixel:

N/A

Sample:

ig_guidlg_vb6.exe


SwitchShowICCWarning

Group: Method

Description:

This method switches the state of the registry entry that determines whether we should show the warning dialog related to embedded color profile or non-RGB color format, and returns the result after switching.

Declaration:

SwitchShowICCWarning() as VARIANT_BOOL

Parameters:

None

Return Value:

True/False

Bits Per Pixel:

N/A

Sample:

ig_guidlg_vb6.exe


enumIGGUIDlgCtlErrors

Group: Enumeration

Description:

IGGUIDlgCtl always uses the COM Error object to indicate problems or failures in the course of processing. The enumIGGUIDlgCtlErrors enumeration lists the various error Number values that might be returned.

Values:

IG_GUIDLGCTLERR_NOFORMATCTL
Your application has called one of the IGGUIDlgCtl methods that requires that the FormatsCtl property be set, but that property is either not set, or does not refer to an IGFormatsCtl control.
IG_GUIDLGCTLERR_NOPAGEDISPLAY
Your application has called one of the IGGUIDlgCtl methods that requires that an IGPageDisplay object be passed as a parameter, but the parameter does not refer to a valid IGPageDisplay object.
IG_GUIDLGCTLERR_NOPROCESSINGCTL
Your application has called one of the IGGUIDlgCtl methods that requires that the ProcessingCtl property be set, but that property is either not set, or does not refer to an IGProcessingCtl control.
IG_GUIDLGCTLERR_NOPAGE
Your application has called one of the IGGUIDlgCtl methods that requires that an IGPageDisplay object be passed as a parameter. The IGPageDisplay that your application passed is valid, but is not associated with an IGPage object (which it must be).
IG_GUIDLGCTLERR_NOPAGEPARM
Your application has called one of the IGGUIDlgCtl methods that requires that an IGPage object be passed as a parameter, but the parameter does not refer to a valid IGPage object.
IG_GUIDLGCTLERR_NODISPLAYCTL
Your application has called one of the IGGUIDlgCtl methods that requires that the DisplayCtl property be set, but that property is either not set, or does not refer to an IGDisplayCtl control.
IG_GUIDLGCTLERR_NOCORECTL
Your application has called one of the IGGUIDlgCtl methods that requires that the CoreCtl property be set, but that property is either not set, or does not refer to an IGCoreCtl control.
IG_GUIDLGCTLERR_BADDLGTEMPLATE
Internal error - A call to the Windows ATL GetDialogControl() method has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_PAGECREATEFAILED
Internal error - A call to the IGCoreCtl .CreatePage() method has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_PAGEDUPLICATEFAILED
Internal error - A call to the IGPage .Duplicate() method has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_PDCREATEFAILED
Internal error - A call to the IGDisplayCtl .CreatePageDisplay() method has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_CORECREATEFAILED
Internal error - A call to the IGCoreCtl .CreateObject() method has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_PDGETOBJECTFAILED
Internal error - An attempt to access an IGPageDisplay property has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_PDSETOBJECTFAILED
Internal error - An attempt to set an IGPageDisplay property has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_DLGETOBJECTFAILED
Internal error - An attempt to access an IGPageDisplay .Layout property has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_PIXCHANGETYPEFAILED
Internal error - An attempt to change the IGPageDisplay .Background.Color (an IGPixel object) to type RGB has failed. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_PIXINVALIDTYPE
Internal error - the IGPageDisplay .Background.Color pixel type was invalid. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_FITMODEINVALIDTYPE
Internal error - the IGPageDisplay .Layout.FitMode property contained an invalid value. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_ORIENTMODEINVALIDTYPE
Internal error - the IGPageDisplay .Orientation property contained an invalid value. Contact AccuSoft Customer Support.
IG_GUIDLGCTLERR_LOADPAGEFAILED
Internal error - A call to the IGFormatsCtl .LoadPageFromFile() method has failed. Contact AccuSoft Customer Support.


enumIGPageSaveModes

Group: Enumeration

Description:

This enumeration lists the various file save-modes supported by Image Gear. See the IGFormatsCtl documentation for the description of the various enumeration values.


enumIGSaveFormats

Group: Enumeration

Description:

This enumeration lists the various file formats supported by Image Gear. See the IGFormatsCtl documentation for the description of the various enumeration values.


IGPrintProperties

Type: Class

Description:

This class provides printing properties used by ShowPrintPageDlg method.

Class Members:

BackgroundColor
property
Specifies background color for page printing with ShowPrintPageDlg method.


BackgroundColor

Group: Property

Declaration:

BackgroundColor As IGPixel

Description:

Specifies background color for page printing with ShowPrintPageDlg. method.

Property Summary:

Data Type:
IGPixel
Default Value:
Null
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guidlg.vb6.exe


GUI Magnifier Control

The GUI Magnifier Control (IGGUIMagnifierCtl) provides a magnified view of a portion of the image in an IGPageViewCtl control. It appears either in a separate, stationary window, or as a popup area within the IGPageViewCtl window. When the IGGUIMagnifierCtl control is active, and the user drags the mouse within the IGPageViewCtl control, the magnified display of the image tracks the location of the mouse. If the popup view is used, the magnified display of the image tracks the mouse within the IGPageViewCtl control. If the separate, stationary window is used, the area of the image that is displayed in the floating window is displayed in reverse video in the IGPageViewCtl control. The programmer can set the magnification factor, and can optionally expose that capability to the end user.

To use the IGGUIMagnifierCtl ActiveX control, you must first make an instance of the control available. In Visual Basic, this is done as follows:

  1. Use the Project/Components menu function to bring up the Components dialog.
  2. Scroll down to the "IGGUIWin 1.0 Type Library" entry under the "Controls" tab.
  3. Check the check-box for that entry.
  4. Click the "OK" button.

Just before clicking "OK", the dialog will look like the following image:

You'll then have the IGGUIWin control on your Toolbox. You can then place a copy of the control on your application by double-clicking the control icon in the toolbox.

The IGGUIMagnifierCtl can be used either as a stationary display, or as a floating "popup" display of the image. This behavior is controlled by setting the IsPopUp property of the control. When IsPopUp is set to True, the control expects to be used as a popup. When set to False, the control expects to be used in a stationary window.

In order for the IGGUIMagnifierCtl to function, you must call the Initialize method and set the SourceView property to a reference to an IGPageViewCtl control. This connects the control to the image that it will be magnifying. There are additional requirements for using the control, depending on whether it is used in a popup window, or in a stationary window.

To initiate popup window just set IsPopup property to True. Then setup PopUpWidth, PopUpHeight and (optionally) PopUpShape properties with desirable values. There is no need to setup DestinationView property since its value is used only in stationary window.

To use IGGUIMagnifierCtl in a stationary window IsPopup property must be set to False DestinationView property must be set with the instance of IGPageViewCtl control. IGGUIMagnifierCtl will display zoomed portion of source image in it.

After successful initialization IGGUIMagnifierCtl may be used to track the mouse movements under the source IGPageViewCtl. To do this just call StartMouseTracking method of IGGUIMagnifierCtl and handle MouseDown event of IGPageViewCtl, and the rest will be done automatically. Please note, that these is no need to handle MouseMove or MouseUp events of IGPageViewCtl. IGGUIMagnifierCtl updates displayed content either of popup area or DestinationView.


IGGUIMagnifierCtl

Group: Control

Interface:

IIGGUIMagnifierCtl extends IDispatch

Class Members:

Cursor
property
Specifies the type of cursor that should be displayed under the mouse tracking.
DestinationView
property
An instance of IGPageViewCtl control on which zoomed image will be displayed (it makes sense only if magnifier is not pop-up).
IsPopup
property
Indicates whether the magnified view is provided as a popup window or as a separate window.
PopUpHeight
property
Specifies the height (vertical bound) of pop-up magnifier.
PopUpShape
property
Specifies the shape of a popup magnifier window.
PopUpWidth
property
Specifies the width (horizontal bound) of pop-up magnifier.
SourceView
property
An instance of IGPageViewCtl control which image is the source for Magnifier (it will be zoomed).
Zoom
property
Specifies the integral magnification power for the display of the image within the control.
Initialize
method
Initializes IGGUIMagnifierCtl control.
StartMouseTracking
method
Starts to display pop-up window or viewing area and tracks mouse movement and release. Updates content of destination view (or viewable area) under mouse movement.

Enumerations:

enumIGCursorType
Identifies the type of cursor that is displayed under the mouse tracking over the magnifier window.
enumIGShapeType
Identifies the shape to be used for the popup magnifier window.


Cursor

Group: Property

Description:

Specifies the type of cursor that should be displayed under the mouse tracking.

Property Summary:

Data Type:
enumIGCursorType
Default Value:
IG_GUI_CURSOR_NONE
Access:
Read/Write
Settings:
Any value of enumIGCursorType
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


DestinationView

Group: Property

Description:

Provides an instance of IGPageViewCtl control on which zoomed image will be displayed (it makes sense only if magnifier is not pop-up).

Property Summary:

Data Type:
IGPageViewCtl
Default Value:
N/A
Access:
Read only
Settings:
instance of IGPageViewCtl
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Initialize

Group: Method

Description:

This method initializes IGGUIMagnifierCtl control.

Declaration:

Initialize(coreCtl As IGComponent, displayCtl As IIGComponent)

Parameters:

coreCtl
Instance of IGCoreCtl control to setup IGGUIMagnifierCtl control with.
displayCtl
Instance of IGDisplayCtl control to setup IGGUIMagnifierCtl control with.

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsPopup

Group: Property

Description:

Indicates whether the magnified view is provided as a popup window that hovers over the mouse in the parent IGPageViewCtl control (True), or as a separate floating window (False).

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


PopUpHeight

Group: Property

Description:

Specifies the height (vertical bound) of pop-up magnifier.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


PopUpShape

Group: Property

Description:

Specifies the shape of a popup magnifier window.

Property Summary:

Data Type:
enumIGShapeType
Default Value:
IG_SHAPE_ELLIPSE
Access:
Read/Write
Settings:
Any value of enumIGShapeType
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


PopUpWidth

Group: Property

Description:

Specifies the width (horizontal bound) of pop-up magnifier.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


SourceView

Group: Property

Description:

Provides an instance of IGPageViewCtl control which image is the source for Magnifier (it will be zoomed).

Property Summary:

Data Type:
IGPageViewCtl
Default Value:
N/A
Access:
Read/Write
Settings:
instance of IGPageViewCtl
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


StartMouseTracking

Group: Method

Description:

Starts to display pop-up window or viewing area and tracks mouse movement and release. Updates content of destination view (or viewable area) under mouse movement.

Declaration:

StartMouseTracking(x As Long, y As Long)

Parameters:

x
X Position of the cursor, in screen coordinates
y
Y Position of the cursor, in screen coordinates

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Zoom

Group: Property

Description:

Specifies the integral magnification power for the display of the image within the control.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


enumIGCursorType

Group: Enumeration

Description:

These values are used to specify the type of cursor that is displayed under the mouse tracking over the magnifier window.

Values:

IG_GUI_CURSOR_NONE
No cursor
IG_GUI_CURSOR_APPSTARTING
Standard arrow and small hourglass
IG_GUI_CURSOR_ARROW
Standard arrow
IG_GUI_CURSOR_CROSS
Crosshair
IG_GUI_CURSOR_HAND
Hand (Windows 98/Me, Windows 2000/XP)
IG_GUI_CURSOR_HELP
Arrow and question mark
IG_GUI_CURSOR_IBEAM
I-beam
IG_GUI_CURSOR_NO
Slashed circle
IG_GUI_CURSOR_SIZEALL
Four-pointed arrow pointing North, South, East, and West
IG_GUI_CURSOR_SIZENESW
Double-pointed arrow pointing North-East and South-West
IG_GUI_CURSOR_SIZENS
Double-pointed arrow pointing North and South
IG_GUI_CURSOR_SIZENWSE
Double-pointed arrow pointing North-West and South-East
IG_GUI_CURSOR_SIZEWE
Double-pointed arrow pointing West and East
IG_GUI_CURSOR_UPARROW
Vertical arrow
IG_GUI_CURSOR_WAIT
Hourglass


enumIGShapeType

Group: Enumeration

Description:

These values are used to specify the shape of the popup magnifier window by setting the PopUpShape property.

Values:

IG_SHAPE_RECTANGLE
Make the popup magnifier window a rectangle or square.
IG_SHAPE_ELLIPSE
Make the popup magnifier window an ellipse or circle.
IG_SHAPE_POLYGON
Not supported at this time.


GUI Palette Control

The GUI Palette Control (IGGUIPaletteCtl) is used to let the end-user change the colors assigned to individual palette entries for an image. The control will show a grid of color-squares. The end-user will select one of these color-squares by clicking on it. In the ItemClick event handler, the programmer will call for the standard Windows color-chooser dialog to be displayed, then use the PaletteSet property of the IGPageViewCtl control to change the particular palette entry to the color selected by the user.

To use the IGGUIPaletteCtl ActiveX control, you must first make an instance of the control available. In Visual Basic, this is done as follows:

  1. Use the Project/Components menu function to bring up the Components dialog.
  2. Scroll down to the "IGGUIWin 1.0 Type Library" entry under the "Controls" tab.
  3. Check the check-box for that entry.
  4. Click the "OK" button.

Just before clicking "OK", the dialog will look like the following image:

You'll then have the IGGUIWin control on your Toolbox. You can then place a copy of the control on your application by double-clicking the control icon in the toolbox. For example, after placing the control on the "PaletteFrm" form in the sample GUIWin program, the Visual Basic editor looks like the following image:

The Toolbar icon for the control is shown in the red box on the left, and the instance of the control (named IGGUIPaletteCtl1) is the big square (with the 256 little white squares) on the dialog.

You can resize the IGGUIPaletteCtl control by selecting it on the VB Forms designer, and then dragging the drag-handles. The control will automatically re-lay-out the 256 white squares so that an integral number of them fit in the width of the control. You may need to make the control taller in order to see all 256 squares. When the application runs, the control will only display as many squares as there are colors in the image palette (e.g., a 4-bit image will cause only 16 squares to appear).

In order for the IGGUIPaletteCtl control to function, you must call its SetParentImage subroutine. The VB code to do this is best placed in the Form_Load subroutine. In the sample GUIWin program, it looks like this:

Private Sub Form_Load()
    On Error GoTo ErrorHandler
    IGGUIPaletteCtl1.SetParentImage MainFrm.IGCoreCtl1,
MainFrm.IGDisplayCtl1, MainFrm.IGPageDisp,
MainFrm.IGPageViewCtl1.hWnd
    Exit Sub
ErrorHandler:
    MsgBox "ImageGear GUIPalette control returned an error (" +
Hex(Err.Number) + "):" + vbCrLf + Err.Description,
vbExclamation, "IGGUIDlg Error"
    End Sub

Like the other ImageGear GUI controls, IGGUIPaletteCtl uses the COM Error object to report errors. VB programmers use the On Error statement to specify how to handle errors. After each call to an IGGUIPaletteCtl method, if there was an error, then the program can inspect Err.Number and Err.Description to determine what went wrong. The list of possible Err.Number values is in the enumIGGUIWinCtlErrors enumeration.

NOTE: Sometimes the error is detected by the ImageGear controls. In that case, the Err.Number and Err.Description values will be those generated by the ImageGear control.

When the application program runs, the IGGUIPaletteCtl will appear as a series of colored squares on the VB Form. Here is what it looks like in the GUIWin sample program:

If the Enabled property is True, then the user can click on any of the colored squares to cause the Color chooser dialog to be displayed. The dialog is as follows:

The user can click on any of the Basic Colors, or any of the Custom Colors, or anywhere in the color rainbow to choose a new color. The color will be shown in the "Color/Solid" area. The user can replace one of the Custom Colors with their chosen color (the set of Custom Colors will be maintained as long as the Form containing the IGGUIPaletteCtl control is visible).

When the user clicks OK, the Color chooser dialog will close, the corresponding colored square will be changed in the IGGUIPaletteCtl control, and (if the SetParentImage subroutine call specified an hWnd) the image will be redisplayed with the updated color palette.


IGGUIPaletteCtl

Group: Control

Interface:

IIGGUIPaletteCtl extends IDispatch

Class Members:

Appearance
Property
Specifies the appearance of the control.
BackColor
Property
Specifies the background color of the control.
BorderColor
Property
Specifies the color of the control border.
BorderVisible
Property
Specifies whether the control border is visible or not.
BorderWidth
Property
Specifies the width of the control border.
Enabled
Property
Specifies whether the control will respond to mouse events or not.
MouseIcon
Property
Specifies the custom mouse icon to display over the control.
MousePointer
Property
Identifies any of the standard mouse icons to display over the control.
SetParentImage
Method
Associates the IGGUIPaletteCtl control with a particular ImageGear image.
Click
Event
Raised when user clicks in the control.
DblClick
Event
Raised when the user double-clicks in the control.
MouseDown
Event
Raised when the user presses a mouse button while the cursor is over the control
MouseMove
Event
Raised repeatedly as the mouse moves over the control.
MouseUp
Event
Raised when the user releases a mouse button while the cursor is over the control.

Enumerations:

enumIGGUIWinCtlErrors
Error codes that can be returned from IGGUIPaletteCtl.


Appearance

Group: Property

Description:

Specifies the appearance of the control. Note that setting Appearance to 1 forces BorderVisible to false (you can't have both a 3D appearance and a border at the same time).

Property Summary:

Data Type:
Integer
Default Value:
0
Access:
Read/Write
Settings:
0 means flat appearance for the IGGUIPaletteCtl control as a whole, 1 means a 3D recessed-look border is displayed around the outside of the control.
Bits Per Pixel:
Not applicable
Sample:


BackColor

Group: Property

Description:

Specifies the color of the background of the IGGUIPaletteCtl control.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Gray (127,127,127)
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


BorderColor

Group: Property

Description:

Specifies the color of the border drawn around the outside of the IGGUIPaletteCtl control.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Black (0,0,0)
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


BorderVisible

Group: Property

Description:

Specifies whether or not the control border is visible. True means to draw a single-line border around the outside of the IGGUIPaletteCtl control; False means no border. Note that setting BorderVisible to True forces Appearance to 0 (you can't have both a 3D appearance and a border at the same time).

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True means to draw a single-line border around the outside of the IGGUIPaletteCtl control; False means no border.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


BorderWidth

Group: Property

Description:

Specifies the width, in pixels, of the border drawn around the outside of the IGGUIPaletteCtl control.

Property Summary:

Data Type:
Integer
Default Value:
2
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


Click

Group: Event

Description:

This event occurs when the user clicks a mouse-button while the cursor is over the IGGUIPaletteCtl control.

Declaration:

Sub IGGUIPaletteCtl_Click()


DblClick

Group: Event

Description:

This event occurs when the user double-clicks a mouse-button while the cursor is over the IGGUIPaletteCtl control.

Declaration:

Sub IGGUIPaletteCtl_DblClick()


Enabled

Group: Property

Description:

Specifies whether the IGGUIPaletteCtl control will respond to mouse events or not.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True means that IGGUIPaletteCtl will respond to mouse events; False means it won't.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


MouseDown

Group: Event

Description:

This event occurs when the user presses a mouse-button while the cursor is over the IGGUIPaletteCtl control.

Declaration:

Sub IGGUIPaletteCtl_MouseDown(Button As Integer, Shift As
Integer, x As Single, y As Single)

Parameters:

Button
Indicates which button was pressed:
1 (vbLeftButton) - left mouse button
2 (vbRightButton) - right mouse button
4 (vbMiddleButton) - middle mouse button
Shift
Indicates whether any keyboard keys were pressed at the same time:
1 (vbShiftMask) - Shift Key
2 (vbCtrlMask) - Ctrl key
4 (vbAltMask) - Alt key
x
X coordinate of where the mouse down event occurred. For VB application, this will be in "twips" - for all other environments, this will be in pixels.
y
Y coordinate of where the mouse down event occurred. For VB application, this will be in "twips" - for all other environments, this will be in pixels.


MouseIcon

Group: Property

Description:

Specifies the custom mouse icon to display over the control, used when MousePointer = 99. Use a .ICO file or an ICO resource to set this property.

Property Summary:

Data Type:
IPictureDisp
Default Value:
<none>
Access:
Read/Write
Settings:
Ignored if MousePointer is not 99.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


MouseMove

Group: Event

Description:

This event occurs continuously while the mouse cursor is over the IGGUIPaletteCtl control.

Declaration:

Sub IGGUIPaletteCtln_MouseMove(Button As Integer, Shift As
Integer, x As Single, y As Single)

Parameters:

Button
Indicates which, if any, button was pressed:
1 (vbLeftButton) - left mouse button
2 (vbRightButton) - right mouse button
4 (vbMiddleButton) - middle mouse button
Shift
Indicates whether any keyboard keys were pressed at the same time:
1 (vbShiftMask) - Shift Key
2 (vbCtrlMask) - Ctrl key
4 (vbAltMask) - Alt key
x
X coordinate of where the mouse down event occurred. For VB application, this will be in "twips" - for all other environments, this will be in pixels.
y
Y coordinate of where the mouse down event occurred. For VB application, this will be in "twips" - for all other environments, this will be in pixels.


MousePointer

Group: Property

Description

Identifies any of the standard mouse icons to display over the control (numeric value equivalent to vbArrow, vbHourglass, etc.).

Property Summary:

Data Type:
Long
Default Value:
0 (vbDefault)
Access:
Read/Write
Settings:
1 (vbArrow) is the Arrow cursor
2 (vbCrosshair) is the Crosshair cursor
3 (vbIbeam) is the I-beam cursor
4 (vbIconPointer) is a small square within a square
5 (vbSizePointer) is a 4-pointed arrow
11 (vbHourglass) is the Hourglass cursor
99 (vbCustom) means "use the MouseIcon picture"
See the Visual Basic documentation for other values.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


MouseUp

Group: Event

Description:

This event occurs when the user releases a mouse-button while the cursor is over the IGGUIPaletteCtl control.

Declaration:

Sub IGGUIPaletteCtl_MouseUp(Button As Integer, Shift As Integer,
x As Single, y As Single)

Parameters:

Button
Indicates which button was pressed:
1 (vbLeftButton) - left mouse button
2 (vbRightButton) - right mouse button
4 (vbMiddleButton) - middle mouse button
Shift
Indicates whether any keyboard keys were pressed at the same time:
1 (vbShiftMask) - Shift Key
2 (vbCtrlMask) - Ctrl key
4 (vbAltMask) - Alt key
x
X coordinate of where the mouse down event occurred. For VB application, this will be in "twips" - for all other environments, this will be in pixels.
y
Y coordinate of where the mouse down event occurred. For VB application, this will be in "twips" - for all other environments, this will be in pixels.


SetParentImage

Group: Method

Description:

Associates the IGGUIPaletteCtl control with a particular ImageGear image. If you don't call this subroutine, then the IGGUIPaletteCtl control will simply appear as 256 white squares and will not react to mouse events.

Declaration:

SetParentImage(theCoreCtl As IGCoreCtl, theDisplayCtl As
IGDisplayCtl, ParentDisplay As IGPageDisplay, ParentHwnd As
Long)

Parameters:

theCoreCtl
The IGCoreCtl used by your application program.
theDisplayCtl
The IGDisplayCtl used by your application program.
ParentDisplay
The IGPageDisplay used to control the display of the image in any IGPage object. The palette of the image in this particular IGPage object is the one that will be shown in the IGGUIPaletteCtl.
ParentHwnd
The hWnd, if any, in which the image is being displayed. This may be set to 0, or IGPageViewCtl n.hWnd or IGDocumentViewCtl.hWnd. If you specify 0, then changes to the image palette will not cause the image to be re-drawn on the screen (and the user will not see the changes until the next time the image is re-drawn for other reasons).

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


enumIGGUIWinCtlErrors

Group: Enumeration

Description:

IGGUIPaletteCtl always uses the COM Error object to indicate problems or failures in the course of processing. The enumIGGUIWinCtlErrors enumeration lists the various error Number values that might be returned.

Values:

IG_GUIWINCTLERR_NOCORECTL
The value passed to SetParentImage () is not a valid IGCoreCtl control.
IG_GUIWINCTLERR_NODISPLAYCTL
The value passed to SetParentImage () is not a valid IGDisplayCtl control.
IG_GUIWINCTLERR_NOPAGEDISPLAY
The value passed to SetParentImage () is not a valid IGPageDisplay object.
IG_GUIWINCTLERR_NOPAGE
The IGPageDisplay object passed to SetParentImage () is does not have a valid IGPage object.


GUI Pan Control

The GUI Pan Control (IGGUIPanCtl) allows the visible portion of an image displayed in an IGPageViewCtl control to be moved by dragging the mouse around in the image. Optionally, a floating window can be used to display the complete image, scaled to fit within the floating window. By dragging the mouse within this floating window, the image in the IGPageViewCtl control is repositioned. The portion of the image that is visible in the IGPageViewCtl control is displayed within the floating window in reverse video.

NOTE: The control will act as if it has a visible presence in the application (when dropped onto a form in the forms designer, it will appear as a white resizeable rectangle with a black border). However, if Visible = False, then at run-time the control will not appear on the form.

To use the IGGUIPanCtl ActiveX control, you must first make an instance of the control available. In Visual Basic, this is done as follows:

  1. Use the Project/Components menu function to bring up the Components dialog.
  2. Scroll down to the "IGGUIWin 1.0 Type Library" entry under the "Controls" tab.
  3. Check the check-box for that entry.
  4. Click the "OK" button.

Just before clicking "OK", the dialog will look like the following image:

You'll then have the IGGUIWin control on your Toolbox. You can then place a copy of the control on your application by double-clicking the control icon in the toolbox. For example, in the GUIWin sample program, the control has been added to the PanFrm and appears as shown in the following image:

The control appears as a white rectangular area within the form. You can resize the control by selecting it on the VB Forms designer, and then dragging the drag-handles. In order for the IGGUIPanCtl to function, you must call the SetParentImage() method. This connects the control to the image that it will be magnifying, and causes the initial display of the magnified image to appear.

The application programmer must handle mouse events from the parent image's IGPageViewCtl, and call methods of the IGGUIPanCtl as follows:

  • Event Handler IGPageViewCtl1_ MouseDown should call IGGUIPanCtl .NewPosition, passing in the new x and y coordinates of the mouse. This will cause the image to be repositioned within the window. In addition, if the IGGUIPanCtl's window is visible, it will show the entire image within its window, with the portion of the image that is visible in the parent image shown in reverse video.
  • Event Handler IGPageViewCtl1_ MouseMove should call IGGUIPanCtl .NewPosition, passing in the x and y coordinates of the mouse. This will reposition the image within the parent window, and update the location of the inverse video rectangle on the pan window.

IMPORTANT VB SPECIFIC NOTE: The x and y coordinate reported in this event handler will be in units of "twips". A twip is 1/20th of a printer's point. A printer's point is 1/70th of an inch; thus a twip is 1/140th of an inch. These coordinates MUST be converted to pixels prior to calling the NewPosition method, by using the ScaleX and ScaleY VB functions as follows:

        Dim newX As Long
        newX = ScaleX(X, vbTwips, vbPixels)
        Dim newY As Long
        newY = ScaleY(Y, vbTwips, vbPixels)

This is only necessary when the control is used in VB applications.

  • Event Handler IGPageViewCtl1_ MouseUp should call IGGUIMagnifierCtl .MouseBtnUp. This will remove the inverse video rectangle from the pan window, and stop the tracking of the mouse by the pan window.

The SetParentImage method should be called in the FormLoad handler for the form which contains the IGGUIPanCtl.


IGGUIPanCtl

Group: Control

Interface:

IIGGUIPanCtl extends IDispatch

Class Members:

Enabled
Property
Specifies whether the control will respond to mouse events or not.
HWND
Property
Returns a handle of the window being used for panning
PanButton
Property
Defines a button to be used for hand panning
SetPanWindow
Method
Sets a window handle to be used as pan window
SetParentImage
Method
Gives the pan control references to the ImageGear objects that it needs in order to manipulate the panning of the parent image.
TrackMouse
Method
This method starts hand panning
Update
Method
Updates panning window
UpdateView
Method
Updates the view.
TrackDone
Event
Called when mouse tracking for a pan operation has ended

Enumerations:

enumIGGUIWinCtlErrors
Error codes that can be returned from IGGUIMagnifierCtl.


Enabled

Group: Property

Description:

Specifies whether the IGGUIPanCtl control will respond to mouse events or not.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


HWND

Group: Property

Description:

This property returns a handle of the window being used for pannin

Property Summary:

Data Type:
Long
Default Value:
Not applicable
Access:
Read only
Settings:
Valid handle to the window or 0 if SetPanWindow was not called before
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


PanButton

Group: Property

Description:

This property defines a button to be used for hand panning.

Property Summary:

Data Type:
Long
Default Value:
1 (Left mouse button)
Access:
Read/Write
Settings:
1 means Left mouse button, 2 means Right mouse button, 4 means Middle mouse button
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin.vb6.exe


SetPanWindow

Group: Method

Description:

This method sets a handle of the window to be used for panning.

Declaration:

SetPanWindow(hWnd as Long)

Parameters:

hWnd
Specifies the window handle to be set

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetParentImage

Group: Method

Description:

Gives the Magnifier control references to the ImageGear objects that it needs in order to display a magnified image of the parent image. The IGCoreCtl and IGDisplayCtl are the controls used within the application. The IGPageViewCtl is the particular image display control that is used for display of the parent image that this Magnifier control is associated with. The ParentHwnd is the HWND of the PageViewCtl used to display the parent image. Calling this method results in the magnified image being displayed in the Magnifier control.

Declaration:

SetParentImage(theCoreCtl As IGCoreCtl, theDisplayCtl As
IGDisplayCtl, ParentDisplay As IGPageDisplay, PageViewHwnd As
Long)

Parameters:

theCoreCtl
Specify the IGCoreCtl control used by your application
theDisplayCtl
Specify the IGDisplayCtl control used by your application
ParentDisplay
Specify the IGPageDisplay used to display the image that is to be magnified.
PageViewHwnd
Specify the HWND of the IGPageViewCtl of the image that is to be magnified.

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TrackDone

Group: Event

Description:

Called when mouse tracking for a pan operation has ended. This event is raised when the user releases the mouse button that was being held to continue a panning operation.

Declaration:

Sub IGGUIPanCtl_TrackDone()

Parameters:

None

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TrackMouse

Group: Method

Description:

This method must be called to start hand panning. The hand panning is terminated automatically when the user releases the corresponding mouse button.

Declaration:

Sub TrackMouse(X as Long, Y as Long)

Parameters:

X
current X position of the cursor
Y
current Y position of the cursor

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Update

Group: Method

Description:

This method updates an image in the pan window. Should be called, for example, when reloading an image in the viewer.

Declaration:

Update()

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateView

Group: Method

Description:

This method updates the view of the image.

Declaration:

UpdateView()

Return Value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin.vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


enumIGGUIWinCtlErrors

Group: Enumeration

Description:

IGGUIPanCtl always uses the COM Error object to indicate problems or failures in the course of processing. The enumIGGUIWinCtlErrors enumeration lists the various error Number values that might be returned.

Values:

IG_GUIWINCTLERR_NOCORECTL
The value passed to SetParentImage is not a valid IGCoreCtl control.
IG_GUIWINCTLERR_NODISPLAYCTL
The value passed to SetParentImage is not a valid IGDisplayCtl control.
IG_GUIWINCTLERR_NOPAGEDISPLAY
The value passed to SetParentImage is not a valid IGPageDisplay object.
IG_GUIWINCTLERR_PDCREATEFAILED
Internal error - Attempt to create an IGPageDisplay object for internal use has failed. The IGDisplayCtl control passed to SetParentImage is not operating correctly.
IG_GUIWINCTLERR_GETDLGCTLFAILED
Internal error - A call to the Windows ATL GetDialogControl method has failed. Contact AccuSoft Customer Support.
IG_GUIWINCTLERR_DZGETOBJECTFAILED
Internal error - An attempt to access the IGDisplayLayout or IGZoomInfo object of an IGPageDisplay used internally by IGGUIPanCtl has failed. Contact AccuSoft Customer Support.
IG_GUIWINCTLERR_DZCHANGEFAILED
Internal error - An attempt to access a property of a IGDisplayLayout object used internally by IGGUIPanCtl has failed. Contact AccuSoft Customer Support.
IG_GUIWINCTLERR_PDSETOBJECTFAILED
Internal error - An attempt to access the PageDisplay property of an IGPageViewCtl used internally by IGGUIPanCtl has failed. Contact AccuSoft Customer Support.
IG_GUIWINCTLERR_PVENABLEFAILED
Internal error - An attempt to access the Enabled property of an IGPageViewCtl used internally by IGGUIPanCtl has failed. Contact AccuSoft Customer Support.


GUI Thumbnail Control

The GUI Thumbnail Control (IGGUIThumbnailCtl) provides working with thumbnail images displayed on thumbnail browser window. Every thumbnail is assocated with the IGGUITNItem object containing full Information about the image. The collection of IGGUITNItems is implemented within the IGGUIThumbnailCtl control.

IGGUIThumbnailCtl exposes the following objects:

IGGUITNAfterLoadParams
This object is passed to the AfterLoad event handler to allow the application programmer to skip the generation of a thumbnail item, based on the contents of the IGPage.
IGGUITNBeforeLoadParams
This object is passed to the BeforeLoad event handler to allow the application programmer to skip the generation of a thumbnail item, based on the contents of the IIGIOLocation, etc.
IGGUITNSortResult
This object is passed to the DoSort event handler when a custom sort is being performed .
IGGUITNItem
Each thumbnail item is represented by one of these objects.
IGGUIThumbnailCtl
This is the primary ActiveX control. It allow access to all common thumbnail browser properties and methods.

To use the IGGUIThumbnailCtl ActiveX control, you must first make an instance of the control available. In Visual Basic, this is done as follows:

  1. Use the Project/Components menu function to bring up the Components dialog.
  2. Scroll down to the "IGGUIWin 1.0 Type Library" entry under the "Controls" tab.
  3. Check the check-box for that entry.
  4. Click the "OK" button.

Just before clicking "OK", the dialog will look like the following image:

You'll then have the IGGUIWin control on your Toolbox. You can then place a copy of the control on your application by double-clicking the control icon in the toolbox.

In order for the IGGUIThumbnailCtl control to function, you must call its SetParentCtls subroutine. You have also to attach a window to be used as thumbnail browser via the property control's property hWnd and call ShowBrowser method to display thumbnails on the thumbnail browser window. If there is no window attached to the control then the thumbnail browser is created internally. The VB code to do this is best placed in the Form_Load subroutine. In the sample GUIWin program, it looks like this:

Private Sub Form_Load()
    Caption = MainFrm.IGGUIDlgCtl1.Directory
    On Error GoTo ErrorHandler

    IGGUIThumbnailCtl1.SetParentCtls MainFrm.IGCoreCtl1,
MainFrm.IGDisplayCtl1, MainFrm.IGFormatsCtl1
    IGGUIThumbnailCtl1.SetItemSpacing 10, 10
    IGGUIThumbnailCtl1.DirectoryAppend
MainFrm.IGGUIDlgCtl1.Directory, "*.*"
    `Accuming, IGPageView2 is a view control to be used
    `as thumbnail browser.
    IGGUIThumbnailCtl1.hWnd = IGPageView2.hWnd
    `Display thumbnails
    IGGUIThumbnailCtl1.ShowBrowser Me.hWnd, TRUE
Exit Sub
ErrorHandler:
    MsgBox "ImageGear GUIThumbnail control returned an error ("
+ Hex(Err.Number) + "):" + vbCrLf + Err.Description,
vbExclamation, "IGGUIDlg Error"

End Sub

Like the other ImageGear GUI controls, IGGUIThumbnailCtl uses the COM Error object to report errors. VB programmers use the On Error statement to specify how to handle errors. After each call to an IGGUIThumbnailCtl method, if there was an error, then the program can inspect Err.Number and Err.Description to determine what went wrong. The list of possible Err.Number values is in the enumIGGUIWinCtlErrors enumeration.

Note that sometimes the error is detected by the ImageGear controls. In that case, the Err.Number and Err.Description values will be those generated by the ImageGear control.

When the application program runs, the thumbnail browser will appear as a series of image buttons on the window. The following image shows what it looks like in the GUIWin sample program:

There are 4 ways that an application interacts with the IGGUIThumbnailCtl control:

  • Loading: when thumbnail items are being loaded
  • Sorting: when the thumbnail items are being re-sequenced on the display
  • Selecting: when the user clicks on a thumbnail item
  • Dragging: When the user drags a thumbnail item to a new position in the display

Loading

The thumbnail items are created in response to calls to DirectoryAppend(), FileAppend() or IOLocationAppend(). The thumbnail items can also be created in response to the user dragging and dropping a file-icon from Windows Explorer onto the IGGUIThumbnailCtl control. This will cause the BeforeLoad and AfterLoad event handlers to be called exactly as if FileAppend() had been called. As each file is processed, the sequence of events is:

  1. IGGUIThumbnailCtl locates the file, and builds an IIGIOLocation object for it. If the file (or page in case of multipage loading) does not contain an image whose type is supported by ImageGear, then the file or page will be skipped:
  2. IGGUIThumbnailCtl calls the BeforeLoad event handler (if any). The event handler is given the IIGIOLocation, IGLoadOptions and PageNum which IGGUIThumbnailCtl is about to use to load the image. The event handler uses that information to set a value named SkipItem to either true or false.
  3. IGGUIThumbnailCtl checks SkipItem - if True, go back to step 1 and look for another file. If no more files, then item-creation is done.
  4. IGGUIThumbnailCtl loads the image into an IGPage object.
  5. IGGUIThumbnailCtl calls the AfterLoad event handler (if any). The event handler is given the IGPage object. The event handler uses that information to set a value named SkipItem to either true or false.
  6. IGGUIThumbnailCtl checks SkipItem - if True, go back to step 1 and look for another file. If no more files, then item-creation is done.
  7. Create a new thumbnail item, generate the image for it from the IGPage, and add the new item to the collection.
  8. Go back to step 1 and look for another file. If no more files, then item-creation is done.

Sorting

The thumbnail items are displayed usorted by default. The application can re-sequence them by calling Sort(). The call to Sort() can specify that the items should be sorted by title (ascending or descending), or that a custom sort-sequence can be provided. The custom sort sequence is implemented via a DoSort event handler. In that case, the sequence of events is:

  1. Application calls Sort(), specifying IG_GUIWINCTL_VIA_CALLBACK.
  2. IGGUIThumbnailCtl then begins performing the "QuickSort" algorithm. The basis of "QuickSort" is a comparison between pairs of thumbnail items. Each time a pair of items needs to be compared, the DoSort event handler is called. The event handler is given IGGUITNSortResult object containing two thumbnail items and a boolean result of comparison. The event handler decides if the comparison result is "greater" or not set Greater value of the IGGUITNSortResult object to ether True or False.
  3. IGGUIThumbnailCtl proceeds to evaluate "QuickSort" until all thumbnail items are in order as specified by the DoSort comparison results.

Selecting

When the user clicks on a thumbnail item in the display, any of several things will happen (depending on the way that IGGUIThumbnailCtl properties are set, and how the mouse-button is used):

    • Left-click the mouse button to select an item under the cursor. If the property Multiselection value is set to false then all other items become unselected. Left mouse double clicking fires DblClickIn event with the Index parameter set to the ithem being clicked. If this parameter is equal to -1 then the cursor is outside any thumbnail image. Typically, this event causes the application to load the corresponding image into the main program window.
    • Press the right mouse button to show thumbnai magnifier if the ShowMagnify property has been set to true. Releasing right button will hide the magnifier.
    • IGGUIThumbnailCtl will automatically change the appearance of the selected thumbnail item, as per the SelectionBackColor and SelectionForeColor properties.

The application can also apply a different appearance to selected thumbnail items, called "Highlighting" them. Each thumbnail item has a Highlighted property that can be set by the application. When Highlighted is set, the thumbnail item's appearance is determined by the HighlightBackColor and HighlightForeColor properties.

Note that IGGUIThumbnailCtl supports MultiSelect. If the MultiSelect property is set to True, then the user can select multiple thumbnail items at a time (using Ctrl-left-mouse-click and Shift-left-mouse-click).

Dragging

IGGUIThumbnailCtl control supports internally implemented Drag and Drop operations which can be enabled or disabled via DragDropOptions property. If the IG_GUIWINCTL_ENABLE_DRAG flag is set then the thumbnail browser will operate as a sourse of file Drag operation. If the IG_GUIWINCTL_ENABLE_DROP flag is set then the thumbnail browser will be able to receive the image files via Drop operation.


IGGUITNAfterLoadParams

Group: Object

Description:

This object is passed to the AfterLoad event handler to allow the application programmer to skip the generation of a thumbnail item, based on the contents of the IGPage.

Interface:

IIGGUITNAfterLoadParams extends IDispatch

Class Members:

Page
Property
Specifies the IGPage from which the thumbnail item will be generated.
PageDisplay
Property
IGPageDisplay object that will be used for creating thumbnail icon from the image
SkipItem
Property
Specifies whether or not to skip generating a thumbnail item for this IGPage.


Page

Group: Property

Description:

Specifies the IGPage from which the thumbnail item will be generated.

Property Summary:

Data Type:
IGPage
Default Value:
The IGPage for the image
Access:
Read
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


PageDisplay

Group: Property

Description:

This property provides an access to IGPageDisplay object that is used to create the thumbnail image. The user can change any display settings such as interpolation, orientation, zoom factors and so on for the particular thumbnail item.

Property Summary:

Data Type:
IIGPageDisplay interface
Default Value:
Not applicable
Access:
Read only
Settings:
Valid IGPageDisplay object
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


SkipItem

Group: Property

Description:

Specifies whether or not to skip generating a thumnail item for this IGPage. Set this to True in your AfterLoad event handler to skip generating a thumbnail item for this IGPage.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True means to skip generating a thumbnail for this image; False means to generate one.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


IGGUITNBeforeLoadParams

Group: Object

Description:

This object is passed to the BeforeLoad event handler to allow the application programmer to skip the generation of a thumbnail item, based on the contents of the IGLocation, etc.

Interface:

IIGGUITNBeforeLoadParams extends IDispatch

Class Members:

Location
Property
Specifies the IIGIOLocation that will be used to load an IGPage from which the thumbnail item will be generated.
Options
Property
Specifies the IGLoadOptions that will be used to load an IGPage from which the thumbnail item will be generated.
PageNum
Property
Specifies the page number that will be used to load an IGPage from which the thumbnail item will be generated.
SkipItem
Property
Specifies whether or not to skip generating a thumbnail item for this IGPage.


Location

Group: Property

Description:

Specifies the IIGIOLocation that will be used to load an IGPage from which the thumbnail item will be generated. Your event handler can inspect this IIGIOLocation and decide whether or not to allow the pages in the specified file to be used to create thumbnail items.

Property Summary:

Data Type:
IIGIOLocation
Default Value:
The IGIOLocation (type= File or URL) that identifies the file whose page(s) are to be used for thumbnail items.
Access:
Read
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Options

Group: Property

Description:

Specifies the IGLoadOptions that will be used to load an IGPage from which the thumbnail item will be generated. Your event handler can use this object to set any reduction or resizing operations to apply to the generation of thumbnail item images.

Property Summary:

Data Type:
IGLoadOptions
Default Value:
An IGLoadOptions object set with default values
Access:
Read
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


PageNum

Group: Property

Description:

Specifies the page number that will be used to load an IGPage from which the thumbnail item will be generated.

Property Summary:

Data Type:
Long
Default Value:
If the IGGUIThumbnailCtl AllPages property is set to True, then this will be the 0-based page number of a page in the file. If AllPages is False, then this will always be 0
Access:
Read
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


SkipItem

Group: Property

Description:

Specifies whether or not to skip generating a thumbnail item for this IGPage. Set this to False in your BeforeLoad event handler to skip generating a thumbnail item for this IGPage.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True means to skip generating any thumbnails for this image; False means to start generating thumbnails (but to let the AfterLoad event handler decide whether or not to actually create the thumbnail items)
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


IGGUITNSortResult

Group: Object

Description:

This object is passed to the DoSort event handler when a custom sort is being performed (see IGGUIThumbnailCtl Sort documentation).

Interface:

IIGGUITNSortResult extends IDispatch

Class Members:

Item1
Property
Specifies the first item to be used in the comparison.
Item2
Property
Specifies the second item Your DoSort event handler sets this property to be used in the comparison.
Greater
Propery
Specifies the result of comparison of Item1 and Item2


Item1

Group: Property

Description:

Specifies the first parameter for comarison..

Property Summary:

Data Type:
IGGUITNItem
Default Value:
Not applicable
Access:
Read only
Settings:
Valid IGGUITNItem object
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Item2

Group: Property

Description:

Specifies the second parameter for comarison.

Property Summary:

Data Type:
IGGUITNItem
Default Value:
Not applicable
Access:
Read only
Settings:
Valid IGGUITNItem object
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Greater

Group: Property

Description:

The DoSort event handler is called with 2 thumbnail items - "Item1" and "Item2". Your DoSort event handler must decide how to sequence them, and can set the Greater value to the either True or False.emSecond in the custom sequence

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Writeonly
Settings:
True or False depending on the comparison result
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


IGGUITNItem

Group: Object

Description:

Each IGGUITNItem object represents one of the thumbnail items displayed on the thumbnail browser. Your application can iterate through the collection of IGGUITNItems using the Item and Count properties of IGGUIThumbnailCtl. Some of the event handlers are passed IGGUITNItems (for instance, when someone clicks on a particular thumbnail item).

Interface:

IIGGUITNItem extends IDispatch

Class Members:

ArtXPage
Property
Reference to the annotation page object represented by thumbnail.
BitDepth
Property
Specifies a bit depth of the loaded image
Format
Property
Identifies the format of the file used to load the thumbnail item.
Highlighted
Property
Specifies whether or not the item is to be highlighted.
HighlightBackColor
Property
Defines highlight back color for the particular item
HighlightForeColor
Property
Defines highlight fore color for the particular item
ImageSize
Property
Specifies a size of the loaded image
Location
Property
Specifies an IGIOFile, IGIOMemory or IGIOURL that identifies the file from which this thumbnail item was derived.
Page
Property
Sets/returns IGPage object represented by thumbnail.
PageNum
Property
For thumbnails generated from multi-page files, this is the zero-based page number.
PrivateData
Property
Pointer to user-created or user-destroyed data for the item.
Selected
Property
Specifies whether or not the item is selected.
Title
Property
Specifies the title to display for the thumbnail item.
Thumbnail
Property
Provides access to the bitmap created by the IGPageDisplay for the image.
Update
Method
Updates changes that have been made on the single item without redrawing all thumbnail browser


ArtXPage

Group: Property

Description:

Reference to the annotation page object represented by thumbnail. If it is empty, no annotations are displayed in thumbnail.

Property Summary:

Data Type:
IGArtXPage
Default Value:
<none>
Access:
Read/write
Settings:
Bits Per Pixel:
N/A
Sample:


BitDepth

Group: Property

Description:

Identifies the bit depth of the loaded image.

Property Summary:

Data Type:
Long
Default Value:
<none>
Access:
Read only
Settings:
valid bit depth
Bits Per Pixel:
Sample:
ig_guiwin_vb6.exe


Format

Group: Property

Description:

Identifies the file format of the file used to load the thumbnail item. Only set when Location is an IGIOFile.

Property Summary:

Data Type:
enumIGFormats
Default Value:
<none>
Access:
Read only
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Highlighted

Group: Property

Description:

Specifies whether or not the title of the item is highlighted. Highlighting is displayed as an alternate color around the thumbnail image in the item. It can be used for any purpose (the sample program uses it to highlight all of the thumbnail items for a given multi-page file). The highlighting cannot be changed by the end-user, only by the programmer. Multiple thumbnail items can have Highlighted = True.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read
Settings:
True tells IGGUIThumbnailCtl to highlight the item; False means to display it normally.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


HighlightBackColor

Group: Property

Description:

This property defines highlight back color for the particular item. The item highlight back color is set to the thumbnail control highlight back color by default. The user can change it to any value he wants.

Example:

`Change default highlight back color
Item. HighlightBackColor = &H000000FF&
Item.Highlighted = True
Item.Update
...
`Set default highlight back color for the particular item
Item.HighlightBackColor = IGGUIThumnailCtl1. HighlightBackColor
Item.Update

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Highlight Back color of the thumbnail control
Access:
Read/Write
Settings:
Any valid ole color
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


HighlightForeColor

Group: Property

Description:

This property defines highlight fore color for the particular item. The item highlight fore color is set to the thumbnail control highlight fore color by default. The user can change it to any value he wants.

Example:

`Change default highlight fore color
Item. HighlightForeColor = &H00FFFF00&
Item.Highlighted = True
Item.Update
...
`Set default highlight fore color for the particular item
Item.HighlightForeColor = IGGUIThumnailCtl1. HighlightForeColor
Item.Update

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Highlight fore color of the thumbnail control
Access:
Read/Write
Settings:
Any valid ole color
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ImageSize

Group: Property

Description:

Cpecifies a size of the loaded image.

Property Summary:

Data Type:
Long
Default Value:
<none>
Access:
Read only
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Location

Group: Property

Description:

Specifies an IGIOFile, IGIOMemory or IGIOURL that identifies the file from which this thumbnail item was derived. Your application can inspect the properties of the IIGIOLocation interface, but not change them. If it is empty, Page property should contain a valid page that was used to create thumbnail.

Property Summary:

Data Type:
IIGIOLocation
Default Value:
<none>
Access:
Read Only
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Page

Group: Property

Description:

Sets/returns IGPage object represented by thumbnail. If it is empty, Location property should contain a valid location that can be used to obtain an image represented by thumbnail.


PageNum

Group: Property

Description:

For thumbnails generated from multi-page files, this is the zero-based page number. For single-image files, IGGUITNItem.PageNum will always be 0.


PrivateData

Group: Property

Description:

This property provides a pointer to user-created or user-destroyed data for the item.

Your application can use this property for any purpose. After the thumbnail items are added to the control (as a result of calling DirectoryAppend (), FileAppend ()), your application can iterate through the items (using the Count and Item(n) properties) and set this property to any desired value (for example, to the reference of some object containing extra data to be used by the Click event handler).

Property Summary:

Data Type:
Variant
Default Value:
Null
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Selected

Group: Property

Description:

Specifies whether or not the item is selected. If MultiSelect = False, then only one IGGUITNItem can be selected at a time - in that case, setting Selected to True for any one item automatically sets the value to False for all others. If MultiSelect = True, then many IGGUITNItems can be selected at a time - in that case, setting Selected to True for any one item has no effect on the others.

When the user clicks on a thumbnail in the control, the Selected property for the corresponding item is automatically set to True. This, in turn, causes the DblClick event to be fired. Depending on MultiSelect, as above, the rest of the IGGUITNItem Selected properties may or may not be set to False.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Title

Group: Property

Description:

Specifies the title to display for the thumbnail item. The title will be truncated to fit within the ItemWidth size.

Property Summary:

Data Type:
String
Default Value:
"Filename" (for single-page files) or "Filename (Page)" (for multi-page files)
Access:
Read/Write
Settings:
Any desired string. If the string is too long to fit in the display, it will be truncated.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Thumbnail

Group: Property

Description:

Provides access to the bitmap created by the IGPageDisplay for the image.

Property Summary:

Data Type:
IPictureDisp
Default Value:
The DIB created by IGPageDisplay
Access:
Read only
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Update

Group: Method

Description:

This method allows to update all changes that have been made for the single items without redrawing the thumbnail browser.

Declaration:

Update()

Return value:

<none>

Bits Per Pixel: N/A

Example:

Item.Selected = True
Item.Update

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGGUIThumbnailCtl

Group: Control

Description:

The GUI Thumbnail Control (IGGUIThumbnailCtl) provides working with thumbnail images displayed on thumbnail brouser window. Every thumbnail is assocated with the IGGUITNItem object containing full Information about the image. The collection of IGGUITNItems is implemented within the IGGUIThumbnailCtl control.

Interface:

IIGGUIThumbnailCtl extends IDispatch

Class Members:

AllPages
Property
Specifies whether all pages of a multi-page image will be loaded into thumbnails, or whether only the first page will be loaded.
AutoFocus
Property
Allows to set focus mode for GUI Thumbnai control.
BackColor
Property
Specifies the color of the background of the control.
BorderWidth
Property
Specifies the width of the thumbnail item.
Count
Property
Specifies the number of items within the collection.
DragDropOptions
Property
Controls whether the thumbnail browser can be Drag source , Drop target or both
Flat
Property
Controls whether the thumbnail item will appear flat or three-dimentional
Font
Property
Specifies the font used for rendering titles under the thumbnail items.
ForeColor
Property
Specifies the color to use for rendering titles under those thumbnail items that are neither selected nor highlighted.
HighlightBackColor
Property
Specifies the color to use for the titles of the thumbnail items that can be shown with a different text background color.
HighlightForeColor
Property
Specifies the color to use for the titles of the thumbnail items that can be shown with a different text color.
HWND
Property
Specifies the handle to the window for the control.
Interior
Property
Amount of extra space to use inside the thumbnail item "button" around the image.
Item(n)
Property
Used to access a particular thumbnail item in the control.
ItemHeight
Property
Height, in pixels, of the image in each thumbnail item.
ItemWidth
Property
Width, in pixels, of the image in each thumbnail item.
LeftMargin
Property
Amount of extra space, in pixels, to leave between the left-most thumbnail item and the left edge of the control.
MouseIcon
Property
Specifies the custom mouse icon to display over the control.
MousePointer
Property
Specifies any of the standard mouse icons to display over the control.
MultiSelect
Property
Specifies whether the user can select multiple thumbnail items at the same time.
SelectionBackColor
Property
Specifies the color of the border around the button when a thumbnail is selected.
SelectionForeColor
Property
Specifies the color of the text when a thumbnail is selected.
ShadowWidth
Property
Specifies the width of 3D appearance wor every item
ShowMagnify
Property
Enables or disables the option to see a larger popup image for the thumbnail.
ShowTitles
Property
Specifies whether or not to show the thumbnail titles.
TopMargin
Property
Amount of extra space, in pixels, to leave between the top-most thumbnail item and the top edge of the control.
VertScrollBar
Property
Tells whether vertical or horizontal scrolling is enabled
XSpacing
Property
Specifies the amount of horizontal space between thumbnails displayed on the control, in pixels.
YSpacing
Property
Specifies the amount of vertical space between thumbnails displayed on the control, in pixels.
ZoomFactor
Property
Specifies the amount of zoom-in to use when displaying the magnified popup image.
DeleteAllItems
Method
Removes all of the thumbnail items from the control.
DeleteItem
Method
Removes the specified thumbnail item from the control.
DirectoryAppend
Method
Creates a series of thumbnail items (either one per file, or one per page per file), by scanning through a filesystem directory and selecting all of the files matching the Filters parameter.
DocumentAppend
Method
Appends all valid pages in a document into thumbnail control.
FileAppend
Method
Creates a series of thumbnail items (either one, or one per page) for the indicated file.
InvalidateView
Method
Causes the thumbnail items' icons to be redrawn.
IOLocationAppend
Method
Creates a series of thumbnail items (either one, or one per page) for the specified location.
PageAppend
Method
Appends a page into thumbnail control.
ReloadAll
Method
Causes all the files in the thumbnail browser to be reloaded.
ReloadItem
Method
Causes the thumbnail item to read the image again.
SetParentCtls
Method
This method gives the IGGUIThumbnailCtl control references to the ImageGear objects that it needs in order to function.
ShowBrowser
Method
This method shows or hides the thumbnail browser window
Sort
Method
Sorts the thumbnail items in the control.
AfterLoad
Event
Called after each IGGUITNItem is loaded (by processing the file or in-memory area).
BeforeLoad
Event
Called as each IGGUITNItem is loaded (by processing the file or in-memory area).
Click
Event
Called to indicate that the user clicked somewhere within the control.
DblClick
Event
Called to indicate that the user double-clicked somewhere within the control.
DoSort
Event
Called repeatedly during the processing of a call to Sort().
DragDropItem
Event
Fires when a drag and drop operation happens within the control
DragDropItemFrom
Event
Fires before a drag and drop operation happens within the control.
KeyDown
Event
Called when the thumbnail browser has an input focus and the user presses any key on the keyboard
KillFocus
Event
Called when the control loses the focus.
OnCreateItem
Event
Called after a new IGGUITNItem is added to the control.
OnDeleteItem
Event
Called as each IGGUITNItem is removed from the control, before the item is removed from the Items collection.
SetFocus
Event
Called when the control receives the focus.

Enumerations:

enumIGFormats
Identifies the file format of the file from which a thumbnail items will be created.
enumIGGUIWinCtlSortoptions
lists the options for how to sort the thumbnail items in the control when calling the SetParentCtls method.
enumIGGUIWinCtlErrors
Error codes that can be returned from IGGUIThumbnailCtl.


AllPages

Group: Property

Description:

Controls whether all pages of a multi-page image (e.g., a multi-frame GIF or TIFF file) will be loaded into thumbnails, or whether only the first page will be loaded.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True means create a thumbnail item for every page in every file; False means create a thumbnail only for page(0) in each file.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


AutoFocus

Group: Property

Description:

This property allows to set focus mode for GUI Thumbnai control. If it is set to True, then the thumbnail browser gets focus when the mouse cursor is on the window. Otherwise mouse click is required.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Not applicable
Sample:
None


BackColor

Group: Property

Description:

Color of the background of the IGGUIThumbnailCtl control.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Windows Button Background color
Access:
Read/Write
Settings:
Any System color or Custom color.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


BorderWidth

Group: Property

Description:

Defines the border width in pixels around the thumbnail. The border is drawn with the color specified by ForeColor

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True means draw a border around each thumbnail item; False means don't draw borders.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Count

Group: Property

Description:

Count of the number of thumbnail items within the control, and thus also the number if IGGUITNItems available via the Item(n) property.

Property Summary:

Data Type:
Long
Default Value:
<number of items in collection>
Access:
Read
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


DragDropOptions

Group: Property

Description:

Controls whether the thumbnail browser can be a Drag source, Drop target or both.

Property Summary:

Data Type:
IG_GUIWINCTL_DRAGDROPOPTIONS enumeration
Default Value:
IG_GUIWINCTL_ENABLE_DRAGDROP = 3
Access:
Read/Write
Settings:
IG_GUIWINCTL_DISABLE_DRAGDROP = 0 IG_GUIWINCTL_ENABLE_DRAG = 1 IG_GUIWINCTL_ENABLE_DROP = 2 IG_GUIWINCTL_ENABLE_DRAGDROP = 3
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Flat

Group: Property

Description:

Controls whether the thumbnail item will appear flat or three-dimentional.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
False gives the thumbnail items a flat appearance; False gives the thumbnail items a 3D recessed-look border.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Font

Group: Property

Description:

Font used for rendering titles under the thumbnail items.

Property Summary:

Data Type:
IFontDisp
Default Value:
Default Windows font
Access:
Read/Write
Settings:
Any font installed in the computer.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ForeColor

Group: Property

Description:

Color to use for rendering titles under those thumbnail items that are neither selected nor highlighted.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Windows text color
Access:
Read/Write
Settings:
Any System color or Custom color.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


HighlightBackColor

Group: Property

Description:

The titles of some thumbnail items can be shown with a different text background color (whenever IGGUITNItem.Highlighted = True). This property specifies the color to use.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Red
Access:
Read/Write
Settings:
Any System color or Custom color.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


HighlightForeColor

Group: Property

Description:

The titles of some thumbnail items can be shown with a different text color (whenever IGGUITNItem.Highlighted = True). This property specifies the color to use.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Black
Access:
Read/Write
Settings:
Any System color or Custom color.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


HWND

Group: Property

Description:

The handle to the window for the control.

Property Summary:

Data Type:
Long
Default Value:
HWND of the IGGUIThumbnailCtl window
Access:
Read
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Interior

Group: Property

Description:

Specifies the amount of extra space, in pixels, to place around the thumbnail item image inside the "button".

Property Summary:

Data Type:
Integer
Default Value:
0
Access:
Read-Only
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


Item(n)

Group: Property

Description:

Used to access a particular thumbnail item in the control. Use this in a For loop where the n value varies from 0 to (Count - 1). Alternatively, VB programmers can access all of the thumbnail items with the following code:

        Dim item As IGGUITNItem
        For Each item In IGGUIThumbnailCtl1
            < refer to item.xxx properties>
        Next item

Property Summary:

Data Type:
IGGUITNItem
Default Value:
Access:
Read Only
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ItemHeight

Group: Property

Description:

Height, in pixels of the image to be drawn in each thumbnail item. The height is computed by IGGUIThumbnailCtl. This property is provided so that your application can determine the results of the calculation.

Property Summary:

Data Type:
Long
Default Value:
64
Access:
Read Only
Settings:
Any positive integer value.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ItemWidth

Group: Property

Description:

Width, in pixels of the image to be drawn in each thumbnail item. The width is computed by IGGUIThumbnailCtl. This property is provided so that your application can determine the results of the calculation.

Property Summary:

Data Type:
Long
Default Value:
64
Access:
Read Only
Settings:
Any positive integer value.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


LeftMargin

Group: Property

Description:

Specifies the amount of extra space, in pixels, to leave between the left edge of the control and the left-most item drawn inside the control. Note that IGGUIThumbnailCtl is resizeable, so the amount of margin on the right side is determined automatically.

Property Summary:

Data Type:
Integer
Default Value:
0
Access:
Read/Write
Settings:
Any non-negative integer value. 0 means to use the Windows standard list-view-control margins.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


MouseIcon

Group: Property

Description:

Custom mouse icon to display over the control, used when MousePointer = 99. Use a .ICO file or an ICO resource to set this property.

Property Summary:

Data Type:
IPictureDisp
Default Value:
<none>
Access:
Read/Write
Settings:
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


MousePointer

Group: Property

Description:

Identifies any of the standard mouse icons to display over the control (numeric value equivalent to vbArrow, vbHourglass, etc.).

Property Summary:

Data Type:
Long
Default Value:
0 (vbDefault)
Access:
Read/Write
Settings:
1 (vbArrow) is the Arrow cursor
2 (vbCrosshair) is the Crosshair cursor
3 (vbIbeam) is the I-beam cursor
4 (vbIconPointer) is a small square within a square
5 (vbSizePointer) is a 4-pointed arrow
11 (vbHourglass) is the Hourglass cursor
99 (vbCustom) means "use the MouseIcon picture"
See the Visual Basic documentation for other values.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


MultiSelect

Group: Property

Description:

True means that the user can select multiple thumbnail items at the same time (shift-left-click to select a range of items, ctrl-left-click to select multiple individual items). False means that only one item can be selected - selecting one will automatically de-select any other that is selected.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True means multiple thumbnail items can be selected at the same time; False means that only one can be selected at a time.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


SelectionBackColor

Group: Property

Description:

One (or more, if MultiSelect = True) thumbnails can be selected by clicking them with the mouse. When selected, the border around the button is changed from BackColor to SelectBackColor.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Windows hightlight color
Access:
Read/Write
Settings:
Any System color or Custom color.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


SelectionForeColor

Group: Property

Description:

One (or more, if MultiSelect = True) thumbnails can be selected by clicking on them with the mouse. When selected, the text is changed from ForeColor to SelectForeColor.

Property Summary:

Data Type:
OLE_COLOR
Default Value:
Windows text color.
Access:
Read/Write
Settings:
Any System color or Custom color.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ShadowWidth

Group: Property

Description:

Specifies the width of the 3D appearance for every item if the Flat property is set to True.

Property Summary:

Data Type:
Long
Default Value:
2
Access:
Read/Write
Settings:
any non-negative value.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ShowMagnify

Group: Property

Description:

The user may opt to see a larger popup image for the thumbnail by pressing the right-mouse-button down. This property enables/disables this behavior.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read/Write
Settings:
True means that right-mouse-down will automatically cause the magnified view of the item to appear, False means that it won't.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ShowTitles

Group: Property

Description:

A title may be shown for each thumbnail, below the button. This specifies whether or not to show the titles.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read/Write
Settings:
True means that a title will be shown for each thumbnail item, False means that it won't.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


TopMargin

Group: Property

Description:

Specifies the amount of extra space, in pixels, to leave between the top edge of the control and the top-most item drawn inside the control. Note that IGGUIThumbnailCtl is resizeable, so the amount of margin on the bottom side is determined automatically.

Property Summary:

Data Type:
Integer
Default Value:
0
Access:
Read/Write
Settings:
Any non-negative integer value. 0 means to use the Windows standard list-view-control margins.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


VertScrollBar

Group: Property

Description:

This propery tells whether vertical or horizontal scrolling is enabled.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True makes verical scrolling enabled, False - horizontal.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


XSpacing

Group: Property

Description:

The amount of horizontal space between thumbnails displayed on the control, in pixels. When set to (-1) it will use the default spacing that Windows uses for icons.

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any non-negative value is the amount of horizontal space, in pixels, between items.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


YSpacing

Group: Property

Description:

The amount of vertical space between thumbnails displayed on the control, in pixels. When set to (-1) it will use the default spacing that Windows uses for icons. When ShowTitles = True, the YSpacing measures the distance from the bottom of a title to the top of the item below it. When ShowTitles = False, the YSpacing measures the distance from the bottom of the item to the top of the one below it.

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any non-negative value is the amount of horizontal space, in pixels, between items.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


ZoomFactor

Group: Property

Description:

Only used when ShowMagnify = True. Specifies the amount of zoom-in to use when displaying the magnified popup image (value must be 1.0 or greater).

Property Summary:

Data Type:
Single
Default Value:
2.5
Access:
Read/Write
Settings:
Any value of 1.0 or greater.
Bits Per Pixel:
Not applicable
Sample:
ig_guiwin_vb6.exe


DeleteAllItems

Group: Method

Description:

Removes all of the thumbnail items from the control.

Declaration:

 DeleteAllItems()

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DeleteItem

Group: Method

Description:

Removes the thumbnail item specified with its index from the control.

Declaration:

 DeleteItem(Index as Long)

Parameters:

Index
Index of the thumbnail item that is to be deleted.

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DirectoryAppend

Group: Method

Description:

Creates a series of thumbnail items (either one per file, or one per page per file), by scanning through a filesystem directory and selecting all of the files matching the Filters parameter.

Declaration:

 DirectoryAppend(FilePath As String, Filters As String)

Parameters:

FilePath
Can either be specified as a DOS filepath (e.g., with a drive-letter), or as a Windows filepath (e.g., a UNC filepath like "\\server\sharename\directory").
Filters
A standard Windows file-filter string: "*.*" means all files, "*.bmp" means all BMP files, "*.JPG;*.BMP" means all BMP and JPG files.

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DocumentAppend

Group: Method

Description:

Appends all valid pages in a document into thumbnail control.

Declaration:

DocumentAppend(DocumentToAppend As IGDocument, Name As String)

Parameters:

PageToAppend
Appends all valid pages in a document into thumbnail control
IGPage
Object that is to be appended
Name
String that is to be used as thumbnail icon title.

Return value:

<none>

Bits Per Pixel:

N/A

Sample:

None


FileAppend

Group: Method

Description:

Creates a series of thumbnail items (either one, or one per page) for the indicated file.

Declaration:

FileAppend(FilePath As String)

Parameters:

FilePath
Can either be specified as a DOS filepath (e.g., with a drive-letter), or as a Windows filepath (e.g., a UNC filepath like "\\server\sharename\directory\mypicture.bmp").

Return value:

<none>

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


InvalidateView

Group: Method

Description:

Causes the thumbnail items' icons to be redrawn. Use this after changing any of the properties that control the appearance of the thumbnail icons (e.g., BorderColor).

Declaration:

InvalidateView()

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IOLocationAppend

Group: Method

Description:

Creates a series of thumbnail items (either one, or one per page) for the specified location.

NOTE: If the location type is IG_LOC_URL then the only first page of the url file is added to the control

Declaration:

IOLocationAppend(IOLocation as IIGIOLocation)

Parameters:

IOLocation
IGIOLocation object specifying a location of the image file. Possible types of the location:
  • IG_LOC_FILE - file is loaded from the disk
  • IG_LOC_MEMORY - file is loaded from the momory
  • IG_LOC_STREAM - file is loaded from the stream
  • IG_LOC_URL - file is loaded from internet

Return value:

<none>

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PageAppend

Group: Method

Description:

Appends a page into thumbnail control.

Declaration:

PageAppend(PageToAppend As IGPage, Name As String)

Parameters:

PageToAppend
IGPage object that is to be appended
Name
String that is to be used as thumbnail icon title

Return value:

<none>

Bits Per Pixel: N/A

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReloadAll

Group: Method

Description:

Causes the files in the thumbnail browser to be reloaded. This is necessary, for example, when the ImageWidth or ImageHeight properties were changed and the thumbnail bitmaps have to be created again.

Declaration:

ReloadAll()

Parameters:

<none>

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReloadItem

Group: Method

Description:

Causes the thumbnail item to read the image again. This will create a new and updated icon directly from the source. Use this when the file or page has actually changed and needs to be reloaded.

Declaration:

ReloadItem(pItem As IGGUITNItem)

Parameters:

pItem
The IGGUITNItem object that is to be recreated from the original file.

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SetParentCtls

Group: Method

Description:

This method gives the IGGUIThumbnailCtl control references to the ImageGear objects that it needs in order to function. You must call this method before doing anything else with the control.

Declaration:

SetParentCtls(pCore As IGComponent, pDisplayCtl As IGComponent,
pFormats As IGComponent)

Parameters:

pCore
Specify the IGCoreCtl control used by your application
pDisplayCtl
Specify the IGDisplayCtl control used by your application
pFormatsCtl
Specify the IGFormatsCtl control used by your application

Return value:

<none>

Bits Per Pixel: N/A

Example:

...
IGGUIThumbnailCtl1.SetParentCtls(IGCoreCtl1.ComponentInterface,
IGDisplayCtl1.ComponentInterface,
IGFormatsCtl1.ComponentInterface)
...

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Sort

Group: Method

Description:

Sorts the thumbnail items in the control. The items can either be sorted by one of the pre-defined sort sequences, or your application can sort them into some custom sequence. To sort them into a custom sequence, your application must implement a DoSort event handler.

Declaration:

Sort(LParam As Long, option As IG_GUIWINCTL_SORTOPTIONS)

Parameters:

LParam
Any value that you wish to pass to the DoSort event handler. Typically, this will either be null or a "ByRef" reference to an object created by your application.
option
One of the enumIGGUIWinCtlSortoptions values. If you choose IG_GUIWINCTL_VIA_CALLBACK, then your application must implement a DoSort event handler.

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ShowBrowser

Group: Method

Description:

This method shows or hides the thumbnail browser window. If no window has been associated with the thumbnail control then the thumnbnail browser wondow is created internally.

Declaration:

ShowBrowser(Show As Boolean)

Parameters:

Show
If true then the thumbnail browser window becomes visible, othervise hidden.

Return value:

<none>

Bits Per Pixel: N/A

Sample: ig_guiwin_vb6.exe

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AfterLoad

Group: Event

Description:

Called during the process of creating a thumbnail item. This event is rasied after the image has been loaded into an IGPage object, but before the thumbnail item is created. Your application can implement this event handler if it needs to restrict the thumbnail items based on the file attributes.

Declaration:

Sub IGGUIThumbnailCtl_AfterLoad(pParams As
IGGUITNAfterLoadParams)

Parameters:

pParams
A IGGUITNAfterLoadParams object which references the IGPage containing the image and also contains a "SkipItem" flag that can be used to skip creating a thumbnail item for the IGPage image.


BeforeLoad

Group: Event

Description:

Called during the process of creating a thumbnail item. This event is raised before the image has been loaded into an IGPage object. Your application can use this event to set the ImageGear file load handling (e.g., load scaled JPEG image) and the thumbnail image generation handling (e.g., aliasing, interpolation).

Declaration:

Sub IGGUIThumbnailCtl_BeforeLoad(pParams As
IGGUITNBeforeLoadParams)

Parameters:

pParams
A IGGUITNBeforeLoadParams object that references the IIGIOLocation from which the image will be loaded and also contains a "SkipItem" flag that can be used to skip creating thumbnail items for the file.


Click

Group: Event

Description:

Called to indicate that the user clicked somewhere within the thumbnail browser.

Declaration:

Sub IGGUIThumbnailCtl_Click(Index as Long)

Parameters:

Index
The index of the item under the cursor or -1 if the mouse is outside any item


DblClick

Group: Event

Description:

Called to indicate that the user double-clicked somewhere within the control.

Declaration:

Sub IGGUIThumbnailCtl_DblClick(Index as Long)

Parameters:

Index
The index of the item under the cursor or -1 if the mouse is outside any item


DoSort

Group: Event

Description:

Called repeatedly during the processing of a call to Sort(), when the Sort parameter specifies IG_GUIWINCTL_VIA_CALLBACK. Your event handler will be called with pairs of IGGUITNItem objects, and must tell IGGUIThumbnailCtl how to sort the two items. Your event handler sets the pSort.Greater value to indicate the result of items comparison.

Declaration:

Sub IGGUIThumbnailCtl_DoSort(pSort As IGGUITNSortResult)

Parameters:

pSort
A IGGUITNSortResult object containing two items for comparison and a comparison result to be set to true or false.


DragDropItem

Group: Event

Description:

Fires when a drag and drop operation happens within the control.

Declaration:

Event DragDropItem(pItemDrag As IGGUITNItem, pItemDrop As
IGGUITNItem)

Parameters:

pItemDrag
Reference to the item that was dragged.
pItemDrop
Reference to the item where pItemDrag was dropped.


DragDropItemFrom

Group: Event

Description:

Fires before a drag and drop operation happens within the control.

Declaration:

Event DragDropItemFrom(pItemDrag As IGGUITNItem)

Parameters:

pItemDrag
Reference to the item that is being dragged.


KeyDown

Group: Event

Description:

Called when the thumbnail browser has an input focus and the user presses any key on the keyboard. The client program can process this event, for example, to remove an item from the thumbnail browser when "Delete" key is pressed.

Declaration:

Sub IGGUIThumbnailCtl_KeyDown(VkeyCode as Long, KeyState as
Long)

Parameters:

VKeyCode
Specifies the virtual-key code of the nonsystem key
KeyState
Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag. See table below for bits description.

Description of KeyState bits:

0-15
Specifies the repeat count for the current event. The value is the number of times the keystroke is autorepeated as a result of the user holding down the key. If the keystroke is held long enough, multiple events are sent. However, the repeat count is not cumulative.
16-23
Specifies the scan code. The value depends on the original equipment manufacturer (OEM).
24
Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101-key or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
25-28
Reserved; do not use.
29
The value is always 0
30
Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is zero if the key is up.
31
Specifies the transition


KillFocus

Group: Event

Description:

Called when the focus leaves IGGUIThumbnailCtl.

Declaration:

Sub IGGUIThumbnailCtl_KillFocus()


OnCreateItem

Group: Event

Description:

Called after a new IGGUITNItem is added to the control. During thumbnail item creation, the sequence of events is BeforeLoad, then AfterLoad, then OnCreateItem.

Declaration:

Sub IGGUIThumbnailCtl_OnCreateItem(pItem As IGGUITNItem)

Parameters:

pItem
The newly created IGGUITNItem object .


OnDeleteItem

Group: Event

Description:

Called as each IGGUITNItem is removed from the control, before the item is removed from the Items collection.

Declaration:

Sub IGGUIThumbnailCtl_OnDeleteItem(pItem As IGGUITNItem)

Parameters:

pItem
The IGGUITNItem object that is about to be deleted.


SetFocus

Group: Event

Description:

Called when the IGGUIThumbnailCtl receives the Windows focus.

Declaration:

Sub IGGUIThumbnailCtl_SetFocus()


enumIGFormats

Group: Enumeration

Description:

This enumeration lists the various file formats handled by Image Gear. See the IGFormatsCtl documentation in the Image Gear ActiveX manual for the description of the various enumeration values.


enumIGGUIWinCtlSortoptions

Group: Enumeration

Description:

This enumeration lists the options for how to sort the thumbnail items in the control when calling the SetParentCtls method.

Values:

IG_GUIWINCTL_TITLE_ASCENDING
The thumbnail items will be sorted by title, in ascending order.
IG_GUIWINCTL_TITLE_DESCENDING
The thumbnail items will be sorted by title, in descending order.
IG_GUIWINCTL_VIA_CALLBACK
The thumbnail items will be sorted into an order determined by the DoSort event handler in your application.


enumIGGUIWinCtlErrors

Group: Enumeration

Description:

IGGUIThumbnailCtl always uses the COM Error object to indicate problems or failures in the course of processing. The enumIGGUIWinCtlErrors enumeration lists the various error Number values that might be returned.

Values:

IG_GUIWINCTLERR_NOCORECTL
The value passed to SetParentCtls is not a valid IGCoreCtl control.
IG_GUIWINCTLERR_NODISPLAYCTL
The value passed to SetParentCtls is not a valid IGDisplayCtl control.
IG_GUIWINCTLERR_NOFORMATSCTL
The value passed to SetParentCtls is not a valid IGFormatsCtl object.
IG_GUIWINCTLERR_NOSETPARENTCTLS
One or more of the objects passed to SetParentCtls is no longer valid.


ImageGear ImageClean Component API Reference

ImageGear ImageClean Component API Reference

ImageGear ImageClean component provides several methods that allow you to enhance bi-level image support. It includes the ability to clean borders, invert white text, auto-orient image, auto invert black text on the white background, and auto-crop. It exposes the following objects:

IGCleanBordersOptions2
Options for the second mode of IGICCtl. CleanBorders method
IGDotLineOptions
Parameters for IGICCtl.RemoveDotLines method.
IGICCtl
ImageGear ImageClean Control
IGInvertWhiteTextOptions
Options for IGICCtl. InvertWhiteText method
IGLineOptions
Parameters for IGICCtl.RemoveLines method.
IGOrientAutoOptions
Options for IGICCtl. OrientAuto method
IGPunchHoleOptions
Parameters for IGICCtl.RemovePunchHoles method.

The following interfaces that don't have corresponding objects are defined in ImageGear ImageClean component:

IIGIC
ImageGear ImageClean Interface

The following enumerations are used in ImageGear ImageClean component:

enumIGICDirection
Types of object orientations for ImageClean API.
enumIGICDocType
Types of document text or image alignment
enumIGICMethods
Modes for some IGICCtl methods
enumIGICUnits
Types of the measure units used in ImageClean.

Below is an alphabetized reference of ImageGear ImageClean objects and interfaces and their API (properties, methods, and events).


IGCleanBordersOptions2

Group: Object

Description:

This object contains the options for the second mode of IGICCtl. CleanBorders method.

Interface: IIGCleanBordersOptions2

Class Members:

BottomBorderSize
property
Maximal size of bottom border
LeftBorderSize
property
Maximal size of left border
MinLinesNum
property
Minimal number of lines in one border block, which width is not less than MinLineWidth
MinLineWidth
property
Minimal width of lines in one border block
RightBorderSize
property
Maximal size of right border
TopBorderSize
property
Maximal size of top border


BottomBorderSize

Group: Property

Description:

This property contains maximal size of the bottom border.

Property Summary:

Data Type:
Long
Default Value:
100
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


LeftBorderSize

Group: Property

Description:

This property contains maximal size of the left border.

Property Summary:

Data Type:
Long
Default Value:
100
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinLinesNum

Group: Property

Description:

This property contains minimal number of lines in one border block, which width is not less than MinLineWidth.

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinLineWidth

Group: Property

Description:

This property contains minimal width of lines in one border block.

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


RightBorderSize

Group: Property

Description:

This property contains maximal size of the right border.

Property Summary:

Data Type:
Long
Default Value:
100
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


TopBorderSize

Group: Property

Description:

This property contains maximal size of the top border.

Property Summary:

Data Type:
Long
Default Value:
100
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


IGDotLineOptions

Type: Class

Description:

This class specifies parameters for IGICCtl.RemoveDotLine method.

Declaration:

Class IGDotLineOptions

Members:

Direction
property
Direction of lines to detect. Default is IG_IC_DIRECTION_HORIZONTAL
MaxDiameter
property
Maximal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 3 mm.
MinDiameter
property
Minimal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 1 mm.
MinNumber
property
Minimal numbers of dots in line. Default value is 4.
Unit
property
Hole's size measure unit. Default value is mm.


Direction

Group: Property

Description:

This property specifies direction of line to be detected. Default value is IG_IC_DIRECTION_HORIZONTAL.

Property Summary:

Data Type:
enumIGICDirection
Default Value:
IG_IC_DIRECTION_HORIZONTAL
Access:
Read/Write
Settings:
Any of enumIGICDirection values
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MaxDiameter

Group: Property

Description:

This property specifies maximal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 3 mm.

Property Summary:

Data Type:
Double
Default Value:
3 mm
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinDiameter

Group: Property

Description:

This property specifies minimal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 1 mm.

Property Summary:

Data Type:
Double
Default Value:
1 mm
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinNumber

Group: Property

Description:

This property specifies minimal numbers of dots in line. Default value is 4.

Property Summary:

Data Type:
Long
Default Value:
4
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


Unit

Group: Property

Description:

This property specifies hole's size measure unit. Default value is mm.

Property Summary:

Data Type:
enumIGICUnits
Default Value:
mm
Access:
Read/Write
Settings:
Any enumIGICUnits values
Bits Per Pixel:
N/A
Sample:
Ip_Fx


IGICCtl

Group: Control

Description:

The ImageGear ImageClean component, created explicitly by application developer using IDE/language capabilities.

Interface:

IIGICCtl extends IIGIC

Class Members:

CleanBordersOptions2
property
Options for the second mode of IGICCtl. CleanBorders method
ComponentInfo
property
Provides access to the IGComponentInfo object for IGICCtl. The IGComponentInfo object identifies the particular version of IGICCtl installed in the computer.
ComponentInterface
property
Provides access to the IIGComponent interface for IGICCtl. Used in IGCoreCtl . AssociateComponent call.
InvertWhiteTextOptions
property
Options for IGICCtl. InvertWhiteText method
Method
property
Modes for IGICCtl methods
OrientAutoOptions
property
Options for IGICCtl. OrientAuto method
RemoveDotLineOptions
property
Parameters for RemoveDotLines method.
RemoveLineOptions
property
Parameters for RemoveLines method.
RemovePunchHoleOptions
property
Parameters for RemovePunchHoles method.
CleanBorders
method
Detects and removes black regions near the borders
CropAuto
method
Detects and crops white borders
GetNoiseObjectsCount
method
Checks the image for the number of groups of "noise" black pixels exceeding the size of the specified threshold value
InvertBlackImage
method
Inverts entire image in case if percentage of black pixels in the image exceeds the specified threshold percentage value
InvertWhiteText
method
Detects and inverts the white text areas on black backgrounds
OrientAuto
method
Determines image orientation and rotates it to the proper orientation
RemoveDotLines
method
Automatically detects and removes the dot lines on the 1-bit scanned image.
RemoveLines
method
Automatically detects and removes horizontal and vertical lines on the 1-bit scanned image.
RemovePunchHoles
method
Automatically detects and removes the punch holes on the 1-bit scanned image.


CleanBordersOptions2

Group: Property

Description:

This property provides access to the options for the second mode of IGICCtl. CleanBorders.

Property Summary:

Data Type:
IGCleanBordersOptions2
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


CleanBorders

Group: Method

Description:

This method detects and removes the large black regions near the borders of a 1-bit image. These black borders can appear as a result of scanning an image that was reproduced with a copier onto paper that was larger than the image itself.

This method works in two modes. In the first (default) mode the CleanBorders operation is permormed using the general ImageClean algorithm. No extra parameters are available for this mode. In the second mode the CleanBorders operation is permormed using IGICCtl. CleanBordersOptions2 property values. The first 4 values specify the maximal size for all borders. It means the pixels from the outside of the borders will not be deleted. But it doesn't mean that all pixels inside the borders will be deleted. The last two values specify the groups of pixels (blocks) inside the borders that should be deleted. The blocks with MinLinesNum or more number of lines and width equal to MinLineWidth or wider will be deleted from the image. For the left and right borders the block lines are actually parts of screen lines and for the top and bottom borders those lines are screen columns.

To switch the method to the second mode set IGICCtl. Method to IG_IC_METHOD_2.

NOTE: This method can be applied several times. First time large values can be set for all parameters and thus large borders will be removed without removing actual image parts. Then setting small values for the parameters will cause removing of small spots near the edges of the image.

Declaration:

CleanBorders (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object for which the CleanBorders operation happens

Return value: N/A

Bits Per Pixel: 1

Sample: Ip_Fx

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGICCtl. The IGComponentInfo object identifies the particular version of IGICCtl installed in the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGICCtl. Used in IGCoreCtl . AssociateComponent call.

Property Summary:

Data Type:
IIGComponent interface
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


CropAuto

Group: Method

Description:

This method detects white borders on all four sides of the 1-bit image and crops them. For example, if there is a 1 inch left margin with no text, this area is cropped. If the bottom of the page has 3 inches of white space, it is cropped. The image is not resized.

Declaration:

CropAuto (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object for which the crop operation happens

Return value: N/A

Bits Per Pixel: 1

Sample: Ip_Fx

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetNoiseObjectsCount

Group: Method

Description:

This method checks the image for a number of groups of "noise" black pixels (connected to each other) exceeding the size of the specified threshold value.

This function can be used to detect blank paper sheets in the scanner tray when the resulting image is almost clear and may contains only several black "noise" pixels.

Declaration:

GetNoiseObjectsCount (ByVal pPage As IGPage, ByVal
ObjectSizeThreshold As Long) As Long

Parameters:

pPage
Reference to IGPage object for which to get the noise objects count
ObjectSizeThreshold
Diagonal of the minimum circumscribed rectangle that contains the group of "noise" black pixels

Return value:

A number of groups of "noise" black pixels

Bits Per Pixel: 1

Sample: Ip_Fx

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


InvertBlackImage

Group: Method

Description:

This method inverts the entire image in case if percentage of black pixels in the image exceeds the specified threshold percentage value.

Declaration:

InvertBlackImage (ByVal pPage As IGPage, ByVal
BlackColorThreshold As Long)

Parameters:

pPage
Reference to IGPage object for which the InvertBlackImage operation happens
BlackColorThreshold
Minimum percentage value of black pixels in the image required to trigger the autoinversion

Return value: N/A

Bits Per Pixel: 1

Sample: Ip_Fx

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


InvertWhiteText

Group: Method

Description:

This method detects the areas of white text on black backgrounds in 1-bit image and inverts them to the black text on white backgrounds. This method scans your entire image and makes adjustments to all areas of white text on black that fall within the scope of the defined settings.

The InvertWhiteText operation is permormed using IGICCtl. InvertWhiteTextOptions property values.

The MinX and MinY values tell ImageGear the minimum width and height (respectively) for areas that you would like to invert. For example, if you set IGICCtl. InvertWhiteTextOptions.MinX = 60 and IGICCtl. InvertWhiteTextOptions.MinY = 20, ImageGear will only invert sections of white text on black background with a minimum width of 60 pixels and a minimum height of 20 pixels.

The MinT value specifies the minimum "thickness" of spaces that fall between sections of text that will be inverted. This minimum value indicates those sections of text to be treated as one section based on how close they are to one another. As an example, let's say you have three adjacent sections of white text on black backgrounds that contain the words, "There," "is," and "hope." If "There" and "hope" meet your minimum size requirements they will be inverted. If "is" is below your minimum size requirements and you have not set IGICCtl. InvertWhiteTextOptions.MinT to a small enough value, "is" will not be inverted, resulting in "There" and "hope" looking normal, while "is" remains white text on black background. To prevent this (if desired), you would need to set IGICCtl. InvertWhiteTextOptions.MinT to the value small enough to include the spaces before and after the word "is." This way, all the words would be treated as one section and inverted together.

The MinSymbol and MaxSymbol values determine the minimum and maximum sizes of the white letters to be inverted, i.e. the maximum width and height of the letter cell that is the smallest rectangle that completely covers the letter.

The MaxBorder value sets the maximum border size around the letter that will be inverted along with the letter cell. For example, if width and height of the letter cell are 20 and 30 respectively and IGICCtl.InvertWhiteTextOptions. MaxBorder = 10, then the width and the height of the rectangle that will be inverted are 40 (10+20+10) and 50 (10+30+10) respectively. Please be careful when setting this parameter. If it is very large, it is possible that incorrect image areas will be inverted.

Declaration:

InvertWhiteText (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object for which the InvertWhiteText operation happens

Return value: N/A

Bits Per Pixel: 1

Sample: Ip_Fx

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


InvertWhiteTextOptions

Group: Property

Description:

This property provides access to the options for IGICCtl. InvertWhiteText method.

Property Summary:

Data Type:
IGInvertWhiteTextOptions
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


Method

Group: Property

Description:

This property provides modes for IGICCtl methods.

Property Summary:

Data Type:
enumIGICMethods
Default Value:
IG_IC_METHOD_1
Access:
Read/Write
Settings:
Any value of enumIGICMethods
Bits Per Pixel:
N/A
Sample:
Ip_Fx


OrientAuto

Group: Method

Description:

This method determines 1-bit image orientation and rotates it to the proper orientation.

The OrientAuto operation is permormed using IGICCtl. OrientAutoOptions property values.

If the input document is left (or right) aligned and contains only the text formed in one column, set the IGICCtl.OrientAutoOptions. DocumentType parameter to IG_IC_LEFT_ALIGNED_DOC (or IG_IC_RIGHT_ALIGNED_DOC accordingly). Otherwise, if you don't know anything about the loaded document, set IGICCtl. OrientAutoOptions.DocumentType to IG_IC_STANDARD_DOC.

.Declaration:

OrientAuto (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object for which the auto orientation operation happens

Return value: N/A

Bits Per Pixel: 1

Sample: Ip_Fx

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


OrientAutoOptions

Group: Property

Description:

This property provides access to the options for IGICCtl. OrientAuto method.

Property Summary:

Data Type:
IGOrientAutoOptions
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Ip_Fx


RemoveDotLines

Group: Method

Description:

This method automatically detects and removes the dot lines on the 1-bit scanned image. The method takes a 1-bit image page and the set of advanced parameters specifying the orientation of lines to detect and number and diameter of dots.

Declaration:

Sub RemoveDotLines(pPage As IGPage)

Parameters:

pPage
IGPage object to apply dot lines removal to.

Return Value:

N/A

See Also:

IGPage


RemoveDotLineOptions

Group: Property

Description:

This property specifies parameters for RemoveDotLines method.

Property Summary:

Data Type:
IGDotLineOptions
Default Value:
N/A
Access:
Read/write
Settings:
IGDotLineOptions values
Bits Per Pixel:
N/A
Sample:
Ip_Fx


RemoveLines

Group: Method

Description:

This method automatically detects and removes the horizontal and vertical lines on the 1-bit scanned image such as frames and tables. The method takes a 1-bit image page and the set of advanced parameters specifying the orientation of lines to detect and its parameters.

Declaration:

Sub RemoveLines(pPage As IGPage)

Parameters:

pPage
IGPage object to apply lines removal to.

Return Value:

N/A

See Also:

IGPage


RemoveLineOptions

Group: Property

Description:

This property specifies parameters for RemoveLines method.

Property Summary:

Data Type:
IGLineOptions
Default Value:
N/A
Access:
Read/write
Settings:
IGLineOptions values
Bits Per Pixel:
N/A
Sample:
Ip_Fx


RemovePunchHoles

Group: Method

Description:

This method automatically detects and removes the punch holes on the 1-bit scanned image. It works for most common hole puncher standards including 2, 3, 4 and 5 hole puncher marks. The method takes a 1-bit image page and the set of advanced parameters specifying the location and diameter of punch holes.

Declaration:

Sub RemovePunchHoles(pPage As IGPage)

Parameters:

pPage
IGPage object to apply punch holes removal to.

Return Value:

N/A

See Also:

IGPage


RemovePunchHoleOptions

Group: Property

Description:

This property specifies parameters for RemovePunchHoles method.

Property Summary:

Data Type:
IGPunchHoleOptions
Default Value:
N/A
Access:
Read/write
Settings:
IGPunchHoleOptions values
Bits Per Pixel:
N/A
Sample:
Ip_Fx


IGInvertWhiteTextOptions

Group: Object

Description:

This object contains the options for IGICCtl. InvertWhiteText method.

Interface:

IIGInvertWhiteTextOptions

Class Members:

MaxBorder
property
Maximal border size around the symbol cell
MaxSymbol
property
Maximal size of the white symbol
MinSymbol
property
Minimal size of the white symbol
MinT
property
Minimal "thickness" of spaces that fall between sections of text to invert
MinX
property
Minimal region width to invert
MinY
property
Minimal region height to invert


MaxBorder

Group: Property

Description:

This property sets the maximum border size around the symbol that will be inverted along with the symbol cell. For example, if width and height of the letter cell are 20 and 30 respectively and IGICCtl.InvertWhiteTextOptions.MaxBorder = 10, then the width and the height of the rectangle that will be inverted are 40 (10+20+10) and 50 (10+30+10) respectively.

Please be careful when setting this parameter. If it is very large, it is possible that incorrect image areas will be inverted

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MaxSymbol

Group: Property

Description:

This property along with MinSymbol property determines the minimum and maximum sizes of the white letters to be inverted, i.e. the maximum width and height of the letter cell that is the smallest rectangle that completely covers the letter.

Property Summary:

Data Type:
Long
Default Value:
100
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinSymbol

Group: Property

Description:

This property along with MaxSymbol property determines the minimum and maximum sizes of the white letters to be inverted, i.e. the maximum width and height of the letter cell that is the smallest rectangle that completely covers the letter.

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinT

Group: Property

Description:

This property specifies the minimal "thickness" of spaces that fall between sections of text that will be inverted. This minimum value indicates those sections of text to be treated as one section based on how close they are to one another.

As an example, you could have three adjacent sections of white text on black backgrounds that contain the words, "There," "is," and "hope." If "There" and "hope" meet your minimum size requirements they will be inverted. If "is" is below your minimum size requirements and you have not set IGICCtl.InvertWhiteTextOptions.MinT to a small enough value, "is" will note be inverted, resulting in "There" and "hope" looking normal, while "is" remains white text on black background. To prevent this (if desired), you would need to set IGICCtl.InvertWhiteTextOptions.MinT to the value small enough to include the spaces before and after the word "is." This way, all the words would be treated as one section and inverted together.

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinX

Group: Property

Description:

This property tells ImageGear the minimal width for areas that you would like to invert. For example, if you set IGICCtl.InvertWhiteTextOptions.MinX = 60, ImageGear will only invert sections of white text on black background with a minimal width of 60 pixels.

Property Summary:

Data Type:
Long
Default Value:
100
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinY

Group: Property

Description:

This property tells ImageGear the minimal height for areas that you would like to invert. For example, if you set IGICCtl.InvertWhiteTextOptions.MinY = 20, ImageGear will only invert sections of white text on black background with a minimal height of 20 pixels.

Property Summary:

Data Type:
Long
Default Value:
100
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


IGLineOptions

Type: Class

Description:

This class specifIes parameters for IGICCtl.RemoveLines method.

Declaration:

Class IGLineOptions

Members:

Direction
property
Direction of lines to detect. Default is IG_IC_DIRECTION_HORIZONTAL
MaxBreak
property
Maximal distance between segments of broken line. Measure unit is set by Unit field. Default value is 1 mm.
MaxWidth
property
Maximal width of line segment. All lines that exceed this value are ignored. Measure unit is set by Unit field. Default value is 1 mm.
MinLength
property
Minimal length of line segment. All lines that do not exceed this value are ignored. Measure unit is set by Unit field. Default value is 10 mm.
Unit
property
Hole's size measure unit. Default value is mm.


Direction

Group: Property

Description:

This property specifies direction of line to be detected. Default value is IG_IC_DIRECTION_HORIZONTAL.

Property Summary:

Data Type:
enumIGICDirection
Default Value:
IG_IC_DIRECTION_HORIZONTAL
Access:
Read/write
Settings:
Any values of enumIGICDirection
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MaxBreak

Group: Property

Description:

This property specifies maximal distance between segments of broken line. Measure unit is set by Unit field. Default value is 1 mm.

Property Summary:

Data Type:
double
Default Value:
1 mm
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MaxWidth

Group: Property

Description:

This property specifies maximal width of line segment. All lines that exceed this value are ignored. Measure unit is set by Unit field. Default value is 1 mm.

Property Summary:

Data Type:
double
Default Value:
1 mm
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinLength

Group: Property

Description:

This property specifies minimal length of line segment. All lines that do not exceed this value are ignored. Measure unit is set by Unit field. Default value is 10 mm.

Property Summary:

Data Type:
double
Default Value:
10 mm
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


Unit

Group: Property

Description:

This property specifies hole's size measure unit. Default value is mm.

Property Summary:

Data Type:
enumIGICUnits
Default Value:
mm
Access:
Read/write
Settings:
Any values of enumIGICUnits
Bits Per Pixel:
N/A
Sample:
Ip_Fx


IGOrientAutoOptions

Group: Object

Description:

This object contains the options for IGICCtl. OrientAuto method.

Interface:

IIGOrientAutoOptions

Class Members:

DocumentType
property
Type of document text or image alignment


DocumentType

Group: Property

Description:

This property contains the types of document text or image alignment.

Property Summary:

Data Type:
enumIGICDocType
Default Value:
IG_IC_STANDARD_DOC
Access:
Read only
Settings:
Any values of enumIGICDocType
Bits Per Pixel:
N/A
Sample:
Ip_Fx


IGPunchHoleOptions

Type: Class

Description:

This class specifies parameters for IGICCtl.RemovePunchHoles method.

Declaration:

Class IGPunchHoleOptions

Members:

Accuracy
property
Accuracy of the punch hole's detection. It is measured in %. Default value is 80%.
MaxAspect
property
Maximal width/height ratio of object dimensions. It can be used to detect non-round holes. Default value is 1.05
MaxDiameter
property
Maximal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 8 mm.
MinAspect
property
Minimal width/height ratio of object dimensions. It can be used to detect non-round holes. Default value is 0.95.
MinDiameter
property
Minimal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 4 mm.
Unit
property
Hole's size measure unit. Default value is mm.


Accuracy

Group: Property

Description:

This property specifies accuracy of the punch hole's detection. It is measured in %. Default value is 80%.

Property Summary:

Data Type:
Long
Default Value:
80%
Access:
Read/write
Settings:
0 - 100%
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MaxAspect

Group: Property

Description:

This property specifies max width/height ratio of object dimensions. It can be used to detect non-round holes. Default value is 1.05.

Property Summary:

Data Type:
double
Default Value:
1.05
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MaxDiameter

Group: Property

Description:

This property specifies maximal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 8 mm.

Property Summary:

Data Type:
double
Default Value:
8 mm
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinAspect

Group: Property

Description:

This property specifies minimal width/height ratio of object dimensions. It can be used to detect non-round holes. Default value is 0.95.

Property Summary:

Data Type:
double
Default Value:
.95
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


MinDiameter

Group: Property

Description:

This property specifies minimal object size to remove, size considered as diameter respective circle. Measure unit is set by Unit field. Default value is 4 mm.

Property Summary:

Data Type:
double
Default Value:
4 mm
Access:
Read/write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Ip_Fx


Unit

Group: Property

Description:

This property specifies hole's size measure unit. Default value is mm.

Property Summary:

Data Type:
enumIGICUnits
Default Value:
mm
Access:
Read/write
Settings:
Any value of enumIGICUnits
Bits Per Pixel:
N/A
Sample:
Ip_Fx


ImageClean Component Enumerations

This section represents an alphabetized reference of enumerations defined in ImageGear ImageClean component:

    • enumIGICDirection
    • enumIGICDocType
    • enumIGICMethods
    • enumIGICUnits


enumIGICDirection

Group: Enumeration

Description:

This enumeration specifies types of object orientations for ImageClean API.

Values:

IG_IC_DIRECTION_HORIZONTAL
Direction is horizontal.
IG_IC_DIRECTION_VERTICAL
Direction is vertical.


enumIGICDocType

Group: Enumeration

Description:

This enumeration contains the types of document text or image alignment.

Values:

IG_IC_STANDARD_DOC
Unknown document alignment
IG_IC_LEFT_ALIGNED_DOC
Left aligned document with text formed in one column
IG_IC_RIGHT_ALIGNED_DOC
Right aligned document with text formed in one column


enumIGICMethods

Group: Enumeration

Description:

This enumeration contains modes for the IGICCtl methods.

Values:

IG_IC_METHOD_1
Mode 1
IG_IC_METHOD_2
Mode 2


enumIGICUnits

Group: Enumeration

Description:

This enumeration specifies types of the measure units used in ImageClean.

Values:

IG_IC_UNIT_INCH
Units set in inches.
IG_IC_UNIT_MM
Units set in millimeters.
IG_IC_UNIT_PIXEL
Units set in pixels.


ImageGear ISIS Component API Reference

ImageGear ISIS Component API Reference

The ImageGear ISIS component is a set of the following control and objects:

IGIsisCtl
ISIS component control
IGISISTagChoice
Contains the complete description of an ISIS driver tag.
IGISISTagValue
This object is used to obtain the current value of an ISIS tag, and to set the value of the tag.


IGIsisCtl

Type: Control

Description:

Interacting with the ISIS DLL and Data Source, and loading the image(s) acquired from that device is the job of IGIsisCtl. Like IGCoreCtl, you'll place one of these into the user interface of your application, and then use it to perform image acquisition processing. Like IGCoreCtl, IGIsisCtl is an ActiveX control, which allows you to use it in the UI designer tool of each development environment. Like IGCoreCtl, IGIsisCtl presents no user interface to the application end-user at run-time - it is visible only at design-time. Your application program must associate the IGIsisCtl with the IGCoreCtl before using it - this is typically done when your application first starts up.

Interface:

IIGComponent extends IDispatchEx
IIGIsis extends IIGComponent
IGIsisCtl extends IIGIsis

Class Members:

ComponentInfo
Property
Provides access to the IGComponentInfo object for IGIsisCtl. The IGComponentInfo object identifies the particular version of IGIsisCtl installed in the computer.
ComponentInterface
Property
Provides access to the IIGComponent interface for IGIsisCtl. Used in IGCoreCtl.AssociateComponent call.
DriverName
Property
Used to get the name of the ISIS driver that will be used for all other processing.
Index
Property
Returns/sets the number identifying a control in a control array.
Name
Property
Returns the name used in code to identify an object.
Object
Property
Returns an object in a control.
Parent
Property
Returns the object on which this object is located.
Tag
Property
Stores any extra data needed for your program.
WindowHandle
Property
A handle to a parent window. Used to display ISIS GUI dialogs.
AcquireToDoc
Method
Acquires a set of images from the current ISIS driver, loading an IGDocument with one IGPage per image.
AcquireToFile
Method
Acquires a set of (one or more) images from the current ISIS driver, creating a multi-page file (or separate files) on disk.
AcquireToPage
Method
Acquires a single image from the current ISIS driver, loading the image into an IGPage object.
GetDriverAttr
Method
Used to get an attribute (version number, copyright info, etc.) of the currently selected ISIS driver.
GetTagChoice
Method
Used to obtain an IGISISTagChoice object for a specified tag.
GetTagDefaultValue
Method
Used to obtain an IGISISTagValue object that represents the default value of the specified tag.
GetTagValue
Method
Used to obtain an IGISISTagValue object that represents the current value of the specified tag.
LoadDriver
Method
Loads the ISIS driver into memory, in preparation of scan processing.
SelectDriver
Method
Displays a dialog box that allows the user to choose a scanner from among all the ISIS scanner drivers that can be found on the user's system.
SetTagDefaultValue
Method
Resets the specified tag to its default value.
ShowAboutBox
Method
Displays a dialog box with copyright and version information for the current driver.
ShowAreaDlg
Method
Displays a predefined dialog box that allows the user to set scanning area.
ShowConfigDlg
Method
Displays a dialog box showing configuration information for the currently selected scanner and allowing the configuration information to be changed by the user.
ShowScanParamsDlg
Method
Displays a predefined dialog box that allows the user to set scanning parameters, such as resolution, dither pattern, brightness, contrast, and so forth.
ShowSettingsDlg
Method
Displays a predefined dialog box that allows the user to access scanner specific settings, such as pagesize detection, barcode recognition, endorsement, gamma correction, and so forth.
UnloadDriver
Method
Removes the current ISIS driver from memory, used after scan processing is complete.
UpdateTagValueFrom
Method
Used to change the current value of an ISIS tag, using an IGISISTagValue object.
AfterPage
Event
This event is fired by IGIsisCtl after each page is acquired using AcquireToDoc and AcquireToFile methods.
BeforePage
Event
This event is fired by IGIsisCtl just before a new page is acquired using AcquireToDoc and AcquireToFile methods.


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGIsisCtl. The IGComponentInfo object identifies the particular version of IGIsisCtl installed in the computer.

Property Summary:

Access
Read-only
Data type
IGComponentInfo
Default value
N/A


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGIsisCtl. Used in IGCoreCtl.AssociateComponent call.

Property Summary:

Access
Read-only
Data type
IIGComponent
Default value
N/A


DriverName

Group: Property

Description:

Used to get the name of the ISIS driver that will be used for all other processing. Initially set to the name of the default ISIS driver. If your application calls SelectDriver, then DriverName property will be set to the name of the chosen driver.

Property Summary:

Access
Read-only
Data type
String
Default value
The name of the default ISIS driver


Index

Group: Property

Description:

Returns/sets the number identifying a control in a control array.

Property Summary:

Access
Read-only
Data type
Integer
Default value
N/A


Name

Group: Property

Description:

Returns the name used in code to identify an object.

Property Summary:

Access
Read-only
Data type
String
Default value
N/A


Object

Group: Property

Description:

Returns an object in a control.

Property Summary:

Access
Read-only
Data type
Object
Default value
N/A


Parent

Group: Property

Description:

Returns the object on which this object is located.

Property Summary:

Access
Read-only
Data type
Object
Default value
N/A


Tag

Group: Property

Description:

Stores any extra data needed for your program.

Property Summary:

Access
Read-only
Data type
String
Default value
N/A


WindowHandle

Group: Property

Description:

A handle to a parent window. Used to display ISIS GUI dialogs.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


AcquireToDoc

Group: Method

Description:

This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF). The images are stored as separate pages in the specified IGDocument.

Use SelectDriver to select the desired ISIS driver, and UpdateTagValueFrom to set desired tag values, prior to calling this method.

Declaration:

AcquireToDoc (pDoc As IGDocument, NumPages As Long)

Parameters:

pDoc
IGDocument to contain the acquired images - one image per IGPage.
NumPages
Use -1 to scan all the pages currently available. If a positive number is specified, then scanning will stop after that many pages have been scanned.

Return Value:

N/A


AcquireToFile

Group: Method

Description:

This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF).

If FileName specifies only a directory but not a file name, a separate file for each page will be created, using the names 00000001.tif, 00000002.tif, 00000003.tif, etc. If those files already exist, they will be deleted before being scanned into.

If FileName specifies a filename and SavePagesSeparately is set to True, a separate file for each page will be created, but will use part of the name that you supplied. If the name you supplied was "ScanTest.bmp", your pages will be named as follows: ScanTest1.bmp, ScanTest2.bmp, ScanTest3.bmp ... ScanTest10.bmp, ScanTest11.bmp, etc. If these files already exist, they will be deleted before being scanned into.

If SavePagesSeparately is False and FileFormat is set to a format type that supports multiple pages, such as TIFF, DCX, or MO:DCA, the images are stored in one file identified by the FileName parameter.

Use SelectDriver to select the desired ISIS driver, and UpdateTagValueFrom to set desired tag values, prior to calling this method.

Declaration:

AcquireToFile (FileName As String, NumPages As Long, FileFormat
As enumIGSaveFormats, SavePagesSeparately As Boolean)

Parameters:

FileName
The name of the file to scan to.
NumPages
The number of pages to scan. Setting number of pages to -1 results in acquiring all the available pages.
FileFormat
The format of the file to scan to.
SavePagesSeparately
Specifies if the images are to be stored in separate files.

Return Value:

N/A


AcquireToPage

Group: Method

Description:

This causes the scanning of a single page through an ISIS device. Use SelectDriver to select the desired ISIS driver, and UpdateTagValueFrom to set desired control parameters values, prior to calling this method.

The automatic document feeder is programmed to be the primary source for loading paper. If an automatic document feeder exists, and there is paper in it, it is scanned. If it is empty, the paper is taken from the flatbed.

Declaration:

AcquireToPage (pPage As IGPage)

Parameters:

pPage
The IGPage into which the scanned image will be placed.

Return Value:

N/A


GetDriverAttr

Group: Method

Description:

Used to get an attribute (version number, copyright info, etc.) of the currently selected ISIS driver.

Declaration:

GetDriverAttr (Attr As enumIGISISDriverAttrs) As String

Parameters:

Attr
Used to specify which attribute is to be returned. Must be one of the values in enumIGISISDriverAttrs.

Return Value:

A string containing the requested attribute.


GetTagChoice

Group: Method

Description:

Used to obtain an IGISISTagChoice object for a given tag. This function allocates an IGISISTagChoice object, fills it with the legal values for the specified tag and returns the object to your application.

Declaration:

GetTagChoice (TagID As enumIGISISTags) As IGISISTagChoice

Parameters:

TagID
Use this parameter to identify the ISIS tag whose legal values you want to obtain. Must be an enumIGISISTags value.

Return Value:

IGISISTagChoice object containing the legal values for the requested tag.


GetTagDefaultValue

Group: Method

Description:

Used to obtain an IGISISTagValue object for a given tag. This function allocates an IGISISTagValue object, fills it with the default value for the specified tag and returns the object to your application.

Declaration:

GetTagDefaultValue (TagID As enumIGISISTags) As IGISISTagValue

Parameters:

TagID
Use this parameter to identify the ISIS tag whose default value you want to obtain. Must be an enumIGISISTags value.

Return Value:

IGISISTagValue object containing the default value for the requested tag.


GetTagValue

Group: Method

Description:

Used to obtain an IGISISTagValue object for a given tag. This function allocates an IGISISTagValue object, fills it with the current value for the specified tag and returns the object to your application. If you wish to set one or more tag values, then call GetTagValue first (to get an IGISISTagValue object), then set the object properties as desired, then call UpdateTagValueFrom to set the value. You may use the same IGISISTagValue object to set multiple tag values (get it, set a value, update from it, set another value, update from it, ...).

Declaration:

GetTagValue (TagID As enumIGISISTags) As IGISISTagValue

Parameters:

TagID
Use this parameter to identify the ISIS tag whose current value you want to obtain. Must be an enumIGISISTags value.

Return Value:

IGISISTagValue object containing the current value for the requested tag.


LoadDriver

Group: Method

Description:

This method loads an ISIS driver. The loaded driver becomes the default driver. You can unload the driver by calling UnloadDriver. You can select a new driver by calling SelectDriver, but only after unloading the currently loaded driver.

Declaration:

LoadDriver (DriverName As String)

Parameters:

DriverName
The name of the driver to load (typically, your application will use the value of the DriverName property for this).

Return Value:

N/A


SelectDriver

Group: Method

Description:

This method displays a dialog box that allows the user to choose a scanner from among all the ISIS scanner drivers that can be found on the user's system. After the user chooses a driver, that driver becomes the "currently selected driver", and its name is available via the DriverName property.

Declaration:

SelectDriver ()

Return Value:

N/A


SetTagDefaultValue

Group: Method

Description:

This method resets the specified tag to its default value.

Declaration:

SetTagDefaultValue (TagID As enumIGISISTags)

Parameters:

TagID
Use this parameter to identify the ISIS tag you want to reset to its default value. Must be an enumIGISISTags value.

Return Value:

N/A


ShowAboutBox

Group: Method

Description:

This method displays a dialog box with copyright and version information for the currently selected driver.

Declaration:

ShowAboutBox ()

Return Value:

N/A


ShowAreaDlg

Group: Method

Description:

This method displays a predefined dialog box that allows the user to set scanning area. This is the same dialog that appears when the user clicks the Area button in the Scanner Settings dialog box.

Declaration:

ShowAreaDlg ()

Return Value:

N/A


ShowConfigDlg

Group: Method

Description:

This method displays a dialog box showing configuration information for a scanner and allowing the configuration information to be changed by the user.

Declaration:

ShowConfigDlg ()

Return Value:

N/A


ShowScanParamsDlg

Group: Method

Description:

This method displays a predefined dialog box that allows the user to set scanning parameters, such as resolution, dither pattern, brightness, contrast, and so forth.

Application developers should use this method rather than setting scanner parameters explicitly. Applications will then be better able to take advantage of new scanner capabilities as these capabilities are released in new scanner drivers. By using the ShowScanParamsDlg method, the new capabilities will appear automatically whenever a new scanner driver is connected.

Declaration:

ShowScanParamsDlg ()

Return Value:

N/A


ShowSettingsDlg

Group: Method

Description:

This method displays a predefined dialog box that allows the user to access scanner specific settings, such as pagesize detection, barcode recognition, endorsement, gamma correction, and so forth.

Declaration:

ShowSettingsDlg ()

Return Value:

N/A


UnloadDriver

Group: Method

Description:

This method unloads the currently selected ISIS driver. You can load a new driver by calling LoadDriver, but only after unloading the currently loaded driver.

Declaration:

UnloadDriver ()

Return Value:

N/A


UpdateTagValueFrom

Group: Method

Description:

Used to change the current value of an ISIS tag. Before using this method, first obtain an IGISISTagValue object for a given tag using GetTagValue. Then set the tag value in the IGISISTagValue object, and then pass the object to this method. You may use the same IGISISTagValue object to set multiple tag values (get it, set a value, update from it, set another value, update from it, ...).

Declaration:

UpdateTagValueFrom(pTagValue As IGISISTagValue)

Parameters:

pTagValue
The IGISISTagValue object containing the DataType, ID and new Value for the ISIS tag.

Return Value:

N/A


AfterPage

Group: event

Description:

This event is fired by IGIsisCtl after each page is acquired using AcquireToDoc and AcquireToFile methods.

Declaration:

Sub AfterPage(ByVal EventParams As
GearISISLibCtl.IIGISISBeforePageEventParams)

Parameters:

EventParams.Page
Returns an IGPage object containing the image just scanned.
EventParams.PageNum
Returns the number of the page just scanned. The number of the first page is 0.
EventParams.PendCount
Reserved for future use.
EventParams.FileName
If the AcquireToFile method is being used, this returns the name of the file this page was just saved to.
EventParams.CancelScanning
Set it to True if you want to cancel scanning.


BeforePage

Group: Event

Description:

This event is fired by IGIsisCtl just before a new page is acquired using AcquireToDoc and AcquireToFile methods.

Declaration:

Sub BeforePage(ByVal EventParams As
GearISISLibCtl.IIGISISBeforePageEventParams)

Parameters:

EventParams.PageNum
Returns the number of the page that is to be scanned. The number of the first page to be scanned is 0.
EventParams.PendCount
Reserved for future use.
EventParams.CancelScanning
Set it to True, if you want to cancel scanning.


IGISISTagChoice

Group: Object

Description:

This object contains the complete description of an ISIS driver tag. Your application can obtain this information for a particular tag by calling the GetTagChoice method of the IGIsisCtl control. This object tells you what the legal values are for a given tag. To set the value of a tag, use the IGISISTagValue object and the GetTagValue and UpdateTagValueFrom methods.

Interface:

IIGISISTagChoice

Class Members:

ContainerType
Property
Tells your application how to interpret the data in the Value property.
DataType
Property
Data type for the tag.
ID
Property
The numeric designator of the tag.
Value
Property
Legal values for the tag.


ContainerType

Group: Property

Description:

Some tags are restricted to a certain set of possible values, while others are restricted to any value within a certain range. The Value property always contains an array, which either contains the set of values or the limits of the range. This property, ContainerType, tells you how to interpret the values in the array.

ContainerType is always set to one of the values in the enumIGISISContainerType enumeration.

Property Summary:

Access
Read-only
Data type
enumIGISISContainerType
Default value
N/A


DataType

Group: Property

Description:

Every tag is stored with a specific data-type, also defined by the ISIS standard. The enumIGISISTagDataType enumeration lists the possible datatypes. This property specifies the data type for this tag.

Property Summary:

Access
Read-only
Data type
enumIGISISTagDataType
Default value
N/A


ID

Group: Property

Description:

Every ISIS tag has an ID, defined by the ISIS standard. The enumIGISISTags enumeration lists the possible IDs. See ISIS tags for descriptions of the more commonly used tags.

Property Summary:

Access
Read-only
Data type
enumIGISISTags
Default value
N/A


Value

Group: Property

Description:

When Container Type is IG_ISIS_CONT_LIST, it contains the list of allowed values . When ContainerType is IG_ISIS_CONT_RANGE, then Array[0] is the minimum value, Array(1) is the maximum value, and Array(2) is the step value. If DataType is IG_ISIS_TAG_TYPE_RATIONAL each tag value for both containers is represented as two array elemnts of type Long, i.e. Array[i*2] is the numerator of the value, Array[i*2+1] is the denominator of the value.

Property Summary:

Access
Read-only
Data type
IGDataItem
Default value
N/A


IGISISTagValue

Group: Object

Description:

This object is used to obtain the current value of an ISIS tag, and to set the value of the tag. To get the value of a tag, use the IGIsisCtl.GetTagValue method. To set the value of the tag, use the UpdateTagValueFrom method. The value of a given tag must be of a given type, and may be restricted to certain values. To determine the data-type and representation restrictions, get the corresponding IGISISTagChoice object using GetTagChoice.

All of the properties in the IGISISTagValue object will be set by the call to GetTagValue. If your application is going to set the values of multiple tags, it can call GetTagValue once (to get an IGISISTagValue object), and then set the DataType, ID and Value, and then call UpdateTagValueFrom for each desired tag. In that case, your application must set the DataType and Value properties appropriately for the ID.

Interface:

IIGISISTagValue

Class Members:

DataType
Property
Data type of the tag.
ID
Property
The numeric designator of the tag.
Value
Property
The current value of the tag.


DataType

Group: Property

Description:

Every tag is stored with a specific data-type, also defined by the ISIS standard. The enumIGISISTagDataType enumeration lists the possible datatypes. This property specifies the data type for this tag.

Property Summary:

Access
Read-write
Data type
enumIGISISTagDataType
Default value
N/A


ID

Group: Property

Description:

Every ISIS tag has an ID, defined by the ISIS standard. The enumIGISISTags enumeration lists the possible IDs. See ISIS tags for descriptions of the more commonly used tags.

Property Summary:

Access
Read-write
Data type
enumIGISISTags
Default value
N/A


Value

Group: Property

Description:

After calling GetTagValue, this contains the current value of the tag. Your application can set this to a different value (as per the restrictions in the corresponding IGISISTagChoice object) and then call UpdateTagValueFrom to change the tag value.

Property Summary:

Access
Read-only
Data type
IGDataItem
Default value
N/A


ISIS Component Enumerations

ImageGear ISIS Component API Reference> IGISISTagValue > enumIGISISContainerType

enumIGISISContainerType

Group: Enumeration

Description:

This enumeration provides the values for the ContainerType property in the IGISISTagChoice object - it identifies the "container type" of the Value. The Value specifies the limitations or rules for the tag values themselves.

Values:

IG_ISIS_CONT_LIST
The IGISISTagChoice Value property is an IGDataItem of Type IG_DATA_LONG, IG_DATA_STRING, IG_DATA_ARRAY. The array contains the legal values for the tag.
IG_ISIS_CONT_RANGE
The IGISISTagChoice Value property is an IGDataItem of Type IG_DATA_ARRAY. The (0) member of the array is the minimum value for the tag, the (1) member of the array is the maximum value for the tag, and the (1) member of the array is the step size.


enumIGISISDriverAttrs

Group: Enumeration

Description:

This enumeration provides the various values that can be supplied as the first parameter in calls to the GetDriverAttr method. They specify the attribute that is to be returned by the method.

Values:

IG_ISIS_ATTR_COPYRIGHT
Vendor and copyright of driver vendor.
IG_ISIS_ATTR_NAME
Long name of scanner.
IG_ISIS_ATTR_VERSION
Driver name and version.
IG_ISIS_ATTR_VERSION128
Long driver name and version.


enumIGISISTagDataType

Group: Enumeration

Description:

This enumeration provides the values for the different data types that can be used for an ISIS tag (e.g., these are the values that can be used for the DataType property in the IGISISTagChoice and IGISISTagValue objects).

Values:

IG_ISIS_TAG_TYPE_BYTE
The tag value is a Byte. Represented as Long in IGISISTagChoice and IGISISTagValue objects.
IG_ISIS_TAG_TYPE_LONG
The tag value is Long. Represented as Long in IGISISTagChoice and IGISISTagValue objects.
IG_ISIS_TAG_TYPE_RATIONAL
The tag value is Rational. Represented as Array in IGISISTagChoice and IGISISTagValue objects.
IG_ISIS_TAG_TYPE_SHORT
The tag value is Short. Represented as Long in IGISISTagChoice and IGISISTagValue objects.
IG_ISIS_TAG_TYPE_STRING
The tag value is a String. Represented as a String in IGISISTagChoice and IGISISTagValue objects.


enumIGISISTags

Group: Enumeration

Description:

These are the various ISIS tags that can be queried with the GetTagChoice, GetTagValue and GetTagDefaultValue methods, and set with the UpdateTagValueFrom method.

Values:

IG_ISIS_TAG_ADFTIMEOUT
Timeout value for ADF empty condition.
IG_ISIS_TAG_BAR_AUTOREADBACK
Status of barcode detection on back side pages in a duplex scan.
IG_ISIS_TAG_BAR_AUTOREADFRONT
Status of barcode detection on front side pages in a duplex scan.
IG_ISIS_TAG_BAR_TYPE
Type of barcode to search.
IG_ISIS_TAG_BAR_TYPECOUNT
Number of barcode types to search.
IG_ISIS_TAG_BARCODE
Availability and status of barcode detection.
IG_ISIS_TAG_BARDATA_TEXT
Text of the detected barcode.
IG_ISIS_TAG_BARDATA_TYPE
Type of the detected barcode.
IG_ISIS_TAG_BARDATA_XPOSITION
X offset of the detected barcode.
IG_ISIS_TAG_BARDATA_YPOSITION
Y offset of the detected barcode.
IG_ISIS_TAG_BELL
Scanner's bell status.
IG_ISIS_TAG_BITSPERSAMPLE
Number of bits per component.
IG_ISIS_TAG_BRIGHTNESS
Scanner's or displayed image's brightness setting.
IG_ISIS_TAG_BUFSIZE
Size of driver's image buffer.
IG_ISIS_TAG_COMPRESSION
Data compression.
IG_ISIS_TAG_CONFIG_1
Driver-defined user defaults.
IG_ISIS_TAG_CONFIG_2
Driver-defined user defaults.
IG_ISIS_TAG_CONFIG_3
Driver-defined user defaults.
IG_ISIS_TAG_CONFIG_4
Driver-defined user defaults.
IG_ISIS_TAG_CONFIGURATIONS
Driver-defined user configuration names.
IG_ISIS_TAG_CONTRAST
Scanner's contrast setting.
IG_ISIS_TAG_DATAORIENTATION
Actual orientation of image data.
IG_ISIS_TAG_DETECTJOBSEP
Mode for detecting job separator sheets.
IG_ISIS_TAG_DITHER_LENGTH1
Length of custom dither pattern.
IG_ISIS_TAG_DITHER_LENGTH2
Length of custom dither pattern.
IG_ISIS_TAG_DITHER_PATTERN1
Custom dither pattern data.
IG_ISIS_TAG_DITHER_PATTERN2
Custom dither pattern data.
IG_ISIS_TAG_DITHER_WIDTH1
Width of custom dither pattern.
IG_ISIS_TAG_DITHER_WIDTH2
Width of custom dither pattern.
IG_ISIS_TAG_DROPOUT
Type of dropout to use during scan.
IG_ISIS_TAG_DROPOUT_DISABLE_START
Start of dropout disabling.
IG_ISIS_TAG_DROPOUT_DISABLE_END
End of dropout disabling.
IG_ISIS_TAG_DROPOUT_THRESHOLD
Dropout threshold.
IG_ISIS_TAG_DROPOUT_BACKGROUND
Dropout background.
IG_ISIS_TAG_EMPHASIS
Scanner's emphasis setting.
IG_ISIS_TAG_ENDORSER_STRING
String to send to scanner's endorser.
IG_ISIS_TAG_FEEDER
Information about a scanner's feeder.
IG_ISIS_TAG_FILLORDER
Logical order of bits within a byte.
IG_ISIS_TAG_GAMMA
Gamma curve adjustment for scanning.
IG_ISIS_TAG_GAMMA_LENGTH1
Length of custom gamma table 1.
IG_ISIS_TAG_GAMMA_LENGTH2
Length of custom gamma table 2.
IG_ISIS_TAG_GAMMA_LENGTH3
Length of custom gamma table 3.
IG_ISIS_TAG_GAMMA_LENGTH4
Length of custom gamma table 4.
IG_ISIS_TAG_GAMMA_LENGTH5
Length of custom gamma table 5.
IG_ISIS_TAG_GAMMA_LENGTH6
Length of custom gamma table 6.
IG_ISIS_TAG_GAMMA_TABLE1
Length of custom gamma table 1.
IG_ISIS_TAG_GAMMA_TABLE2
Length of custom gamma table 2.
IG_ISIS_TAG_GAMMA_TABLE3
Length of custom gamma table 3.
IG_ISIS_TAG_GAMMA_TABLE4
Length of custom gamma table 4.
IG_ISIS_TAG_GAMMA_TABLE5
Length of custom gamma table 5.
IG_ISIS_TAG_GAMMA_TABLE6
Length of custom gamma table 6.
IG_ISIS_TAG_IMAGELENGTH
Number of rows in the image.
IG_ISIS_TAG_IMAGEWIDTH
Number of columns in the image.
IG_ISIS_TAG_JBIGOPTIONS
Options for JBIG data.
IG_ISIS_TAG_JOBSEPDETECTED
Status of job separator sheet detection.
IG_ISIS_TAG_KFACTOR
Parameter K for CCITT G32D.
IG_ISIS_TAG_LASTPAGE_SIDE
Last side scanned during a duplex batch scan.
IG_ISIS_TAG_MAXPAGES
Page capacity of scanner ADF.
IG_ISIS_TAG_MAXTIME
Maximum time required to scan a page.
IG_ISIS_TAG_MIXEDSCAN
Scanner's mixed scanning setting.
IG_ISIS_TAG_MORE_SETTINGS
More Settings dialog exists in scanner driver.
IG_ISIS_TAG_ORIENTATION
Orientation of the image.
IG_ISIS_TAG_OUTLINE
Scanner's outline setting.
IG_ISIS_TAG_PAGESIZE
Scanner page size setting.
IG_ISIS_TAG_PHOTOMETRICINTERPRETATION
Color space of image data.
IG_ISIS_TAG_PLANARCONFIGURATION
How the components of an RGB image are arranged.
IG_ISIS_TAG_PLATENLENGTH
Maximum flatbed length.
IG_ISIS_TAG_RESPONSECURVE
Scanner's response curve setting.
IG_ISIS_TAG_SAMPLESPERPIXEL
Number of components per pixel.
IG_ISIS_TAG_SCANAHEAD
Status of ScanAhead.
IG_ISIS_TAG_SCANAHEAD_MAXPAGES
Maximum number of pages to scan ahead.
IG_ISIS_TAG_SCANAHEAD_PAGES
Number of pages that have been scanned ahead.
IG_ISIS_TAG_SCANNERID
Unique scanner identification string.
IG_ISIS_TAG_SCANORIENTATION
Orientation in which to scan.
IG_ISIS_TAG_SCANTYPE
Scanning source.
IG_ISIS_TAG_TRCMAP8
Map of input to output levels.
IG_ISIS_TAG_USER0
User (driver) defined tags.
IG_ISIS_TAG_USER99
User (driver) defined tags.
IG_ISIS_TAG_WHITEPOINT
Chromaticity of the image's white point.
IG_ISIS_TAG_XPOSITION
Distance from left of page.
IG_ISIS_TAG_XRESOLUTION
Horizontal resolution.
IG_ISIS_TAG_YIELDPROC
Address of a yield function.
IG_ISIS_TAG_YPOSITION
Distance from top of page.
IG_ISIS_TAG_YRESOLUTION
Vertical resolution.


enumIGISISBarcodeType

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_BAR_TYPE and IG_ISIS_TAG_BARDATA_TYPE tags.

Values:

IG_ISIS_BAR_TYPE_NONE
No bar code.
IG_ISIS_BAR_TYPE_EAN8
Type EAN-8.
IG_ISIS_BAR_TYPE_EAN13
Type EAN-13 .
IG_ISIS_BAR_TYPE_CODE39
Type CODE 39.
IG_ISIS_BAR_TYPE_CODE25_INTERLEAVED
CODE 2/5 interleaved.
IG_ISIS_BAR_TYPE_CODE25_MATRIX
CODE 2/5 3 lines (matrix).
IG_ISIS_BAR_TYPE_CODE25_DATALOGIC
CODE 2/5 3 lines (datalogic).
IG_ISIS_BAR_TYPE_CODE25_INDUSTRIAL
CODE 2/5 5 lines (industrial).
IG_ISIS_BAR_TYPE_PATCHCODE
Patch Code type II, III, or T.
IG_ISIS_BAR_TYPE_PATCH_II
Patch Code type II
IG_ISIS_BAR_TYPE_PATCH_III
Patch Code type III
IG_ISIS_BAR_TYPE_PATCH_TRANSFER
Transfer Patch Code
IG_ISIS_BAR_TYPE_CODABAR
Codabar bar code
IG_ISIS_BAR_TYPE_UPC_E
UPC code rev E
IG_ISIS_BAR_TYPE_CODE93
Type CODE 93
IG_ISIS_BAR_TYPE_128
Type 128
IG_ISIS_BAR_TYPE_POSTNET
Postnet
IG_ISIS_BAR_TYPE_CODE25_AIRLINE
CODE 2/5 (airline)
IG_ISIS_BAR_TYPE_UPC_A
UPC code rev A
IG_ISIS_BAR_TYPE_MICR_E13B
Check MICR E13B type
IG_ISIS_BAR_TYPE_MICR_CMC7
Check MICR CMC7 type
IG_ISIS_BAR_TYPE_ADDON2
ADDON2
IG_ISIS_BAR_TYPE_ADDON5
ADDON5
IG_ISIS_BAR_TYPE_AUTO
Auto detect
IG_ISIS_BAR_TYPE_PATCH_I
Patch Code type I
IG_ISIS_BAR_TYPE_PATCH_IV
Patch Code type IV
IG_ISIS_BAR_TYPE_PATCH_VI
Patch Code type VI
IG_ISIS_BAR_TYPE_CODABAR_START_STOP
Codabar including Start/Stop
IG_ISIS_BAR_TYPE_CODE39_ASCII
Type CODE 39 with full ASCII
IG_ISIS_BAR_TYPE_CODE25_IATA
CODE 2/5 5 lines IATA
IG_ISIS_BAR_TYPE_MSI
IG_ISIS_BAR_TYPE_PDF417
PDF 417 (2D barcodes)
IG_ISIS_BAR_TYPE_UCC128
UCC 128
IG_ISIS_BAR_TYPE_CODE25
CODE 2/5 Generic
IG_ISIS_BAR_TYPE_CODE25_INVERT
CODE 2/5 Invert
IG_ISIS_BAR_TYPE_BCDMATRIX
BCD / Matrix
IG_ISIS_BAR_TYPE_CODE32
BCD / Matrix
IG_ISIS_BAR_TYPE_AZTEC
Aztec
IG_ISIS_BAR_TYPE_DATAMATRIX
Datamatrix
IG_ISIS_BAR_TYPE_MAXICODE
Maxicode
IG_ISIS_BAR_TYPE_QRCODE
QR Code


enumIGISISBrightnesses

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_BRIGHTNESS tag.

Values:

IG_ISIS_BRIGHTNESS_AUTO
Set brightness value automatically based on real-time sampling during scanning.
IG_ISIS_BRIGHTNESS_DARKEN
Lighten the page relative to IG_ISIS_BRIGHTNESS_NORM.
IG_ISIS_BRIGHTNESS_NORM
Select a "normal" brightness.
IG_ISIS_BRIGHTNESS_LIGHTEN
Darken the page relative to IG_ISIS_BRIGHTNESS_NORM.


enumIGISISCompressions

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_COMPRESSION tag.

Values:

IG_ISIS_COMPRESSION_NONE
No compression, each line is packed to one byte.
IG_ISIS_COMPRESSION_MG3
Modified (no EOL) CCITT Group 3 1-Dimensional Huffman run-length encoding, each line starts on a new byte.
IG_ISIS_COMPRESSION_G3
Standard CCITT Group 3 coding, 1 Dimensional Huffman run-length encoding.
IG_ISIS_COMPRESSION_G4
Standard CCITT Group 4 encoding.
IG_ISIS_COMPRESSION_LZW
LZW coding as described in the TIFF specification.
IG_ISIS_COMPRESSION_JPEG
JPEG coding typically used for grayscale and color only.
IG_ISIS_COMPRESSION_PACK
Packbits compression.
IG_ISIS_COMPRESSION_32771
No compression, each line padded to two bytes.
IG_ISIS_COMPRESSION_JBIG
JBIG compression.
IG_ISIS_COMPRESSION_PCX
Compression scheme used in PCX files.
IG_ISIS_COMPRESSION_4BYTE
No compression, each line padded to four bytes.
IG_ISIS_COMPRESSION_RUN
Runlist compression; internal use only.
IG_ISIS_COMPRESSION_GIF
Compression scheme used in GIF files.
IG_ISIS_COMPRESSION_BMP
Compression scheme used in BMP files.
IG_ISIS_COMPRESSION_GIFINTERLACED
Compression scheme used in interlaced GIF files.
IG_ISIS_COMPRESSION_WANGJPEG
Wang format JPEG encoding, typically used for grayscale and color only.
IG_ISIS_COMPRESSION_JPEG_PROGRESSIVE
Progressive JPEG.
IG_ISIS_COMPRESSION_JP2
JPEG2 Compression.


enumIGISISDropoutType

Group: Enumeration

Values:

IG_ISIS_DROPOUT_NONE
No dropout
IG_ISIS_DROPOUT_RED
Red dropout
IG_ISIS_DROPOUT_GREEN
Green dropout
IG_ISIS_DROPOUT_BLUE
Blue dropout
IG_ISIS_DROPOUT_CUSTOM
Custom dropout
IG_ISIS_DROPOUT_GREY_CCD
Used in HP Tulip driver
IG_ISIS_DROPOUT_NTSC
Used in HP Tulip driver


enumIGISISJobSeparatorDetectingModes

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_DETECTJOBSEP tag.

Values:

IG_ISIS_DETECTJOBSEP_OFF
Batch detection not enabled.
IG_ISIS_DETECTJOBSEP_NOSTOP_NOEJECT
Don't stop scanahead; scan the separator.
IG_ISIS_DETECTJOBSEP_NOSTOP_EJECT
Don't stop scanahead; eject before scanning.
IG_ISIS_DETECTJOBSEP_STOP_NOEJECT
Stop scanahead; scan the separator.
IG_ISIS_DETECTJOBSEP_STOP_EJECT
Stop scanahead; eject before scanning.
IG_ISIS_DETECTJOBSEP_NOSTOP_EJTSCAN
Don't stop scanahead; eject on scanning.
IG_ISIS_DETECTJOBSEP_STOP_EJTSCAN
Stop scanahead; eject on scanning.


enumIGISISEmphasises

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_EMPHASIS tag.

Values:

IG_ISIS_EMPHASIS_OFF
No emphasis.
IG_ISIS_EMPHASIS_LOW
Low emphasis setting.
IG_ISIS_EMPHASIS_MEDIUM
Medium emphasis setting.
IG_ISIS_EMPHASIS_HIGH
High emphasis setting.
IG_ISIS_EMPHASIS_SMOOTH
Smooth emphasis setting.


enumIGISISFeederAttrs

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_FEEDER tag.

Values:

IG_ISIS_FEEDER_FEED
Scanner has a feeder.
IG_ISIS_FEEDER_FLAT
Scanner has a flatbed.
IG_ISIS_FEEDER_TELLFLAT
Scanner can detect whether or not a page is on the flatbed.
IG_ISIS_FEEDER_TELLFEED
Scanner can detect whether or not a page is in the feeder.
IG_ISIS_FEEDER_TELLSCAN
Scanner can detect whether a page is loaded in the feeder only by committing a page.
IG_ISIS_FEEDER_CENTERFEED
Scanner can center a page in the feeder.
IG_ISIS_FEEDER_CENTERFLAT
Scanner can detect whether or not a page is centered on the flatbed.
IG_ISIS_FEEDER_PAUSE
Scanner can safely stop a ScanAhead batch in the middle of the batch and recover all pages left in the buffer.


enumIGISISFillOrders

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_FILLORDER tag.

Values:

IG_ISIS_FILLORDER_MSBLEFT
Pixels are arranged within a byte such that pixels with lower column values are stored in the higher-order bits of the byte. The first bit of the first byte corresponds to the first pixel on an uncompressed binary page.
IG_ISIS_FILLORDER_MSBRIGHT
Pixels are arranged within a byte such that pixels with lower column values are stored in the lower order bits of the byte. The last bit of the first byte corresponds to the first pixel on an uncompressed binary page.


enumIGISISGammas

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_GAMMA tag.

Values:

IG_ISIS_GAMMA_AUTO
Scanner's gamma correction is set to automatic.
IG_ISIS_GAMMA_DOWNLOAD1
Scanner's gamma correction is set to the first downloaded correction table.
IG_ISIS_GAMMA_DOWNLOAD2
Scanner's gamma correction is set to the second downloaded correction table.
IG_ISIS_GAMMA_DOWNLOAD3
Scanner's gamma correction is set to the third downloaded correction table.
IG_ISIS_GAMMA_DOWNLOAD4
Scanner's gamma correction is set to the fourth downloaded correction table.
IG_ISIS_GAMMA_DOWNLOAD5
Scanner's gamma correction is set to the fifth downloaded correction table.
IG_ISIS_GAMMA_DOWNLOAD6
Scanner's gamma correction is set to the sixth downloaded correction table.


enumIGISISLastPageSide

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_LASTPAGE_SIDE tag.

Values:

IG_ISIS_LASTPAGE_FRONT
Front side was just scanned
IG_ISIS_LASTPAGE_BACK
Back side was just scanned


enumIGISISMixedScan

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_MIXEDSCAN tag.

Values:

IG_ISIS_MIXEDSCAN_OFF
Do not perform mixed scanning
IG_ISIS_MIXEDSCAN_ON
Perform mixed scanning


enumIGISISOrientations

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_ORIENTATION, IG_ISIS_TAG_SCANORIENTATION and IG_ISIS_TAG_DATAORIENTATION tags.

Values:

IG_ISIS_ORIENTATION_PORT
Portrait (0°)
IG_ISIS_ORIENTATION_LAND
Landscape (90° ccw)
IG_ISIS_ORIENTATION_180
Upside down portrait (180° ccw)
IG_ISIS_ORIENTATION_270
Upside down landscape (270° ccw)
IG_ISIS_ORIENTATION_PORTM
Portrait mirrored
IG_ISIS_ORIENTATION_LANDM
Landscape mirrored
IG_ISIS_ORIENTATION_180M
Upside down portrait mirrored
IG_ISIS_ORIENTATION_270M
Upside down landscape mirrored


enumIGISISOutline

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_OUTLINE tag.

Values:

IG_ISIS_OUTLINE_OFF
Do not perform outline scanning
IG_ISIS_OUTLINE_ON
Perform outline scanning


enumIGISISPhotoInterpret

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_PHOTOMETRICINTERPRETATION tag.

Values:

IG_ISIS_PHOTOMETRIC_WHITE0
0 is imaged as white, 1 is imaged as black
IG_ISIS_PHOTOMETRIC_WHITE1
0 is imaged as black, 1 is imaged as white
IG_ISIS_PHOTOMETRIC_RGB
RGB image
IG_ISIS_PHOTOMETRIC_PALETTE
Palette color image
IG_ISIS_PHOTOMETRIC_BGR
Same as RGB, but blue and red planes are reversed


enumIGISISPlanarConfig

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_PLANARCONFIGURATION tag.

Values:

IG_ISIS_PLANARCONFIG_LINE_PACK
Line pack. Color data for each pixel is stored in order by line
IG_ISIS_PLANARCONFIG_PAGE
Page. Color data for the entire page is stored by color plane
IG_ISIS_PLANARCONFIG_LINE_UNPACK
Line Unpack. Color data for each line is stored by color plane


enumIGISISResponseType

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_RESPONSECURVE tag.

Values:

IG_ISIS_RESPONSETYPE_BRIGHTCONT
Image is scanned with contrast and brightness
IG_ISIS_RESPONSETYPE_TRCMAP8
A mapping of eight-bit input values to 8-bit output values is used


enumIGISISScanAhead

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_SCANAHEAD tag.

Values:

IG_ISIS_SCANAHEAD_NO
ScanAhead not enabled
IG_ISIS_SCANAHEAD_YES
ScanAhead enabled


enumIGISISScanType

Group: Enumeration

Description:

These are all the possible values for the IG_ISIS_TAG_SCANTYPE tag.

Values:

IG_ISIS_SCANTYPE_AUTOMATIC
Scan from the ADF if pages are detected; otherwise, scan from the flatbed
IG_ISIS_SCANTYPE_TRANSPARENCY
Scan from the transparency unit
IG_ISIS_SCANTYPE_FLATBED
Scan from the flatbed
IG_ISIS_SCANTYPE_FEEDER
Scan only the front side of the page (duplex scanner)
IG_ISIS_SCANTYPE_FRONTONLY
IG_ISIS_SCANTYPE_FEEDER
IG_ISIS_SCANTYPE_DUPLEX
Scan in duplex mode (duplex scanner), from the feeder
IG_ISIS_SCANTYPE_FRONTBACK
IG_ISIS_SCANTYPE_DUPLEX
IG_ISIS_SCANTYPE_BACKFRONT
Scan in duplex mode, but return the back side of the page first (duplex scanner), from the feeder
IG_ISIS_SCANTYPE_BACKONLY
Scan only the back side of the page (duplex scanner), from the feeder


ImageGear JPEG2000 Component API Reference

ImageGear JPEG2000 Component API Reference

ImageGear JPEG2000 component provides access to JPIP Client/Server API and contains objects used to efficiently and dynamically stream portions of a JPEG2000-compressed image over a network. This chapter consist of two major parts:

  • JPIP Client API Reference
  • JPIP Server API Reference
NOTE: AccuSoft JPIP client and server API currently supports JPEG2000 Part I (JP2, JPC, J2K, J2C) format only.


JPIP Client API Reference

JPIP Client API represents the following objects:

IGJPIPClient
This is the main JPIP client object. It opens and closes the connection with a JPIP server and processes images through this connection.
IGJPIPClientConnectParams
Parameters used by Connect method in order to connect to a JPIP server.
IGJPIPClientErrorEventParams
Event parameters for Error event.
IGJPIPClientExportParams
Parameters for exporting image data from JPIP client object to IGPage.
IGJPIPClientImageInfo
Information about the JPIP client object's image.
IGJPIPClientStatus
Information about current status of JPIP client.
IGJPIPClientStatusEventParams
Event parameters for StatusChange event.
IGJPIPClientWarningEventParams
Event parameters for Warning event.
IGJPIPClientWindow
Description of a JPIP window.


IGJPIPClient

Group: Object

Description:

This is the main JPIP client object. It opens and closes the connection with a JPIP server and processes images through this connection.

Interface:

IIGJPIPClient

Class Members:

Close
method
Disconnects from the server and discards the entire contents of the cache, causing future values of IsAlive and IsActive both to be FALSE.
ComponentIndex
property
Specifies index of image component to use when accessing image information and pixel data in single component mode.
Connect
method
Initiates a connection to a JPIP server.
Disconnect
method
Disconnects from the server, but leaves the object open for reading data from the cache.
Error
event
Event to be called when an error occurs.
ExportImage
method
Copies image data from JPIP client object to an existing IGPage.
GetImageInfo
method
Creates an IGJPIPClientImageInfo object with information about the image such as width, height, channel configuration.
GetStatus
method
Retrieves current session status and statistics.
GetWindowInProgress
method
Used to learn about the window which the server is currently servicing.
ImageOrientation
property
Sets orientation (flip horizontal, flip vertical, rotate/transpose) to use when accessing image description (dimensions) and pixel data.
RequestWindow
method
Requests that a message be delivered to the server identifying a change in the user's window of interest into the compressed image.
SingleComponent
property
Enables/disables single component mode, in which only the image component specified by ComponentIndex will be accessed.
StatusChange
event
Event to be called when JPIP client events occur (such as new data being received from the server).
Warning
event
Event to be called when a warning occurs.


Close

Group: Method

Description:

This method disconnects from the server and discards the entire contents of the cache, causing future values of isAlive and isActive both to be FALSE. It is safe to call this method at any time, regardless of whether or not an image has been successfully opened.

If Disconnect has already been called, and the underlying transport channel has been saved, this method will not destroy it. That will happen only if a subsequent call to Connect cannot use it, if Disconnect is called explicitly with KeepTransportOpen = FALSE, or if the object is destroyed.

Declaration:

Close()

Return value:

None.

Bits Per Pixel: N/A

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ComponentIndex

Group: Property

Description:

This property specifies the index of the image component to use when accessing image information and pixel data in single component mode.

This affects accessing cached image description and pixel data only. For requesting particular components from the server, see IGJPIPClientWindow.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
N/A
Sample:
None


Connect

Group: Method

Description:

This method initiates a connection to a JPIP server. This is done asynchronously, so this method always returns immediately. If an error occurs, the Error event will fire. If the connection is successful, the Status event will fire.

Declaration:

Connect(params As IGJPIPClientConnectParams)

Parameters:

params
Parameters of connection.

Return value:

None.

Bits Per Pixel: N/A

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Disconnect

Group: Method

Description:

This method disconnects from the server, but leaves the object open for reading data from the cache. This method may safely be called at any time.

If the Close method has not been called since the last call to Connect, IsActive remains True, while IsAlive becomes False.

If the KeepTransportOpen parameter is set to True, an attempt will be made to keep the underlying transport channel (typically one or more TCP channels) alive, so that a subsequent call to Connect can try to re-use it, rather than instantiating a new transport channel from scratch. This is most likely to succeed if the channel status is idle, which can usually be reached quickly by requesting an empty window.

Declaration:

Disconnect(KeepTransportOpen As Boolean, Timeout As Long)

Parameters:

KeepTransportOpen
Attempt to keep the transport open after disconnecting.
Timeout
Maximum amount of time (in milliseconds) this function can be blocked while waiting to ensure that the server has released the transport channel from its use in the current session. This should not be long, because it will not be waiting unless the connection was already idle. Nevertheless, if the server does not released the transport within that time, or if an earlier determination can be made that it will not do so, the function closes the existing transport channel anyway, so that it cannot be re-used.

Return value:

None.

Bits Per Pixel: N/A

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Error

Group: Event

Description:

Event to be called when an error occurs. Since JPIP operates asynchronously, errors can occur at any time and are delivered through this event.

A description of the error is provided by the IGJPIPClientErrorEventParams object.

Declaration:

Sub Error(EventParams As IGJPIPClientErrorEventParams)

Parameters:

EventParams
Error event parameters.


ExportImage

Group: Method

Description:

This method copies image data from JPIP client object to an existing IGPage. The IGPage must be either 24-bit RGB or 8-bit grayscale. The export options struct can be used to specify options such as source and destination rectangles to use for the copy operation.

It is acceptable to pass NULL for Options, in which case default values of 0 will be assumed. (The entire image will be copied in this case, scaled to fit the dimensions of the IGPage.)

Note that in order to obtain the best image quality and performance, it is strongly recommended to use an optimal scale factor when using this method. An optimal scale factor is a power of two or integer scale factor. So, for example, if the source image is 1000x1000, and you're copying the entire image, the destination area to copy to should be 1000x1000, 500x500, 250x250, etc.

Declaration:

ExportImage(Page As IGPage, Options As
IGJPIPClientExportParams)

Parameters:

Page
IGPage to copy image data to.
Options
Export options.

Return value:

None.

Bits Per Pixel: In (cached image): any. Out (IGPage): 8g, 24

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetImageInfo

Group: Method

Description:

This method returns an IGJPIPClientImageInfo object with information about the image such as width, height, channel configuration.

Declaration:

GetImageInfo() As IGJPIPClientImageInfo

Return value:

New instance of IGJPIPClientImageInfo object.

Bits Per Pixel: N/A

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetStatus

Group: Method

Description:

This method retrieves current session status and statistics. It can be called at any time. It returns an IGJPIPClientStatus object with current status information.

This is one of two ways to obtain status information. The other way is to use the Status event, which is fired upon status changes. Use the Status event when immediate response to status changes is desired.

Declaration:

GetStatus() As IGJPIPClientStatus

Return value:

New instance of IGJPIPClientStatus object.

Bits Per Pixel: N/A

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetWindowInProgress

Group: Method

Description:

This method may be used to learn about the window which the server is currently servicing. This window may be different from the one requested. For example, if a client requests a large, high-resolution view of an image, the server may shrink the ROI to reduce complexity required on the server side to process the request.

If the server is idle, meaning that it has finished serving all outstanding requests, this method will continue to identify the most recently serviced window as the one which is in progress.

If there is no active connection with the server (IsAlive is FALSE), the number of components indicated in the IGJPIPClientWindow object will be set to 0.

Declaration:

GetWindowInProgress() As IGJPIPClientWindow

Return value:

New instance of IGJPIPClientWindow object.

Bits Per Pixel: N/A

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageOrientation

Group: Property

Description:

This property sets orientation (flip horizontal, flip vertical, rotate/transpose) to use when accessing image description (dimensions) and pixel data.

This orientation affects the dimensions retrieved via GetImageInfo and the coordinates passed to ExportImage. It does not affect the coordinates passed to/from the GetWindowInProgress/RequestWindow methods.

Property Summary:

Data Type:
enumIGOrientationModes
Default Value:
IG_DSPL_ORIENT_TOP_LEFT
Access:
Read/Write
Settings:
any value of enumIGOrientationModes.
Bits Per Pixel:
N/A
Sample:
None


RequestWindow

Group: Method

Description:

This method requests that a message be delivered to the server identifying a change in the user's window of interest into the compressed image. The message may not be delivered immediately; it may not even be delivered at all, if the method is called again specifying a different access window, before the client has a chance to deliver a request for the current window to the server.

Declaration:

RequestWindow(Window As IGJPIPClientWindow)

Parameters:

Window
Window to request.

Return value:

None.

Bits Per Pixel: N/A

Sample: JPIPC

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SingleComponent

Group: Property

Description:

This property enables/disables single component mode, in which only the image component specified by ComponentIndex will be accessed.

This affects accessing cached image description and pixel data only. For requesting particular components from the server, see IGJPIPClientWindow.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


StatusChange

Group: Event

Description:

Event to be called when JPIP client events occur (such as new data being received from the server).

Current status information is provided by the IGJPIPClientStatusEventParams object.

This is one of two ways to retrieve current status information. The other way is to call the GetStatus method of IGJPIPClient, which can be done at any time.

Declaration:

Sub Status(EventParams As IGJPIPClientStatusEventParams)

Parameters:

EventParams
Status event parameters.


Warning

Group: Event

Description:

Event to be called when a warning occurs. Since JPIP operates asynchronously, warnings can occur at any time and are delivered through an event.

A description of the warning is provided by the IGJPIPClientWarningEventParams object.

Declaration:

Sub Warning(EventParams As IGJPIPClientWarningEventParams)

Parameters:

EventParams
Warning event parameters.


IGJPIPClientConnectParams

Group: Object

Description:

This object contains parameters used by the Connect method in order to connect to a JPIP server.

Interface:

IIGJPIPClientConnectParams

Class Members:

CacheDir
property
Directory on the local machine to store cached data in.
ChannelTransport
property
Channel transport to use for communicating with the JPIP server.
Proxy
property
Address (hostname or IP address) of a proxy server to use when communicating with the JPIP server.
Request
property
Request string to request upon connecting to the JPIP server.
Server
property
Server address (hostname or IP address) to connect to.


CacheDir

Group: Property

Description:

Directory on the local machine to store cached data in. Future JPIP sessions can re-use this data to avoid downloading the same data from the server again. Specify NULL to disable caching.

Property Summary:

Data Type:
String
Default Value:
NULL
Access:
Read/Write
Settings:
Any string
Bits Per Pixel:
N/A
Sample:
JPIPC


ChannelTransport

Group: Property

Description:

Channel transport to use for communicating with the JPIP server. See enumeration enumJPIPCChannelTransport for possible values.

Property Summary:

Data Type:
enumJPIPCChannelTransport
Default Value:
IG_JPIPC_CHANNEL_HTTP
Access:
Read/Write
Settings:
Any value of enumJPIPCChannelTransport
Bits Per Pixel:
N/A
Sample:
JPIPC


Proxy

Group: Property

Description:

Address (hostname or IP address) of a proxy server to use when communicating with the JPIP server.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPC


Request

Group: Property

Description:

Request string to request upon connecting to the JPIP server. This is typically the name of a file on the server. Slashes in the filename should be forward slashes (`/') as would be used in a URL. No leading slash is necessary.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPC


Server

Group: Property

Description:

Server address (hostname or IP address) to connect to. If a port other than the default of 80 is to be used, the port number is appended to this address in standard colon delimited form. For example: 127.0.0.1:81, jpip.accusoft.com:8000

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPC


IGJPIPClientErrorEventParams

Group: Object

Description:

This object contains event parameters for the Error event.

Interface:

IIGJPIPClientErrorEventParams

Class Members:

Description
property
Provides a description of an error that occurred.


Description

Group: Property

Description:

This property provides the description of an error that occurred.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPC


IGJPIPClientExportParams

Group: Object

Description:

This object contains parameters for exporting image data from the JPIP client object to an IGPage object.

Interface:

IIGJPIPClientExportParams

Class Members:

DstRect
property
Rectangle in destination IGPage to copy image data to (all 0's means use the whole area).
SrcRect
property
Rectangle in source JPIP client image to copy image data from, in full-res coordinates (all 0's means use the whole area).


DstRect

Group: Property

Description:

Rectangle in destination IGPage to copy image data to (all 0's means use the whole area).

Property Summary:

Data Type:
IGRectangle
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
N/A
Sample:
JPIPC


SrcRect

Group: Property

Description:

Rectangle in source JPIP client image to copy image data from, in full-res coordinates (all 0's means use the whole area).

Property Summary:

Data Type:
IGRectangle
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
N/A
Sample:
JPIPC


IGJPIPClientImageInfo

Group: Object

Description:

This object contains information about the JPIP client object's image.

Interface:

IIGJPIPClientImageInfo

Class Members:

BitDepth
property
Image's bit depth (number of bits per pixel).
ColorSpace
property
Image's color space.
ComponentDepths
property
Bit depths of image components.
Height
property
Height of the image.
Width
property
Width of the image.


BitDepth

Group: Property

Description:

This property provides the image's bit depth (number of bits per pixel).

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Bits Per Pixel:
N/A
Sample:
JPIPC


ColorSpace

Group: Property

Description:

This property provides the image's color space.

Property Summary:

Data Type:
enumIGColorSpaceIDs
Default Value:
Access:
Read only
Settings:
any value of enumIGColorSpaceIDs.
Bits Per Pixel:
N/A
Sample:
JPIPC


ComponentDepths

Group: Property

Description:

This property provides the bit depths of image components. It's an array, so it also provides the number of image components (look at the array bounds).

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
N/A
Sample:
JPIPC


Height

Group: Property

Description:

Height of the image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPC


Width

Group: Property

Description:

Width of the image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
Bits Per Pixel:
N/A
Sample:
JPIPC


IGJPIPClientStatus

Group: Object

Description:

This object provides information about the current status of the JPIP client.

Interface:

IIGJPIPClientStatus

Class Members:

IsActive
property
True from the point at which Connect is called, remaining True until Close is called, even if the connection with the server has been dropped, or was never completed.
IsAlive
property
True from the point at which Connect is called, remaining True until the network management thread terminates.
IsIdle
property
True if the server has finished responding to all pending requests, but the connection is still alive.
IsModifiedWindow
property
True if the server has modified the window parameters since the last call to RequestWindow.
IsOneTimeRequest
property
True if the request string used at connect time represented a one-time request.
IsValidImage
property
True if the image being requested is valid and the client has finished receiving its headers. (And therefore, its dimensions and component depths can be accessed.)
MainHeaderBytes
property
Number of bytes received for code-stream main header.
MetaBytes
property
Number of bytes received for meta-data and file structure info.
PrecinctBytes
property
Number of bytes received for precinct-oriented streams.
StatusDescription
property
Description of current session status.
TileBytes
property
Number of bytes received for tile-part oriented streams.
TileHeaderBytes
property
Number of bytes received for tile headers.
TotalBytes
property
Total number of bytes received from JPIP server.


IsActive

Group: Property

Description:

True from the point at which connect is called, remaining True until close is called, even if the connection with the server has been dropped, or was never completed.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
JPIPC


IsAlive

Group: Property

Description:

True from the point at which connect is called, remaining True until the network management thread terminates. This happens if:

  • Close is called
  • the network connection is explicitly terminated by a call to disconnect
  • the server terminates the connection
  • the original connection attempt failed to complete

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
JPIPC


IsIdle

Group: Property

Description:

This property is True if the server has finished responding to all pending requests, but the connection is still alive.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
JPIPC


IsModifiedWindow

Group: Property

Description:

This property is True if the server has modified the window parameters since the last call to RequestWindow.

A JPIP server can modify window parameters at any time in any way it sees fit. It typically does this, if a client requests a window the server deems too large, and therefore expensive in terms of server-side processing time.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


IsOneTimeRequest

Group: Property

Description:

This property returns True if the request string used at connect time represented a one-time request.

In particular, a one-time request is one which contains a query string with anything other than a target or sub-target request field. In the event that a one-time request was found in the request string passed to connect, this remains True until Close is called, i.e., for the same interval over which IsActive is True.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


IsValidImage

Group: Property

Description:

This property is True if the image being requested is valid and the client has finished receiving its headers. It becomes possible to call GetImageInfo once this property is True.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read only
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
JPIPC


MainHeaderBytes

Group: Property

Description:

This property contains the number of bytes received for code-stream main header.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
None


MetaBytes

Group: Property

Description:

This property contains the number of bytes received for meta-data and file structure info.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
None


PrecinctBytes

Group: Property

Description:

This property contains the number of bytes received for precinct-oriented streams.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
None


StatusDescription

Group: Property

Description:

This property contains a description of the current session status.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read only
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPC


TileBytes

Group: Property

Description:

This property contains the number of bytes received for tile-part oriented streams.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
None


TileHeaderBytes

Group: Property

Description:

This property contains the number of bytes received for tile headers.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
None


TotalBytes

Group: Property

Description:

This property contains the total number of bytes received from JPIP server.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPC


IGJPIPClientStatusEventParams

Group: Object

Description:

This object contains event parameters for the StatusChange event.

Interface:

IIGJPIPClientStatusEventParams

Class Members:

Status
property
Retrieves current session status and statistics.


Status

Group: Property

Description:

This property provides current session status and statistics as an IGJPIPClientStatus object.

Property Summary:

Data Type:
IGJPIPClientStatus
Default Value:
""
Access:
Read/Write
Settings:
IGJPIPClientStatus
Bits Per Pixel:
N/A
Sample:
JPIPC


IGJPIPClientWarningEventParams

Group: Object

Description:

This object contains event parameters for the Warning event.

Interface:

IIGJPIPClientWarningEventParams

Class Members:

Description
property
Provides the description of a warning that occurred.


Description

Group: Property

Description:

This property provides the description of a warning that occurred.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPC


IGJPIPClientWindow

Group: Object

Description:

This object defines a window (region of interest) within an image being served by a JPIP server. This window is communicated to the server in order to request image data. The methods RequestWindow and GetWindowInProgress are used to request a window from the server and find out what window the server is currently servicing (or last serviced).

Interface:

IIGJPIPClientWindow

Class Members:

FirstComponentIndex
property
Provides the zero-based index of first image component to request.
MaxLayers
property
Determines max number of quality layers to request.
MetadataOnly
property
If this property is True, the client is not interested in receiving anything other than the metadata which would be returned in response to the requested window.
NumComponents
property
Determines the number of image components to request.
Region
property
Describes a spatial region, expressed relative to the image resolution defined by the resolution member.
ResolutionX
property
Describes the preferred image resolution in terms of the width of the full image.
ResolutionY
property
Describes the preferred image resolution in terms of the height of the full image.
RoundDirection
property
Indicates the preferred direction for converting the resolution size to the size of an actual available image resolution in each codestream.


FirstComponentIndex

Group: Property

Description:

This property provides the zero-based index of the first image component to request. Ignored if NumComponents is 0.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any integer value
Bits Per Pixel:
N/A
Sample:
None


MaxLayers

Group: Property

Description:

This property determines the maximum number of quality layers to request (at the given resolution). 0 requests all available quality layers.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any integer value
Bits Per Pixel:
N/A
Sample:
None


MetadataOnly

Group: Property

Description:

If this property is True, the client is not interested in receiving anything other than the metadata which would be returned in response to the requested window. No compressed imagery, or even image headers should be sent.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
None


NumComponents

Group: Property

Description:

This property determines the number of image components to request. 0 requests all available components.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any integer value
Bits Per Pixel:
N/A
Sample:
None


Region

Group: Property

Description:

This property describes a spatial region, expressed relative to the image resolution defined by the ResolutionX and ResolutionY members.

Property Summary:

Data Type:
IGRectangle
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
N/A
Sample:
JPIPC


ResolutionX

Group: Property

Description:

This property describes the preferred image resolution in terms of the width of the full image. For example, to request the original image data at 1:1 zoom level, specify the full dimensions of the image in pixels. To request quarter-resolution, divide each dimension by 2.

Where geometric mapping information is provided via codestream contexts, additional transformations are applied to match the resolution of each codestream to the resolution of the composited result which is identified by the present member.

If both ResolutionX and ResolutionY are 0, no compressed image data is being requested. Such a request requires the server to send only the essential marker segments from main codestream headers, plus any metadata which is required for correct rendering. Such a request might be sent by a client when it first connects to the server, but would not normally be issued explicitly at the application levels.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPC


ResolutionY

Group: Property

Description:

This property describes the preferred image resolution in terms of the height of the full image. For more information, see the ResolutionX property description.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPC


RoundDirection

Group: Property

Description:

This property indicates the preferred direction for converting the resolution size to the size of an actual available image resolution in each codestream.

The available resolutions for each codestream are found by starting with the image size on the codestream's high resolution canvas, and dividing down by multiples of 2, following the usual rounding conventions of the JPEG2000 canvas coordinate system. Thus, the available image dimensions correspond essentially to the codestream image dimensions obtained by discarding a whole number of highest resolution levels, except that the number of discarded DWT levels is not necessarily limited by the number of DWT levels used in each relevant tile component.

Property Summary:

Data Type:
enumJPIPCRoundDirection
Default Value:
IG_JPIPC_ROUND_NEAREST
Access:
Read/Write
Settings:
any value of enumJPIPCRoundDirection
Bits Per Pixel:
N/A
Sample:
JPIPC


JPIP Client Enumerations

JPIP Client represents two enumerations:

  • enumJPIPCChannelTransport
  • enumJPIPCRoundDirection


enumJPIPCChannelTransport

Group: JPIP Client Enumeration

Description:

This enumeration is used to specify the type of the channel transport to use for a JPIP session.

Values:

IG_JPIPC_CHANNEL_HTTP
(Default) A persistent channel is used over HTTP. Multiple requests can be made over the same channel. This is the best compromise between providing good interactive response times and being tolerant of firewalls and proxys.
IG_JPIPC_CHANNEL_HTTP_TCP
A persistent HTTP channel is used for control commands. In addition, a separate persistent TCP channel is used for data transfer. This provides optimal interactive response times and bandwidth efficiency, but firewalls and proxy servers could make it impossible to set up the additional data channel.
IG_JPIPC_CHANNEL_NONE
The request made upon connecting to the server is a one-time request with no persistent channel. Further requests can be made, but a channel is re-established for each one. Not recommended.


enumJPIPCRoundDirection

Group: JPIP Client Enumeration

Description:

This enumeration is used to specify which resolution in an image should be used to satisfy window requests. JPEG2000-encoded images can contain multiple resolutions, and window requests can be for arbitrary resolutions (also can be thought of as "zoom levels"). So, using a higher resolution can result in higher image quality but at the expense of more data transfer.

Values:

IG_JPIPC_ROUND_DOWN
(Default) The requested resolution should be rounded down to the nearest actual available codestream resolution. That is, the actual selected dimensions, X and Y, must satisfy X <= resolution.x and Y <= resolution.y, if possible.
IG_JPIPC_ROUND_UP
The requested resolution should be rounded up to the nearest actual available codestream resolution. That is, the actual selected dimensions, X and Y, must satisfy X >= resolution.x and Y >= resolution.y, if possible.
IG_JPIPC_ROUND_NEAREST
Rounding is to the nearest available codestream image resolution, in the sense of area. Specifically, the actual codestream image resolution's dimensions, X and Y, should minimize |XY - xy| where x and y are the values of resolution.x and resolution.y.


JPIP Server API Reference

JPIP Server API represents the following objects:

IGJPIPServer
Starts and stops the connection with a JPIP client and processes images through this connection.
IGJPIPServerErrorEventParams
Object containing the error event parameters.
IGJPIPServerParams
Object containing different server parameters.
IGJPIPServerRequestEventParams
Object containing the request event parameters.
IGJPIPServerStatusEventParams
Object containing the status event parameters.


IGJPIPServer

Group: Object

Description:

This is the main JPIP server object. It starts and stops the connection with a JPIP client and processes images through this connection.

Interface:

IIGJPIPServer

Class Members:

AddVirtualDir
method
Adds a virtual directory to the server.
Error
event
Event to be called when an error occurs.
Request
event
Event to be called when a request occurs.
Start
method
Starts the JPIP server.
Status
event
Event to be called when JPIP server events occur
Stop
method
Stops the JPIP server.


AddVirtualDir

Group: Method

Description:

This method adds a virtual directory to the server.

A number of virtual directories can be added to the server to allow a convenient means of the serving images located in a variety of places.

A request string whose beginning matches the DirName parameter will use the path specified by the DirLocation parameter as the base path, instead of using the working directory specified as part of the server configuration.

Virtual directories must be added before the server has been started.

Here is an example of how this function works:

  1. Application calls AddVirtualDir("special", "z:\\images\\current\\");
  2. The request comes in from JPIP client for: "special/myfavorite.jp2"
  3. The file used to fulfill the request is: "z:\images\current\myfavorite.jp2"

There is another example which shows nesting of the directories:

  1. Application calls AddVirtualDir("special", "z:\\images\\current\\");
  2. Request comes in from JPIP client for: "special/24bpp/myfavorite.jp2"
  3. The file used to fulfill the request is: "z:\images\current\24bpp\myfavorite.jp2"

Declaration:

AddVirtualDir(DirName As String, DirLocation As String)

Parameters:

DirName
The beginning of the request string.
DirLocation
The path to the file to fulfill the request.

Return value:

None.

Bits Per Pixel: N/A

Sample: JPIPS

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Error

Group: Event

Description:

Event to be called when an error occurs. Since JPIP operates asynchronously, errors can occur at any time and are delivered through this event.

A description of the error is provided by the IGJPIPServerErrorEventParams object.

Declaration:

Sub Error(EventParams As IGJPIPServerErrorEventParams)

Parameters:

EventParams
Error event parameters.


Request

Group: Event

Description:

Event to be called when a request occurs.

A description of the error is provided by the IGJPIPServerRequestEventParams object.

Declaration:

Sub Request(EventParams As IGJPIPServerRequestEventParams)

Parameters:

EventParams
Request event parameters.


Start

Group: Method

Description:

This method starts the JPIP server. Configuration and callbacks must be set before calling this method.

Declaration:

Start(ServerParams As IGJPIPServerParams)

Parameters:

ServerParams
Server parameters. See IGJPIPServerParams object.

Return value:

None.

Bits Per Pixel: N/A

Sample: JPIPS

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Status

Group: Event

Description:

Event to be called when JPIP server events occur (such as new request being received from the client).

Current status information is provided by the IGJPIPServerStatusEventParams object.

Declaration:

Sub Status(EventParams As IGJPIPServerStatusEventParams)

Parameters:

EventParams
Status event parameters.


Stop

Group: Method

Description:

This method stops the JPIP server. Any connected clients will be notified of the server shutdown.

Declaration:

Stop()

Return value:

None.

Bits Per Pixel: N/A

Sample: JPIPS

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGJPIPServerErrorEventParams

Group: Object

Description:

This is the JPIP server object containing the error event parameters.

Interface:

IIGJPIPServerErrorEventParams

Class Members:

Description
property
Error description.


Description

Group: Property

Description:

This property returns the error description.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
JPIPS


IGJPIPServerParams

Group: Object

Description:

This is the JPIP server object containing different server parameters.

Interface:

IIGJPIPServerParams

Class Members:

Address
property
This setting allows to specify a different IP address.
CacheDirectory
property
Specifies directory to store cache files (.cache) in.
CacheSize
property
Specifies an alternate per-client cache size.
CompletionTimeout
property
Specifies the time within which the client must complete all persistent connections required by the relevant protocol.
Delegate
property
Delegate the task of actually serving clients to one or more other servers.
IgnoreRelevance
property
Forces the server to ignore the degree to which a precinct overlaps with the spatial window requested by the client.
InitialTimeout
property
Specifies the timeout value to use for the handshaking which is used to establish persistent connection channels.
LogFilename
property
Redirects log messages to the specified log file.
MaxChunkSize
property
Specifies the maximum size of the image data chunks shipped by the server.
MaxClients
property
Specifies the maximum amount of client connections that can be serviced at once.
MaxConnectionThreads
property
Specifies the maximum number of threads which can be dedicated to managing the establishment of new connections.
MaxConnectionTime
property
Specifies the maximum time (in seconds) after which the continuously connected clients will be automatically disconnected.
MaxRate
property
Specified a different maximum transmission rate.
MaxRTT
property
Specifies the maximum value (in seconds) to be used as the server's target round trip time (RTT).
MaxSources
property
Specifies the maximum amount of the open source files for each client connection.
MinRTT
property
Specifies minimum value to be used as the server's target round trip time (RTT).
PartitioningThreshold
property
Represents the threshold, i.e. the maximum size for any JP2 box before that box is replaced by a placeholder in its containing data-bin, where the placeholder identifies a separate data-bin which holds the box's contents.
Port
property
Specifies the port on which the server listens for JPIP connection requests.
Record
property
Specifies whether the server should print all HTTP requests and reply to stdout or not.
WorkingDirectory
property
Specifies the working directory for the JPIP server.


Address

Group: Property

Description:

This property allows to specify a different IP address.

By default, the server uses the first valid IP address on which the machine is capable of listening. The IP address should be supplied in the familiar period-separated numeric format.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
period-separated numeric format string
Bits Per Pixel:
N/A
Sample:
JPIPS


CacheDirectory

Group: Property

Description:

This property specifies directory to store cache files (.cache) in. By default, each cache file is stored in the same directory as its corresponding JPEG2000 image. If this setting is used, the server will instead place all cache files in the specified directory.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
specified directory
Bits Per Pixel:
N/A
Sample:
JPIPS


CacheSize

Group: Property

Description:

This property specifies an alternate per-client cache size, which may be as low as 0.

When serving a client, the JPEG2000 source file is managed by a persistent codestream object. This object loads compressed data on demand from the source file. Data which is not in use can also be temporarily unloaded from memory, as soon as the JPEG2000 code-stream contains appropriate PLT (packet length) marker segments and a packet order in which all packets of any given precinct appear contiguously.

Under these conditions, the system employs a FIFO (first-in first-out) caching strategy to unload compressed data which is not in use once a cache size threshold is exceeded. The default cache size used by this application is 2 Megabytes per client attached to the same code-stream. Applications should work well even if the cache size is 0, but the server application may become disk bound if the cache size gets too small.

Property Summary:

Data Type:
Long
Default Value:
2000000
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


CompletionTimeout

Group: Property

Description:

This property specifies the time within which the client must complete all persistent connections required by the relevant protocol, from the point at which it is sent the corresponding connection parameters. The server will not hold a session open indefinitely, since the client might terminate leaving the resources unclaimed. The default timeout value is 20 seconds.

Property Summary:

Data Type:
Long
Default Value:
20
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


Delegate

Group: Property

Description:

This property delegate the task of actually serving clients to one or more other servers, usually running on different machines.

This setting may be set multiple times, once for each host to which service may be delegated. When multiple delegates are supplied, the load is distributed on the basis of the optional load share specifier.

The load share is a positive integer, which defaults to 4, if not explicitly provided. Clients are delegated to the available hosts on a round-robin basis until each host has received its load share, after which all the load share counters are initialized to the load share value and round robin delegation continues from there.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPS


IgnoreRelevance

Group: Property

Description:

This property forces the server to ignore the degree to which a precinct overlaps with the spatial window requested by the client, serving up compressed data from all precincts which have any relevance at all, layer by layer, with the lowest frequency subbands appearing first within each layer.

By contrast, the default behaviour is to schedule precinct data in such a way that more information is provided for those precincts which have a larger overlap with the window of interest.

If the source code-stream contains a COM marker segment that identifies the distortion-length slope thresholds which were originally used to form the quality layers, and hence packets, this information is used to schedule precinct data in a manner which is approximately optimal in the same rate-distortion sense as that used to form the original code-stream layers, taking into account the degree to which each precinct is actually relevant to the window of interest.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
JPIPS


InitialTimeout

Group: Property

Description:

This property specifies the timeout value to use for the handshaking which is used to establish persistent connection channels.

Each time a TCP channel is accepted by the server, it allows this amount of time for the client to pass in the connection message.

In the case of the initial HTTP connection, the client must send its HTTP GET request within the timeout period.

In the case of persistent TCP session channels, the client must send its initial CONNECT message within the timeout period.

The reason for timing these events is to guard against malicious behaviour in denial of service attacks. The default timeout is 5 seconds, but this might not be enough when operating over very slow links.

Property Summary:

Data Type:
Long
Default Value:
5
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


LogFilename

Group: Property

Description:

This property redirects log messages to the specified log file.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPS


MaxChunkSize

Group: Property

Description:

This property specifies the maximum size of the image data chunks shipped by the server.

Flow control at the server or client is generally performed on chunk boundaries, so smaller chunks may give you finer granularity for estimating network conditions, at the expense of higher computational overhead, and some loss of transport efficiency.

You may not specify chunk sizes smaller than 128 bytes.

Property Summary:

Data Type:
Long
Default Value:
1024
Access:
Read/Write
Settings:
any positive value equal or more than 128.
Bits Per Pixel:
N/A
Sample:
JPIPS


MaxClients

Group: Property

Description:

This property specifies the maximum amount of client connections that can be serviced at once.

This setting allows the limit to be adjusted.

Property Summary:

Data Type:
Long
Default Value:
2
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


MaxConnectionThreads

Group: Property

Description:

This property specifies the maximum number of threads which can be dedicated to managing the establishment of new connections.

The new connections are handed off to dedicated per-client threads as soon as possible, but connection threads are responsible for initially opening files and managing all tasks associated with delegating services to other servers. Allowing multiple connection requests to be processed simultaneously, the performance of the server need not be compromised by clients with slow channels.

The default maximum number of connection management threads is 5.

Property Summary:

Data Type:
Long
Default Value:
5
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


MaxConnectionTime

Group: Property

Description:

This property specifies the maximum time (in seconds) after which the continuously connected clients will be automatically disconnected.

A different maximum connection time (expressed in seconds) may be specified here.

Property Summary:

Data Type:
Long
Default Value:
300
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


MaxRate

Group: Property

Description:

This property specified a different maximum transmission rate (expressed in bytes/second).

By default, transmission of JPEG2000 packet data to the client is limited to a maximum rate of 4 kBytes/second. Data is transmitted at the maximum rate until certain queuing constraints are encountered, if any.

Property Summary:

Data Type:
Long
Default Value:
4000
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


MaxRTT

Group: Property

Description:

This property specifies the maximum value (in milliseconds) to be used as the server's target round trip time (RTT). The actual instantaneous RTT may be somewhat larger than this, depending upon network conditions.

Property Summary:

Data Type:
Long
Default Value:
2000
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


MaxSources

Group: Property

Description:

This property specifies the maximum amount of the open source files for each client connection.

By default, the server permits one open JPEG2000 source file for each client connection. This setting may be used to reduce the number of allowed source files. Clients browsing the same image share a single open source file, which leads to a number of efficiencies. New client connections will be refused, even if the total number of clients does not exceed the limit supplied using `-clients', if the total number of open files would exceed the limit. If the `-clients' argument is missing, the value supplied to a `-sources' argument also becomes the maximum number of connected clients.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


MinRTT

Group: Property

Description:

This property specifies minimum value (in milliseconds) to be used as the server's target round trip time (RTT).

The actual instantaneous RTT may be smaller than this value, but the server endeavours to queue sufficient messages onto the network so as to realize at least this RTT.

Whenever the minimum target RTT is lower than the maximum target RTT, the server will attempt to hunt for the smallest target RTT which is consistent with these bounds and also maximizes network utilization.

Property Summary:

Data Type:
Long
Default Value:
500
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


PartitioningThreshold

Group: Property

Description:

This property represents the threshold, i.e. the maximum size for any JP2 box before that box is replaced by a placeholder in its containing data-bin, where the placeholder identifies a separate data-bin which holds the box's contents.

Selecting a large value for the threshold allows all meta-data to be appeared in meta data-bin 0, with placeholders used only for the contiguous codestream boxes. Selecting a small value tends to distribute the meta-data over numerous data-bins, each of which is delivered to the client only, if its contents are deemed relevant to the client request.

The default value for the partitioning threshold is 32 bytes.

NOTE: This setting will have no affect on the partitioning of meta-data into data-bins for target files whose representation has already been cached in a file having the suffix, ".cache". This is done whenever a target file is first opened by an instance of the server so as to ensure the delivery of a consistent image every time the client requests it. If you delete the cache file, the server will generate a new target ID which will prevent the client from re-using any information it recovered during previous browsing sessions.

Property Summary:

Data Type:
Long
Default Value:
32
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


Port

Group: Property

Description:

This property specifies the port on which the server listens for JPIP connection requests.

You may specify a different port number here.

Property Summary:

Data Type:
Long
Default Value:
80
Access:
Read/Write
Settings:
any positive value
Bits Per Pixel:
N/A
Sample:
JPIPS


Record

Group: Property

Description:

This property specifies whether the server should print all HTTP requests and reply to stdout or not.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
JPIPS


WorkingDirectory

Group: Property

Description:

This property specifies the working directory for the JPIP server. Files will be served from this directory, and subdirectories of this directory.

The server always have a single working directory, defaulting to the current working directory of the process using the server API. In addition to the working directory, virtual directories can be used to access files in other locations. Also, the request/response callback mechanism can be used to return other files, including files generated on-the-fly or retrieved from a database.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPS


IGJPIPServerRequestEventParams

Group: Object

Description:

This is the JPIP server object containing the request event parameters.

Interface:

IIGJPIPServerRequestEventParams

Class Members:

DenialReason
property
Specifies the reasons for the request denial.
Deny
property
Determines whether to deny or accept the request.
IPAddress
property
Returns the IP address of the request.
Request
property
Returns the request description.
ResponseFilename
property
Determines the name of file where to place the response on the request.


DenialReason

Group: Property

Description:

This property specifies the reasons for the request denial.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPS


Deny

Group: Property

Description:

This property determines whether to deny or accept the request.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
JPIPS


IPAddress

Group: Property

Description:

This property returns the IP address of the request.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
JPIPS


Request

Group: Property

Description:

This property returns the request description.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
JPIPS


ResponseFilename

Group: Property

Description:

This property determines the name of file where to place the response on the request.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Bits Per Pixel:
N/A
Sample:
JPIPS


IGJPIPServerStatusEventParams

Group: Object

Description:

This is the JPIP server object containing the status event parameters.

Interface:

IIGJPIPServerErrorEventParams

Class Members:

Description
property
Status event description.


Description

Group: Property

Description:

This property returns the status event description.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
JPIPS


ImageGear MD Component API Reference

ImageGear MD Component API Reference

ImageGear MD (Medical) component provides access to IG Medical API and contains objects used for loading, saving, displaying and processing medical images. ImageGear Medical component exposes the following objects:

IGMedContrast
Represents medical display contrast attributes
IGMedCtl
The main control that provides access to medical objects
IGMedDataDict
Provides access to DICOM Data Dictionary
IGMedDataElem
Represents DICOM Data Element
IGMedDisplay
Provides access to medical display functionality
IGMedElemList
Represents DICOM Data Element Lists, such as DataSet and FileMetaInfo
IGMedLUT
Represents Look Up Table that can be used for storing Presentation LUT or GSDF LUT.
IGMedMinMax
Represents a pair of min and max values
IGMedPage
Provides access to medical functionality of IGPage
IGMedPixPaddingSettings
Represents Pixel Padding settings
IGMedPreamble
Represents DICOM Preamble
IGMedProcessing
Provides access to medical image processing functionality
IGMedTagInfo
Provides information on DICOM Tags
IGMedVRInfo
Provides information on DICOM Value Representations

ImageGear Medical component introduces the following enumerations:

enumIGMedColorSchemes
Identifies medical pseudocoloring schemes
enumIGMedDICOMStructureType
Identifies DICOM structure types
enumIGMedLevelOption
Identifies DICOM Element List level navigation options
enumIGMedObjType
Identifies types of creatible objects used by the Medical component
enumIGMedPhotoInt
Identifies DICOM Photometric Interpretations.
enumIGMedPixelRep
Identifies DICOM Pixel Representations.
enumIGMedPlanarConfig
Identifies DICOM Planar Configurations.
enumIGMedSOP
Identifies DICOM SOP Classes.
enumIGMedTag
Identifies DICOM tags
enumIGMedTS
Identifies DICOM Transfer Syntaxes
enumIGMedVR
Identifies DICOM Value Representations
enumIGMedVRRestriction
Identifies Value Representation length restrictions


IGMedContrast

Group: Object

Description:

This object represents the parameters that are used to build a 16x8 LUT for displaying 9..16 bit images.

Use IGMedCtl . CreateObject (MED_OBJ_CONTRAST) to create objects of this type.

See IGMedDisplay . AdjustContrastFrom for more details.

Interface:

IIGMedContrast extends IIGObject

Class Members:

AutoAdjustFrom
method
Automatically adjusts WindowWidth and WindowCenter properties of the IGMedContrast object, according to minimum and maximum intensities of a portion of IGPage, specified by its ROI.
Gamma
property
Specifies Gamma correction value
GSDFLUT
property
This property determines whether identity LUT is assumed or not.
IsInverted
property
Tells whether the image should be displayed inverted.
ModalityLUT
property
Provides access to Modality LUT.
PresentationLUT
property
This property determines whether identity LUT is assumed or not.
PresLUT
property
Provides access to Presentation LUT.
RescaleIntercept
property
Specifies Rescale Intercept value.
RescaleSlope
property
Specifies Rescale Slope value.
StdDsplLUT
property
Provides access to Grayscale Standard Display LUT.
VOILUT
property
Provides access to VOI LUT.
WindowCenter
property
Specifies Window Center value.
WindowWidth
property
Specifies Window Width value


AutoAdjustFrom

Group: Method

Description:

This method automatically adjusts WindowWidth and WindowCenter properties of the IGMedContrast object, according to minimum and maximum intensities of a portion of IGPage, specified by its ROI.

Use IGMedCtl.BuildGrayscaleLUT to build a grayscale LUT from MedContrast, and then copy this grayscale LUT to either an IGPage or to IGPageDisplay, using IGPage.UpdateGrayscaleLUTFrom or IGPageDisplay.UpdateGrayscaleLUTFrom.

Declaration:

AutoAdjustFrom(Page as IGPage)

Parameters:

Page
Specifies the page, which should be checked for minimum and maximum intensities.

Return value:

None

Bits Per Pixel: 8...16 bpp

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Gamma

Group: Property

Description:

Set this to the amount of Gamma correction you would like applied to the image. To turn off Gamma correction, set to 1.0.

Property Summary:

Data Type:
Double
Default Value:
1.0
Access:
Read / Write
Settings:
0.20-1.80
Bits Per Pixel:
9..16
Sample:
Med


GSDFLUT

Group: Property

Description:

This property determines whether identity LUT is assumed or not.

If GSDFLUT.size is 0, identity LUT is assumed.

Property Summary:

Data Type:
IIGMedLUT
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
9..16
Sample:
Med


IsInverted

Group: Property

Description:

Tells whether the image should be displayed inverted. True (inverted) corresponds to MONOCHROME1 photometric interpretation; False (not inverted) coresponds to MONOCHROME2 photometric interpretation.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read-write
Settings:
True, False
Bits Per Pixel:
8, 9..16
Sample:
Med


ModalityLUT

Group: Property

Description:

This property provides access to Modality LUT.

If LUT is empty, identity LUT is assumed.

Property Summary:

Data Type:
IGLUT
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
8..16
Sample:
Med


PresentationLUT

Group: Property

Description:

This property determines whether identity LUT is assumed or not.

If PresLUT.size is 0, identity LUT is assumed.

Property Summary:

Data Type:
IIGMedLUT
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
9..16
Sample:
Med


PresLUT

Group: Property

Description:

This property provides access to Presentation LUT.

If LUT is empty, identity LUT is assumed.

This property overrides PresentationLUT property.

Property Summary:

Data Type:
IGLUT
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
8..16
Sample:
Med


RescaleIntercept

Group: Property

Description:

Specifies Rescale Intercept value.

Property Summary:

Data Type:
Double
Default Value:
0.0
Access:
Read / Write
Settings:
Any
Bits Per Pixel:
9..16
Sample:
Med


RescaleSlope

Group: Property

Description:

Specifies Rescale Slope value.

Property Summary:

Data Type:
Double
Default Value:
1.0
Access:
Read / Write
Settings:
Any
Bits Per Pixel:
9..16
Sample:
Med


StdDsplLUT

Group: Property

Description:

This property provides access to Grayscale Standard Display LUT.

If LUT is empty, identity LUT is assumed.

This property overrides GSDFLUT property.

Property Summary:

Data Type:
IGLUT
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
8..16
Sample:
Med


VOILUT

Group: Property

Description:

This property provides access to VOI LUT.

If LUT is empty, identity LUT is assumed.

Property Summary:

Data Type:
IGLUT
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
8..16
Sample:
Med


WindowCenter

Group: Property

Description:

Specifies Window Center value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / Write
Settings:
0..65535 for unsigned images
-32768..32767 for signed images
Bits Per Pixel:
9..16
Sample:
Med


WindowWidth

Group: Property

Description:

Specifies Window Width value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / Write
Settings:
0..65535 for unsigned images
-32768..32767 for signed images
Bits Per Pixel:
9..16
Sample:
Med


IGMedCtl

Group: Control

Description:

The Medical ImageGear component. The instance of IGMedCtl should be either added to the form during design time, or created dynamically during run time. This object has no visible representation on screen and provides access to medical API objects.

Interface:

IIGMedCtl extends IIGMed

Interface:

IIGMed extends IIGComponent

Class Members:

ComponentInfo
property
Provides access to the IGComponentInfo object for IGMedCtl. The IGComponentInfo object identifies the particular version of IGMedCtl installed in the computer.
ComponentInterface
property
Provides access to the IIGComponent interface for IGMedCtl. Used in IGCoreCtl . AssociateComponent call.
DataDict
property
Provides access to the IGMedDataDict object contained inside of the IG Medical control.
BuildGrayscaleLUT
method
Builds a grayscale LUT according to lpDICOMDisplaySettings.
BuildGSDFLUT
method
This method builds a look up table that maps pixel intencities from DICOM GSDF-compliant color space into pixel intencities of the display device.
BuildStdDsplLUT
method
Builds a look up table that maps pixel intentities from DICOM GSDF-compliant color space into pixel intencities of the display device.
CreateMedPage
method
Creates new instance of IGMedPage object
CreateObject
method
Creates new instance of specified object
UpdateFileMetadata
method
Creates a new file with exact copy of source file's pixel data and with new metadata.


BuildGrayscaleLUT

Group: Method

Description:

This method builds a grayscale LUT according to lpDICOMDisplaySettings.

Declaration:

BuildGrayscaleLUT(ContrastSettings as IGMedContrast, PixPadding
as IGMedPixPaddingSettings, GrayscaleLUT as IGLUT)

Parameters:

ContrastSettings
DICOM contrast settings.
PixPadding
Pixel Padding settings.
GrayscaleLUT
Grayscale LUT to fill.

Return value:

None

Bits Per Pixel: 8...16 bpp

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BuildGSDFLUT

Group: Method

Description:

This method builds a look up table that maps pixel intentities from DICOM GSDF-compliant color space into pixel intencities of the display device. The user should initialize the pGSDFLUT object before calling this method.

The LUT obtained from this function can be used for building the 16x8 or 8x8 display LUT.

At the moment, ImageGear does not support any display devices that are capable of displaying more than 256 shades of grayscale. Hence, BuildGSDFLUT can only build a LUT consisting of 8-bit entries.

Declaration:

BuildGSDFLUT(IIGDataArray* CharactCurve) As IIGMedLUT

Parameters:

CharactCurve
An array of double, containing luminance values corresponding to pixel intencities of the display device.

Return value:

A new instance of the IGMedLUT object.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BuildStdDsplLUT

Group: Method

Description:

This method builds a look up table that maps pixel intentities from DICOM GSDF-compliant color space into pixel intencities of the display device. The user should initialize the StdDsplLUT object before calling this method.

The LUT obtained from this function can be used for building the 16x8 or 8x8 grayscale display LUT.

At the moment, ImageGear does not support any display devices that are capable of displaying more than 256 shades of grayscale. Hence, BuildGSDFLUT can only build a LUT consisting of 8-bit entries.

This method replaces IGMedCtl. BuildGSDFLUT. It works with the new class IGLUT, which is more flexible, and is supported by some new API methods.

Declaration:

BuildStdDsplLUT(CharactCurve as IIGDataArray, StdDsplLUT As
IGLUT)

Parameters:

CharactCurve
An array of double, containing luminance values corresponding to pixel intencities of the display device.
StdDsplLUT
StdDsplLUT object.

Return value:

None

Bits Per Pixel: 8...16 bpp

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGMedCtl. The IGComponentInfo object identifies the particular version of IGMedCtl installed in the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Med


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGMedCtl. Used in IGCoreCtl . AssociateComponent call.

Property Summary:

Data Type:
IGComponent
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Med


CreateMedPage

Group: Method

Description:

This method creates new instance of IGMedPage object and associates it with IGPage specified. Reference to IGPage is kept inside of the new IGMedPage object.

Declaration:

CreateMedPage(Page As IGPage) As IGMedPage

Parameters:

Page
Specifies the IGPage object to associate new IGMedPage with

Return value:

A new instance of the IGMedPage object.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateObject

Group: Method

Description:

This method creates a new instance of one of the medical objects. All the objects that could be created by this method implement IIGObject interface.

Declaration:

CreateObject (Type As enumIGMedObjType) As IGObject

Parameters:

Type
The type of object to be created, see enumIGMedObjType enum description

Return value:

A new object of the requested type.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DataDict

Group: Property

Description:

This method provides access to the IGMedDataDict object contained inside of the IG Core control.

Property Summary:

Data Type:
IGMedDataDict
Default Value:
N / A
Access:
Read only
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


UpdateFileMetadata

Group: Method

Description:

This function creates a new file with exact copy of source file's pixel data and with new metadata (File Meta Information header and DataSet) taken from IGMedPage. Pixel data is not decoded but copied directly from source to destination file.

This function can be used for updating metadata in an image file without modifying the pixel data. To achieve this, delete the source file after calling this function, and rename result file to the source file name.

The function does not change the tags that affect decoding of pixel data.

The function takes into account the following DICOM filter control parameters:

SAVE_GROUPLENGTHS

SAVE_ASPART10

Declaration:

Sub UpdateFileMetadata (MedPage as IGMedPage, SrcFileName As
String, DstFileName As String)

Parameters:

Name
Description
MedPage
IGMedPage object, containing metadata to be saved to result file
SrcFileName
Source file name
DstFileName
Result file name

Sample:

Med


IGMedDataDict

Group: Object

Description:

This object provides access to DICOM Data Dictionary. The Data Dictionary contains information on all registered DICOM tags, and can be extended with private tags during runtime. It also contains information on DICOM Value Representations.

Interface:

IIGMedDataDict

Class Members:

AddTagInfo
method
Adds private Tag info to the dictionary
GetTagElement
method
Returns low word of Tag
GetTagGroup
method
Returns high word of Tag
GetTagInfo
method
Obtains tag info
GetVRID
method
Returns VR ID for the specified VR String
GetVRInfo
method
Obtains Value Representation info
MakeTag
method
Constructs 32-bit Tag number from Group and Element numbers
ResetTagInfo
method
Removes all private tag info from the dictionary
TagInfoExists
method
Checks whether this tag is known to the dictionary


AddTagInfo

Group: Method

Description:

Use this function to add new entries into an internal table of Tag entries. This can be newly defined DICOM Tags (new to the specification) or private user-defined Tags. Once a new entry is added the new Tag works just like all other Tags do.

Declaration:

AddTagInfo(pTagInfo As IGMedTagInfo)

Parameters:

pTagInfo
Information on the new tag

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetTagElement

Group: Method

Description:

This method returns Element number out of the Tag number specified. The Element Number is the least significant WORD of the 32-bit Tag number.

Declaration:

GetTagElement(Tag As Long) As Long

Parameters:

Tag
Set to a 32-bit Tag number. You can use enumIGMedTag constants, as well as private Tag numbers.

Return value:

Element Number of the Tag.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetTagGroup

Group: Method

Description:

This method returns Group number out of the Tag number specified. The Group Number is the most significant WORD of the 32-bit Tag number.

Declaration:

GetTagGroup(Tag As Long) As Long

Parameters:

Tag
Set to a 32-bit Tag number. You can use enumIGMedTag constants, as well as private Tag numbers.

Return value:

Group Number of the Tag.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetTagInfo

Group: Method

Description:

This method returns information about the specified Tag. The function searches in the user-defined Data Dictionary first, and then if the Tag is not found, searches in the static Data Dictionary, which represents the Data Dictionary listed in Part 6 of the DICOM standard.

Declaration:

GetTagInfo(Tag As Long) As IGMedTagInfo

Parameters:

Tag
Set to a 32-bit Tag number. You can use enumIGMedTag constants, as well as private Tag numbers.

Return value:

Object of type IGMedTagInfo containing Information on the Tag specified.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetVRID

Group: Method

Description:

Returns an enumIGMedVR constant that identifies the type of Value Representation, corresponding to the specified Value Representation String ID.

Declaration:

GetVRID(StringID As String) As enumIGMedVR

Parameters:

StringID
String ID of a Value Representation, such as "AE", "OB", etc

Return value:

An enumIGMedVR constant that identifies the type of Value Representation.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetVRInfo

Group: Method

Description:

Returns an information on the DICOM Value Representation.

Declaration:

GetVRInfo(ID As enumIGMedVR) As IGMedVRInfo

Parameters:

ID
Value Representation constant

Return value:

Object of type IGMedVRInfo containing Information on the Value Representation specified.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MakeTag

Group: Method

Description:

This method ztakes a 16-bit Group Number and a 16-bit Element Number and returns a 32-bit Tag number.

Declaration:

MakeTag(Group As Long, Element As Long) As Long

Parameters:

Group
Tag group number
Element
Tag element number

Return value:

32-bit Tag number.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ResetTagInfo

Group: Method

Description:

This function frees up the user-defined Data Dictionary, if it exists. All User-Defined entries are discarded. The pre-defined Data Dictionary is not affected.

Declaration:

ResetTagInfo()

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TagInfoExists

Group: Method

Description:

This method checks whether the Data Dictionary contains information about the Tag specified.

Declaration:

TagInfoExists(Tag As Long) As Boolean

Parameters:

Tag
Set to a 32-bit Tag number. You can use enumIGMedTag constants, as well as private Tag numbers.

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGMedDataElem

Group: Object

Description:

This objects represents DICOM Data Element. Use Double, Long and String indexed properties to access values of the data element.

IG Medical component indexes Data Element Values as "Items" for unified access to values of various Value Representations. Each Value Representation is mapped to a certain Item Type. All string based Value Representations are mapped to String type. They can be accessed through the String indexed property. Floating point Value Representations are mapped to Float and Double item types, and can be accessed through the Double indexed property. Integer Value Representations are mapped to integer types, and can be accessed through the Long indexed property. The following table lists DICOM Value Representations and their correspondent Item Types:

Value Representation
Description
ItemType
Access through property:
MED_DCM_VR_AE
Application Entity
AM_TID_STRING
String
MED_DCM_VR_AS
Age Sting
AM_TID_STRING
String
MED_DCM_VR_AT
Attribute Tag
AM_TID_DWORD
Long
MED_DCM_VR_CS
Code String
AM_TID_STRING
String
MED_DCM_VR_DA
Date
AM_TID_STRING
String
MED_DCM_VR_DS
Decimal String
AM_TID_STRING
String
MED_DCM_VR_DT
Date Time
AM_TID_STRING
String
MED_DCM_VR_FL
Floating Point Single
AM_TID_FLOAT
Double
MED_DCM_VR_FD
Floating Point Double
AM_TID_DOUBLE
Double
MED_DCM_VR_IS
Integer String
AM_TID_STRING
String
MED_DCM_VR_LO
Long String
AM_TID_STRING
String
MED_DCM_VR_LT
Long Text
AM_TID_STRING
String
MED_DCM_VR_OB
Other Byte String
AM_TID_BYTE
Long
MED_DCM_VR_OF
Other Float String
AM_TID_FLOAT
Double
MED_DCM_VR_OW
Other Word String
AM_TID_WORD
Long
MED_DCM_VR_PN
Person Name
AM_TID_STRING
String
MED_DCM_VR_SH
Short String
AM_TID_STRING
String
MED_DCM_VR_SL
Signed Long
AM_TID_LONG
Long
MED_DCM_VR_SQ
Sequence of Itmes
AM_TID_VOID
N/A
MED_DCM_VR_SS
Signed Short
AM_TID_SHORT
Long
MED_DCM_VR_ST
Short Text
AM_TID_STRING
String
MED_DCM_VR_TM
Time
AM_TID_STRING
String
MED_DCM_VR_UI
Unique Identifier
AM_TID_STRING
String
MED_DCM_VR_UL
Unsigned Long
AM_TID_DWORD
Long
MED_DCM_VR_US
Unsigned Short
AM_TID_WORD
Long
MED_DCM_VR_UN
Unknown
AM_TID_BYTE
Long
MED_DCM_VR_UT
Unlimited text
AM_TID_STRING
String

For all Value Representations except Other Byte, Other Word and Other Float, one Item corresponds to one Value. For Other Byte, Other Word and Other Float Value Representations, which are arrays and always have Value Multiplicity of one, one item corresponds to one element of the array (Byte, Word or Float).

ItemCount and ItemType properties describe the Data Element Value in terms of Items. Refer to these properties before accessing the data value through Double, Long or String indexed properties.

ValueLength and ValueMultiplicity properties represent Value Length and Value Multiplicity terms defined by the DICOM standard.

IG Medical component uses IGMedDataElem object for representing the Current Data Element of a Data Element List. You can change the values of the current Data Element, and change size of the Data Element, but you can not change its Value Representation (and consequently, ItemType). If you need to change a type of existing Data Element, remove it from the Element List, and then Insert it again, specifying the new Value Representation.

Interface:

IIGMedDataElem

Class Members:

Double
property
This indexed property provides access to the Data Element Value items in case if they are of Float or Double type
ItemCount
property
This property returns the number of value items currently stored in the Data Element.
ItemType
property
This property returns the type of value items currently stored in the Data Element
Long
property
This indexed property provides access to the Data Element Value items in case if they are of Byte, Short, WORD, Long or DWORD type
String
property
This indexed property provides access to the Data Element Value items in case if they are of String type
Tag
property
Returns Tag number of the Data Element
ValueLength
property
Returns Value Length in bytes of the Data Element
ValueMultiplicity
property
Returns Value Multiplicity of the Data Element
ValueRepresentation
property
Returns Value Representation of the Data Element
GetIntegerArrayCopy
method
Returns a copy of Data Element data as a new IGIntegerArray object.
OutputDataToString
method
Outputs Data Element values in a readable form
Resize
method
Changes ItemCount of the Data Element Value
UpdateIntegerArrayFrom
method
Updates Data Element from an IGIntegerArray object.


Double

Group: Property

Description:

This indexed property provides access to the Data Element value item in case if items are of the Float or Double type.

For Other Float Value Representation, one item corresponds to one element in the array (Float). For other Value Representations, one item corresponds to one Value.

If the Data Element is single valued, use Double(0) to access its value.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Index:
[0..ItemCount-1]
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


GetIntegerArrayCopy

Group: Method

Description:

Returns a copy of Data Element data as a new IGIntegerArray object. This method is useful for Data Elements that contain binary data.

Declaration:

GetIntegerArrayCopy() As IGIntegerArray

Rerturn value:

New instance of IGIntegerArray


ItemCount

Group: Property

Description:

This property returns the number of Items stored in the Data Element.

For all Value Representations except Other Byte, Other Word and Other Float, ItemCount equals ValueCount. For Other Byte, Other Word and Other Float Value Representations, which are arrays and always have Value Multiplicity of one, ItemCount represents the number of elements in the array (Byte, Word or Float).

See description of IGMedDataElem object for more detail.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


ItemType

Group: Property

Description:

This property returns the type of Items stored in the Data Element.

See description of IGMedDataElem object for more detail.

Property Summary:

Data Type:
enumIGSysDataType
Default Value:
N/A
Access:
Read
Index:
[0..ItemCount-1]
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


Long

Group: Property

Description:

This indexed property provides access to the Data Element value item in case if items are of the Byte, Short, WORD, Long or DWORD type.

For Other Byte and Other Word Value Representations, one item corresponds to one element in the array (Byte or Word, correspondingly). For other Value Representations, one item corresponds to one Value.

If the Data Element is single valued, use Long(0) to access its value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Index:
[0..ItemCount-1]
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


OutputDataToString

Group: Method

Description:

Outputs items of the Data Element in a readable form. You can specify the first item and number of items to output, a character for separating items, and the maximum length of the output string.

Declaration:

OutputDataToString(FirstValue As Long, ItemCount As Long,
ItemSeparator As String, Len As Long) As String

Parameters:

FirstItem
First item to output
ItemCount
Number of items to output, -1 to output all items starting from FirstItem.
ItemSeparator
Specifies the character to be used as item separator. Only the first character in the ItemSeparator string is used.
MaxLen
Maximum length of the output string, or 0 if any length is acceptable.

Return value:

String containing Data Element Value printed in a readable form.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Resize

Group: Method

Description:

Changes ItemCount of the Data Element.

For all Value Representations except Other Byte, Other Word and Other Float, ItemCount corresponds to the Value Multiplicity. For Other Byte, Other Word and Other Float Value Representations, which are arrays and always have Value Multiplicity of one, ItemCount represents the number of elements in the array (Byte, Word or Float).

ValueLength and ValueMultiplicity properties will reflect the NewItemCount.

See description of IGMedDataElem object for more detail.

Declaration:

Resize(NewItemCount As Long)

Parameters:

NewItemCount
New item count of the Data ELement

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


String

Group: Property

Description:

This indexed property provides access to the Data Element value item in case if items are of the String type.

One item corresponds to one Value in a Multivalued Data Element.

According to DICOM standard, strings values in a multivalued DataElement are separated by backslash (`\5C') characher. Thus, if this character is found in the input string, it and all the following characters are ignored. Use property index to set multiple values.

If the Data Element is single valued, use String(0) to access its value.

Since every item of the string type Data Eiement is a variable length string, setting a new String value will modify the ValueLength property.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Index:
[0..ItemCount-1]
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


Tag

Group: Property

Description:

This property returns the Tag number of the Data Element.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


UpdateIntegerArrayFrom

Group: Method

Description:

This method replaces contents of IGMedDataElem with a copy of contents of the specified IGIntegerArray object. This method is useful for Data Elements that contain binary data.

Declaration:

Sub UpdateIntegerArrayFrom (pVal As IGIntegerArray)

Parameters:

pVal
IGIntegerArray object to copy contents from


ValueLength

Group: Property

Description:

This property returns the Value Length, in bytes, of the current Data Element.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


ValueMultiplicity

Group: Property

Description:

This property returns the Value Multiplicity of the current Data Element. Note that IG Medical component operates with Items rather than Values, so Value Multiplicity property is provided mostly for informative purpose.

See description of IGMedDataElem object for more detail.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


ValueRepresentation

Group: Property

Description:

This property returns Value Representation of the current Data Element. Note that IG Medical component operates with Items rather than Values, so consult the ItemType property before accessing the Data Element items.

See description of IGMedDataElem object for more detail.

Property Summary:

Data Type:
enumIGMedVR
Default Value:
0
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


IGMedDisplay

Group: Object

Description:

This object provides access to medical display functionality.

Interface:

IIGMedDisplay

Class Members:

AdjustContrastAutoFrom
method
This method adjusts 16x8 display LUT using specified Rescale settings, and automatically selected Window settings.
AdjustContrastFrom
method
This method adjusts 16x8 display LUT using the specified Rescale, Window and Gamma settings.
CreateColorLimitsLUT
method
This method creates a color limits LUT.
CreateColorLUT
method
This method creates a pseudocoloring LUT using one of the predefined schemes.
GetPixPaddingSettings
method
This method obtains Pixel Padding settings.
UpdatePixPaddingSettingsFrom
method
This method updates Pixel Padding settings.


AdjustContrastAutoFrom

Group: Method

Description:

This method automatically fills the 16x8 LUT of a 16-bit image loaded into ImageGear in order to optimize its displaying. The function scans the portion of the image specified by current ROI to determine its minimum and maximum pixel values, and calculates the Window Center and Width from these.

The ROI settings of IGPage object are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

If the Rescale Slope and Intercept of the image are known, you should provide them. If they are not known, pass in a 1.0 and 0.0, respectively.

The Window Center and Width that this function computes are passed back to you in the pContrast object.

Declaration:

AdjustContrastAuto(pContrast As IGMedContrast)

Parameters:

pContrast
Specifies new Rescale and Gamma and returns new Window settings.

Return value: N/A

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


AdjustContrastFrom

Group: Method

Description:

This method uses the window/level mapping method to change the contrast of an 9-16-bit image. It takes values for Window Center & Width, and Rescale Slope & Intercept, and it also allows you to apply Gamma correction, if you desire.

This method fills the 16x8 LUT with values that will display a 9-16 bit image according to VOI LUT (Window Center/Width) and Modality LUT (Rescale Intercept/Slope) values that you specify. Any values that have been in the 16x8 LUT are overwritten with these new ones. If the Rescale Slope and Intercept of the image are known, you should provide them. If they are not known, pass in a 1.0 and 0.0, respectively.

If you do not have values for Window Center and Window Width, these can be calculated using the minimum and maximum pixel values (if you have them known). Here are the formulas you should use to display all pixel values:

Window Center = (max + min) / 2;
Window Width = (max - min);
See also AdjustContrastAutoFrom().

Declaration:

AdjustContrastFrom(pContrast As IGMedContrast)

Parameters:

pContrast
Specifies new contrast settings

Return value: N/A

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateColorLimitsLUT

Group: Method

Description:

Use this method to create a color LUT for pseudocoloring the brightest and the darkest pixels in a 8..16-bit grayscale image. This is usually used to clearly see pixel values that are over-saturated (255 and up) or under-saturated (0 and below). However, this method lets you customize the settings for the upper and lower pixel value limits with LowThreshold and HighThreshold.

The color is applied after the 16x8 display LUT is applied to the image and is not affected by altering this LUT.

Pixel values at or below LowThreshold are colored the "low color" and those at or above HighThreshold are colored the "high color". All pixel values in between the 2 limits are set to normal linear gray.

This method does not apply the color to an image. It only fills the color LUT. To apply the LUT to an image you need pass the LUT to IGPageDisplay.UpdateLUTFrom().

To turn off this effect, create a LUT using this method and specifying -1 as LowThreshold and 256 as HighThreshold, and pass this LUT to IGPageDisplay.UpdateLUTFrom().

Declaration:

CreateColorLimitsLUT(LowTreshold As Long, HighTreshold As Long,
pLowColor As IGPixel, pHighColor As IGPixel) As IGPixelArray

Parameters:

LowThreshold
Set this to an Integer value for the lower pixel value limit. All pixels at or below this value will be pseudocolored.
HighThreshold
Set this to an Integer value for the upper pixel value limit. All pixels at or below this value will be pseudocolored.
pLowColor
Set it to a RGB pixel value that will be used for all pixels below LowThreshold.
pHighColor
Set it to a RGB pixel value that will be used for all pixels above HighThreshold.

Return value:

Color LUT for pseudocoloring the image.

Bits Per Pixel: 8..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CreateColorLUT

Group: Method

Description:

This method is used to create a color LUT using one of several pseudocolor schemes. The scheme parameter selects which ImageGear predefined pseudocolor method to use. The LUT can be used to pseudocolor an 8-16 bit grayscale image.

This method does not apply the color to an image. It only fills the color LUT. To apply the LUT to an image you need pass the LUT to currentPageDisp.UpdateLUTFrom.

Declaration:

CreateColorLUT(Scheme As enumIGMedColorSchemes, Param1 As Long,
Param2 As Long, Param3 As Long) As IGPixelArray

Parameters:

Scheme
Set this to the pre-defined color scheme that you would like to use to pseudocolor an image.
Param1
Reserved, set to 0
Param2
Reserved, set to 0
Param3
Reserved, set to 0

Return value:

Color LUT for pseudocoloring the image.

Bits Per Pixel: 8...16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPixPaddingSettings

Group: Method

Description:

This method retrieves the Pixel Padding Value (PPV) that is being used to display 9..16-bit grayscale images. This method also tells whether or not the PPV value is used. The Pixel Padding Value is most often used to fill in the regions around a circular image. This method does not retrieve the PPV Data Element from the Data Set attached to the IGMedPage. It gets the value for PPV from the Internal Data Set (HDS) (which may be equal to the value in the actual Data Set). The purpose of this method is to tell you whether Pixel Padding is set on or off, what value it has (if any), and with what color it will be displayed.

Please see the description for UpdatePixPaddingSettingsFrom for the complete description of how ImageGear handles the Pixel Padding Value Data Element.

To turn off the Pixel Padding Value or to alter the value being used call UpdatePixPaddingSettingsFrom.

Declaration:

GetPixPaddingSettings() As IGMedPixPaddingSettings

Return value:

Current pixel padding settings.

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePixPaddingSettingsFrom

Group: Method

Description:

This method is used to set the Pixel Padding Value that is used to display 16-bit grayscale image.

Here is a description of what this Data Element is used and how ImageGear implements this using: DICOM images sometimes contain a Data Element called "Pixel Padding Value" (PPV). The PPV is used mostly to fill in the corners of round images. DICOM provides a Tag for PPV of (0028,0120). This Data Element stores a 16-bit grayscale value that is to be treated as the Pixel Padding Value. Any pixels in the image that have this value are not to be treated as meaningful objects but as background color. Pixel Padding Value is most often set to a very large or very small value and therefore it can be easily differentiated from the real pixel values.

When ImageGear Medical loads a DICOM image that contains a PPV, the value is captured and stored in the IGPage. In fact, 3 values are stored: the PPV from the PPV Data Element, a flag indicating that a PPV was found in the file when it was loaded, and an 8-bit grayscale value used to display pixels with this value. UpdatePixPaddingSettingsFrom can alter the values of these in-memory copies of the PPV data.

When UsePixPadding is set to True, pixels from the original image equal to the PPV are treated as background. All functions that fill the 16x8 LUT will skip this value and place the DisplayPpvAs value in the PPV slot of the table. This allows an application to adjust the contrast of the image while keeping the PPV or background constant. The background is displayed with a grayscale value equal to that stored in DisplayPpvAs. The PPV is also used for the IP algorithms. Methods like IGMedPage.Processing. GetMinMax ignore pixel values that are equal to the PPV. (See below).

UsePixPadding is initially set to True if the loaded image contains a Pixel Padding Value Data Element (0028,0120). If a PPV Data Element isn't found, UsePixPadding is initially set to False.

PixPaddingVal is initially set to the Data Field of the Pixel Padding Value Data Element (0028,0120) if it is found. If there is no PPV Data Element, it is set to 0. DisplayPpvAs is not a part of the PPV Data Element. This value is initially set to default value of 64.

When the UsePixPadding == True the medical image processing methods, such as Processing. GetMinMax or Processing. TabulateHistogram16Gray, ignore the Pixel Padding Value. Pixel Padding Value is used for the borders of the image rather than for the actual image, and therefore it should not be taken into account in calculation of the image statistics.

To retrieve the Pixel Padding Value that is currently stored memory call GetPixPaddingSettings.

Declaration:

UpdatePixPaddingSettingsFrom(pPixPadSettings As
IGMedPixPaddingSettings)

Parameters:

pPixPadSettings
New pixel padding settings

Return value: N/A

Bits Per Pixel: 9..16

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGMedElemList

Group: Object

Description:

This object represents DICOM Element List. IG Medical component uses Element Lists for accessing DICOM Data Set and File Meta Information Header.

Element List is composed of Data Elements. Use navigation functions (Move...) to set current index to the element that you would like to obtain or modify. Use CurrentElem property You can also insert new elements to the Element List and remove elements from it.

DICOM standard defines a special type of Data Element called "Sequence of Items" (SQ). Such Data Elements contain a set of Data Elements inside. Thus, Element List can actually represent a tree. Use MoveUp and MoveDown methods to go deeper into nested sequences or to go back to the upper levels. The CurrentLevel property tells on which nesting level the current index is located.

Interface:

IIGMedElemList

Class Members:

CurrentElem
property
This property provides access to the Current Data Element
CurrentIndex
property
This property retrieves and sets the index of the current Data Element in the Element List
CurrentLevel
property
This property returns the nesting level at which the Current Data Element is located
ElemCount
property
This property returns the number of elements in the Element List
IsEmpty
property
This property tells whether the Element List contains any Data Elements
MaxLevel
property
This property returns the maximum nesting level of the Element List
Clear
method
Clears the ElementList
GetCopy
method
Returns a new copy of the ElementList
InsertElem
method
This method inserts Data Element to the Element List
IsValid
method
Checks if the ElementList object is valid
Load
method
This method loads a DICOM DataSet from the specified location into the IGMedElemList object.
LoadFromFile
method
This method loads a DICOM DataSet from the specified file into the IGMedElemList object.
Merge
method
Merges ElementList with another ElementList
MoveDown
method
This method moves the current index one level down
MoveFind
method
This method searches for Tag in the current level, or diregarding levels, and if found, sets current index to that position
MoveFindFirst
method
This method searches for first tag in the specified group and if found, sets current index to that position.
MoveFirst
method
This method moves the current index to the first Data Element within the current level, or disregarding the levels
MoveLast
method
This method moves the current index to the last Data Element within the current level, or disregarding the levels
MoveNext
method
This method moves the current index to the next Data Element within the current level, or disregarding the levels
MovePrev
method
This method moves the current index to the previous Data Element within the current level, or disregarding the levels
MoveUp
method
This method moves the current index one level up
RemoveCurrentElem
method
This method removes current Data Element from the Element List
Save
method
This method saves DICOM DataSet from the IGMedElemList object to the specified location.
SaveToFile
method
This method saves DICOM DataSet from the IGMedElemList object to the specified file.
UpdateFrom
method
Copies specified ElementList into this ElementList


Clear

Group: Method

Description:

This method clears contents of IGMedElemList object. The application should release or clear all instances of IGMedElemList before exiting, to avoid memory leaks. When using ImageGear MD control from .Net environment, you must use the Clear method, to make sure that internal objects are deallocated before unloading of the Core control. The application must call this method even if the element list is empty (does not contain any Data Elements).

Declaration:

Sub Clear()

See Also:

IGMedElemList.IsValid()


CurrentElem

Group: Property

Description:

This property provides access to the Current Data Element. Use properties and methods of the IGMedDataElem to obtain information on the Data Element, and to retrieve or modify its data.

Property Summary:

Data Type:
IGMedDataElem
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


CurrentIndex

Group: Property

Description:

This property gets and sets the index of the Current Data Element in the Element List. This method goes through all levels of the Data Set. The index of the first Data Element in the table is 0.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / write
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


CurrentLevel

Group: Property

Description:

This property returns the nesting level at which the Current Data Element is located. Levels are counted from 0, which is the top level.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


ElemCount

Group: Property

Description:

This method returns the number of Data Elements in the Element List. If the ElementList contains SQ (Sequence of Items) data elements, the method returns the total number of data elements, including data elements contained within sequences. You might use the ElemCount to set the limit on a loop that iterates through each Data Element in a Data Set.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


GetCopy

Group: Method

Description:

This method returns a copy of the Element List.

Declaration:

GetCopy() As IGMedElemList

Rerturn value:

New instance of IGMedElemList


InsertElem

Group: Method

Description:

This method inserts a Data Element into the Element List. The new Data Element will be placed into the Element List sorted by its Tag value. If the DE already exists, the new one will overwrite it. Specifying a Group Length DE doesn't cause an error, but simply ignored. Your data will be padded to an even length if necessary.

You shall specify the Tag of the new element, ValueRepresentation, and ItemCount. If you are inserting a multivalued Data Element, or a Data Element of type OB, OW or OF, set ItemCount to the desired number of Items. Otherwise, set ItemCount to 1. See description of the IGMedDataElem object for details on how IG Medical Component works with Data Element values.

Use the CurrentElem property of the Element List to set the data of the new element.

Declaration:

InsertElem(Tag As Long, VR As enumIGMedVR, ItemCount As Long)

Parameters:

Tag
Tag number of the Data Element being inserted
VR
Value Representation of the Data Element being inserted
ItemCount
Item Count of the Data Element being inserted

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsEmpty

Group: Property

Description:

This property tells whether the Element List has any Data Elements in it.

Property Summary:

Data Type:
Boolean
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


IsValid

Group: Method

Description:

This method returns False if the IGMedElementList object has been deinitialized by calling its Clear() method. Such object can not be used for any operations, such as getting or adding of data elements, requesting properties, etc.

Declaration:

IsValid() As Boolean

Return value:

Returns True if the object has been cleared using Clear() method; returns False otherwise.

See Also:

IGMedElemList.Clear()


Load

Group: Method

Description:

This method loads a DICOM DataSet from the specified location into the IGMedElemList object. Use control parameters of DICOM format filter to control detection and loading of the DataSet.

Declaration:

Load(Location As IGIOLocation)

Parameters:

Location
Location of the page. Currently, only File and Memory locations are supported.

Return value: N/A

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LoadFromFile

Group: Method

Description:

This method loads a DICOM DataSet from the specified file into the IGMedElemList object. Use control parameters of DICOM format filter to control detection and loading of the DataSet.

Declaration:

LoadFromFile(FileName As String)

Parameters:

FileName
File name of the file to load the DataSet from.

Return value: N/A

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MaxLevel

Group: Property

Description:

Returns the maximum SQ Level of the Data Set.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


Merge

Group: Method

Description:

Adds all Data Elements from ListToMerge to IGMedElemList, including elements contained within sequences.

If ListToMerge contains elements that are already present in the IGMedElemList, these elements are replaced with elements taken from ListToMerge. If ListToMerge contains a sequence that is already present in the IGMedElemList, the whole sequence is replaced.

Declaration:

Sub Merge(IGMedElemList ListToMerge)


MoveDown

Group: Method

Description:

This method moves the Current Data Element down one level. This is only applicable if the Current Data Element is positioned at an SQ Data Element or at an Item Data Element.

If the Current Data Element is positioned at an SQ Data Element, the Current Data Element descends to the first Item in the sequence. If at an Item, the new Current DE becomes the first DE within the Item. Only one level is descended per call.

If the Current DE does not point to an SQ or Item DE, no action is taken.

If this method is successful the CurrentLevel increments by one. Zero refers to the top level. As the number gets larger the Data Element is deeper into the hierarchy. Data Elements (as well as SQs and Item Delimiters) are always stored in odd-numbered levels; even-numbered levels contain Items and SQ Delimiters.

Declaration:

MoveDown()

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MoveFind

Group: Method

Description:

This method searches the Element List for the Tag specified. If the Tag is found, the Data Element becomes the Current Data Element.

The LevelOp parameter tells the method how to move when it comes to an SQ. Set it to one of the two following constants:

  • MED_DCM_MOVE_LEVEL_FIXED: This setting tells the method to move only within the same level as the previous Current DE. Any SQs and all of their Data Elements will be skipped over. If you are in an SQ you can only move within the SQ.
  • MED_DCM_MOVE_LEVEL_FLOAT: This setting tells the method to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ the Current DE moves back to the lower levels (for example, from Level 2 to Level 1).

Declaration:

MoveFind(LevelOp As enumIGMedLevelOption, Tag As Long) As
Boolean

Parameters:

LevelOp
This parameter tells the method how to move when it comes to an SQ.
Tag
This parameters specifies the Tag number to search for.

Return value:

If True, the Tag was found; False otherwise.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MoveFindFirst

Group: Method

Description:

This method searches the Data Set associated with the currently open image for the first Tag of the Group Number specified by GroupNum. When this Tag is found, the Data Element becomes the Current Data Element.

The LevelOp parameter tells the method how to move when it comes to an SQ. Set it to one of the two following constants:

  • MED_DCM_MOVE_LEVEL_FIXED: This setting tells the method to move only within the same level as the previous Current DE. Any SQs and all of their Data Elements will be skipped over. If you are in an SQ you can only move within the SQ.
  • MED_DCM_MOVE_LEVEL_FLOAT: This setting tells the method to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ the Current DE moves back to the lower levels (for example, from Level 2 to Level 1).

Declaration:

MoveFindFirst(LevelOp As enumIGMedLevelOption, GroupNum As
Long) As Boolean

Parameters:

LevelOp
This parameter tells the method how to move when it comes to an SQ.
GroupNum
Set this parameter to the Group Number to search for.

Return value:

If True, the Tag was found; False otherwise.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MoveFirst

Group: Method

Description:

This method moves the Current Index to the first Data Element in the current level, or in the Data Element List, depending on the LevelOp parameter.

The LevelOp parameter tells the method how to move when the Current Element is positioned within a SQ Data Element. Set it to one of the two following constants:

  • MED_DCM_MOVE_LEVEL_FIXED: This setting tells the method to move only within the same level as the previous Current DE. Any SQs and all of their Data Elements will be skipped over. If you are in an SQ you can only move within the SQ.
  • MED_DCM_MOVE_LEVEL_FLOAT: This setting tells the method to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ the Current DE moves back to the lower levels (for example, from Level 2 to Level 1).

Declaration:

MoveFirst(LevelOp As enumIGMedLevelOption)

Parameters:

LevelOp
This parameter tells the method how to move the Current Element is positioned within an SQ.

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MoveLast

Group: Method

Description:

This method moves the Current Index to the last Data Element in the current level, or in the Data Element List, depending on the LevelOp parameter.

The LevelOp parameter tells the method how to move when the Current Element is positioned within a SQ Data Element. Set it to one of the two following constants:

  • MED_DCM_MOVE_LEVEL_FIXED: This setting tells the method to move only within the same level as the previous Current DE. Any SQs and all of their Data Elements will be skipped over. If you are in an SQ you can only move within the SQ.
  • MED_DCM_MOVE_LEVEL_FLOAT: This setting tells the method to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ the Current DE moves back to the lower levels (for example, from Level 2 to Level 1).

Declaration:

MoveLast(LevelOp As enumIGMedLevelOption)

Parameters:

LevelOp
This parameter tells the method how to move the Current Element is positioned within an SQ.

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MoveNext

Group: Method

Description:

This method moves the Current Index to the next Data Element in the current level, or in the Data Element List, depending on the LevelOp parameter.

The LevelOp parameter tells the method how to move when the Current Element is positioned within a SQ Data Element. Set it to one of the two following constants:

  • MED_DCM_MOVE_LEVEL_FIXED: This setting tells the method to move only within the same level as the previous Current DE. Any SQs and all of their Data Elements will be skipped over. If you are in an SQ you can only move within the SQ.
  • MED_DCM_MOVE_LEVEL_FLOAT: This setting tells the method to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ the Current DE moves back to the lower levels (for example, from Level 2 to Level 1).

For Sequences, the Delimiter is assumed to be on a deeper level than the opening tag. For example, if SQ is on level 0, then the corresponding delimiter is on level 1.

Note that Sequence and Sequence Item delimiters are located on a deeper level than the Sequence or Sequence Item opening tag. For example, if SQ tag is located on level 0, then corresponding delimiter is on level 1.

Declaration:

MoveNext(LevelOp As enumIGMedLevelOption)

Parameters:

LevelOp
This parameter tells the method how to move the Current Element is positioned within an SQ.

Return value:

Returns the number of Data Elements remaining until the end is reached. If the returned value is 0, you are now at last DE, if the returned value is -1, you have attempted to move past the last DE.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MovePrev

Group: Method

Description:

This method moves the Current Index to the previous Data Element in the current level, or in the Data Element List, depending on the LevelOp parameter.

The LevelOp parameter tells the method how to move when the Current Element is positioned within a SQ Data Element. Set it to one of the two following constants:

  • MED_DCM_MOVE_LEVEL_FIXED: This setting tells the method to move only within the same level as the previous Current DE. Any SQs and all of their Data Elements will be skipped over. If you are in an SQ you can only move within the SQ.
  • MED_DCM_MOVE_LEVEL_FLOAT: This setting tells the method to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ the Current DE moves back to the lower levels (for example, from Level 2 to Level 1).

Note that Sequence and Sequence Item delimiters are located on a deeper level than the Sequence or Sequence Item opening tag. For example, if SQ tag is located on level 0, then corresponding delimiter is on level 1.

Declaration:

MovePrev(LevelOp As enumIGMedLevelOption)

Parameters:

LevelOp
This parameter tells the method how to move the Current Element is positioned within an SQ.

Return value:

Returns the number of Data Elements remaining until the top is reached. If the returned value is 0, you are now at first DE, if the returned value is -1, you have attempted to move past the first DE.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


MoveUp

Group: Method

Description:

This method moves the Current Data Element up one level. This is only applicable if the Current Data Element is positioned within an SQ Data Element or within an Item Data Element..

If the Current Data Element is positioned anywhere in an SQ, the Current Data Element ascends to the SQ. If within an Item, the new Current DE should become the Item DE. Only one level is ascended per call.

If the Current DE is at the top level (0), no action is taken.

If this method is successful the CurrentLevel increments by one. Zero refers to the top level. As the number gets larger the Data Element is deeper into the hierarchy. Data Elements (as well as SQs and Item Delimiters) are always stored in odd-numbered levels; even-numbered levels contain Items and SQ Delimiters.

Declaration:

MoveUp()

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RemoveCurrentElem

Group: Method

Description:

This method removes the Current Data Element from the Data Set. The new Current Data Element will be the Data Element following the one that was just removed, unless you have deleted the last DE, in which case the Current DE would be the "new" last DE.

If the Data Set is empty (there are no removable DEs remaining) the method returns False. The critical DEs cannot be removed. Non-removable DEs also Sequence and Item Delimiters.

Declaration:

RemoveCurrentElem() As Boolean

Return value:

Returns True if the Element has been removed.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Save

Group: Method

Description:

This method saves DICOM DataSet from the IGMedElemList object to the specified location. Use control parameters of DICOM format filter to control saving of the DataSet.

Declaration:

Save(Location As IGIOLocation)

Parameters:

Location
Location of the page. Currently, only File and Memory locations are supported.

Return value: N/A

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SaveToFile

Group: Method

Description:

This method saves DICOM DataSet from the IGMedElemList object to the specified file. Use control parameters of DICOM format filter to control saving of the DataSet.

Declaration:

SaveToFile(FileName As String)

Parameters:

FileName
File name of the file to save the DataSet to.

Return value: N/A

Bits Per Pixel: N/A

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateFrom

Group: Method

Description:

This method replaces contents of IGMedElemList with a copy of contents of the specified element list.

Declaration:

Sub UpdateFrom(List As IGMedElemList)

Parameters:

List
Element List to copy contents from


IGMedLUT

Group: Object

Description:

This object Represents Look Up Table that can be used for storing Presentation LUT or GSDF LUT.

Interface:

IIGMedLUT extends IIGIntegerArray

Class Members:

Item
property
Indexed get/set property
ItemBitCount
property
Specifies the bit count of each LUT entry
ItemSize
property
Specifies size of item in bits
Size
property
Specifies the number of LUT entries.
ChangeAttrs
method
Re-sizes array and changes bit count of item.
GetPtr
method
Gets raw pointer to the array of bytes
SetValuesTo
method
Sets all elements in the array to specified value


ChangeAttrs

Group: Method

Description:

This method re-sizes array and changes bit count of item.

Declaration:

ChangeAttrs(NewSize As Long, ItemBitCount As Short)

Parameters:

NewSize
New size of the array
ItemBitCount
Bit count of the item

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPtr

Group: Method

Description:

This method gets raw pointer to the array of bytes.

Declaration:

GetPtr() As Long

Return value:

Pointer to the array of bytes.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Item

Group: Property

Description:

This indexed get/put property determines index of item. Index can be within [0..Size-1] range.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read/Write
Settings:
0..Size-1
Bits Per Pixel:
N / A
Sample:
Med


ItemBitCount

Group: Property

Description:

This property specifies the bit count of each LUT entry. Valid values are 8..16. It affects the "output precision" of the LUT.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read only
Settings:
8... 16
Bits Per Pixel:
N / A
Sample:
Med


ItemSize

Group: Property

Description:

This property represents the size of item in bytes - always 2 (WORD).

Property Summary:

Data Type:
Short
Default Value:
N / A
Access:
Read only
Settings:
2
Bits Per Pixel:
N / A
Sample:
Med


SetValuesTo

Group: Method

Description:

This method sets all elements in the array to the specified value.

Declaration:

SetValuesTo (Value As Long)

Parameters:

Value
Value to set all elements in the array to.

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property specifies the number of LUT entries. It affects the "input precision" of the LUT. For 8-bit images, 256 entries are sufficient. Most of the medical images actualy use up to 12 bits per pixel, which corresponds to 4096 entries.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
256 (8-bit images), 4096 (12-bit images)
Bits Per Pixel:
8-16
Sample:
Med


IGMedMinMax

Group: Object

Description:

This object represents a pair of integer Min and Max values. It is used with the Processing. GetMinMax function.

Interface:

IIGMedMinMax

Class Members:

Max
property
Represents the maximum value
Min
property
Represents the minimum value


Max

Group: Property

Description:

This property represents the maximum value.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


Min

Group: Property

Description:

This property represents the minimum value.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


IGMedPage

Group: Object

Description:

This object provides access to all medical functionality for the image contained in an IGPage object.

Interface:

IIGMedPage

Class Members:

DataSet
property
Provides access to the DICOM DataSet
Display
property
Provides access to Medical Display functionality
FileMetaInfo
property
Provides access to the DICOM File Meta Information Header (Part10 header)
Page
property
IGPage object for which this IGMedPage was created
Preamble
property
Provides access to the DICOM Preamble
Processing
property
Provides access to Medical Image Processing functionality
AddDICOMStructure
method
Adds one of the following DICOM data structures: DataSet, FileMetaInfo or Preamble, if it is not already present.
ApplyOverlay
method
Loads overlay planes from DICOM metadata (DataSet) attached to the image and creates ART marks of type IMAGE_EMBEDDED for each overlay plane.
ApplyPresDataFrom
method
Extracts Presentation State data from DICOM DataSet of PresStatePage, and adjusts display of the IGMedPage based on this data, and on the StdDsplLUT, if it is not empty.
ApplyPresentationDataFrom
method
Extracts PS data from DICOM DataSet of PresStatePage , and adjusts display of the IGMedPage based on this data.
DataSetLUTExists
method
Checks whether the DataSet attached to the HIGEAR has a specified LUT sequence.
ExtractOverlay
method
Saves ART marks into DICOM dataset as overlay planes.
ExtractPresentationDataTo
method
This method adds Presentation State tags to the DataSet of hIGearPresState, based on the display settings of hIGear, and ART marks attached to it.
GetDataSetLUTCopy
method
Extracts LUT from ImGearPage's DataSet and returns it as a new IGLUT instance.
GetPresentationLUTCopy
method
Extracts Presentation LUT data from DICOM DataSet of IGPage.
IsDICOMStructurePresent
method
Checks whether the IGMedPage has the specified DICOM Data Structure
RemoveDICOMStructure
method
Removes DataSet, FileMetaInfo or Preamble.
UpdateDataSetLUTFrom
method
Adds specified LUT to the DataSet.
UpdatePresentationLUTFrom
method
Updates or adds Presentation LUT in the DICOM DataSet of IGPage.


AddDICOMStructure

Group: Method

Description:

This method adds one of the following DICOM data structures: DataSet, FileMetaInfo or Preamble to the image, if that structure is not already present.

If the image in the IGPage has been loaded from a valid, Part10 compliant DICOM image, all three structures will be present. If the image has been loaded from a raw DICOM file, not containing a File Meta Information header, only the DataSet structure will be present in the IGMedPage. And finally, if the image has been loaded from a non-DICOM file, such as TIFF or BMP, none of the structures will be present.

If you would like to save an image to a DICOM file, you need to ensure that the DataSet structure is present in the IGMedPage. Otherwise, the saving function will return an error.

If you are saving a Part10 compliant file, but the IGMedPage does not have a FileMetaInfo or Preamble structures, they will be written to the file using default values.

Once DataSet, FileMetaInfo or Preamble has been added to IGMedPage (or if they were created by the toolkit when loading a DICOM image), you can access them through the corresponding properties of the IGMedPage object.

One image can have only one instance of either of these structures. Thus, if a structure is already present in the IGMedPage, calling the AddDICOMStructure method with Type set to this structure type, will return an error.

Set Type to MED_STRUCTURE_TYPE_ALL to add all of the structures.

Declaration:

AddDICOMStructure(Type As enumIGMedDICOMStructureType)

Parameters:

Type
Specifies the type of the structure to add to the IGMedPage:
MED_STRUCTURE_TYPE_DATASET
MED_STRUCTURE_TYPE_FILEMETAINFO
MED_STRUCTURE_TYPE_PREAMBLE
MED_STRUCTURE_TYPE_ALL

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ApplyOverlay

Group: Method

Description:

Loads overlay planes from DICOM metadata (DataSet) attached to the image and creates ART marks of type IMAGE_EMBEDDED for each overlay plane. Each mark is placed in a separate ART group.

Overlay planes do not support specifying the colors (even black or white). An overlay pixel can only be visible or invisible. All visible overlay pixels are displayed with the same color, which is specified by the application and not stored in the DICOM DataSet. By default, ImageGear uses yellow color to display overlays. The application can change overlay color by going through all marks in the IGPage and changing image palette of IMAGE_EMBEDDED marks.

This function requires ART component to be attached to ImageGear.

Declaration:

Sub ApplyOverlay()


ApplyPresDataFrom

Group: Method

Description:

This method extracts Presentation State data from DICOM DataSet of PresStatePage, and adjusts display of the IGMedPage based on this data, and on the StdDsplLUT, if it is not empty.

This function may result in the following:

  • Adjust Display LUT associated with the image, using
    • VOI and Modality LUTs found in the presentation state DataSet
    • Presentation LUT found in the presentation state DataSet
    • StdDsplLUT parameter
  • Change display layout, including image rectangle, zoom and orientation
  • Add ART annotation objects

If there are no VOI or Modality LUT in the hIGearPresState, the function tries to find them in the DataSet of hIGear. If there are no such LUTs in hIGear, default values are taken.

If MED_PS_FEATURE_PRES_LUT bit flag is set in the Flags parameter, the function assumes that MED_PS_FEATURE_CONTRAST is set as well.

This method replaces IGMedPage. ApplyPresentationDataFrom. It works with the new class IGLUT, which is more flexible, and is supported by some new API methods.

Declaration:

ApplyPresDataFrom (PresState as IGMedPage, PageDisplay as
IGPageDisplay, Flags as Long, StdDsplLUT as IGLUT);

Parameters:

PresState
DICOM Page to extract PS Data from
PageDisplay
IGPageDisplay settings
Flags
PS flags parameter
StdDsplLUT
IGLUT object.

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ApplyPresentationDataFrom

Group: Method

Description:

This method extracts PS data from DICOM DataSet of PresStatePage , and adjusts display of the IGMedPage based on this data. If GSDFLUT.size is 0, then identity GSDF LUT is assumed.

This function may result in the following:

  • Adjust Display LUT associated with the image, using
    • VOI and Modality LUTs found in the presentation state DataSet
    • Presentation LUT found in the presentation state DataSet
    • GSDF LUT parameter
  • Change display layout, including image rectangle, zoom and orientation
  • Add ART annotation objects

If there are no VOI or Modality LUT in the hIGearPresState, the function tries to find them in the DataSet of hIGear. If there are no such LUTs in hIGear, default values are taken.

If MED_PS_FEATURE_PRES_LUT bit flag is set in the Flags parameter, the function assumes that MED_PS_FEATURE_CONTRAST is set as well.

Declaration:

ApplyPresentationDataFrom (PresState As IIGMedPage, PageDisplay
As IIGPageDisplay, Flags As Long, GSDFLUT As IIGMedLUT )

Parameters:

PresState
DICOM Page to extract PS Data from
PageDisplay
IGPageDisplay settings
Flags
PS flags parameter
GSDFLUT
GSDF LUT parameter

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DataSet

Group: Property

Description:

This property provides access to the DICOM DataSet structure. If the IGMedPage does not have a DataSet attached, for example, if IGMedPage contains an image that was loaded from a non-DICOM file, accessing this property will raise an error.

Use IGMedPage.IsDICOMStructurePresent method to check for presence of the DataSet. Use IGMedPage. AddDICOMStructure and IGMedPage. RemoveDICOMStructure to add or remove DataSet to (from) IGMedPage.

Property Summary:

Data Type:
IGMedElemList
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


Display

Group: Property

Description:

This property provides access to the Medical display functionality. The methods of the IGMedDisplay will affect the IGPage image associated with the IGMedPage object.

Property Summary:

Data Type:
IGMedDisplay
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


DataSetLUTExists

Group: Method

Description:

This function checks whether a presentation state page PresState, or the image IGMedPage contains specified LUT sequence.

This method supports the following LUT sequences:

  • DCM_TAG_ModalityLUTSequence
  • DCM_TAG_VOILUTSequence
  • DCM_TAG_PresentationLUTSequence

Declaration:

DataSetLUTExists (PresState As IGMedPage, LUTSequenceTag As
Long) as Boolean

Parameters:

PresState
Presentation state IGMedPage, which dataset is checked for presence of the LUT. Set to Nothing if no presentation state IGMedPage is available.
LUTSequenceTag
LUT sequence tag.

Return value:

True if LUT is present in either IGMedPage, False otherwise.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ExtractOverlay

Group: Method

Description:

Saves ART marks into DICOM dataset as overlay planes. Each ART group is saved into a separate overlay plane.

Since overlay planes do not support any types of graphic objects other than bitonal bitmaps, all ART marks from a group are converted into a bitmap before saving into an overlay.

Overlay planes do not support specifying the colors (even black or white). An overlay pixel can only be visible or invisible. All visible overlay pixels are displayed with the same color, which is specified by the application and not stored in the DICOM DataSet.

This function requires ART component to be attached to ImageGear.

Declaration:

Sub ExtractOverlay


ExtractPresentationDataTo

Group: Method

Description:

This function adds Presentation State tags to the DataSet of hIGearPresState, based on the display settings of hIGear, and ART marks attached to it. If any of the tags are already present in the hIGearPresState, they are overwritten.

This function may add/update the following tags/sequences in the hIGearPresState:

  • DCM_TAG_DisplayedAreaSelectionSequence
  • DCM_TAG_GraphicAnnotationSequence
  • DCM_TAG_GraphicLayerSequence
  • DCM_TAG_ImageHorizontalFlip
  • DCM_TAG_ImageRotation

To create a new presentation state DataSet, use the following steps:

  1. Create a new IGPage object, using IGImageAllocationParams.Compression = IG_BI_EMPTY
  2. Call ExtractPresentationDataTo to add Presentation State tags
  3. Add the other tags required by the Presentation State module using general DataSet access functions.
  4. Save Presentation State to file with SavePageToFile or similar methods, using Format = IG_FORMAT_DCM.

To modify an existing Presentation State DataSet, use the following steps:

  1. Load a Presentation State DataSet using LoadPageFromFile or similar methods
  2. Apply the Presentation State to a DICOM image, using IGMedPage.ApplyPresentationDataFrom method
  3. Change display settings or ART marks
  4. Extract Presentation Data from DICOM image back to Presentation State DataSet, using IGMedPage.ExtractPresentationDataTo
  5. Save Presentation State to file with SavePageToFile or similar methods, using Format = IG_FORMAT_DCM.

Declaration:

ExtractPresentationDataTo (PresState As IIGMedPage, PageDisplay
as IIGPageDisplay, Flags As Long)

Parameters:

PresState
DICOM Page to extract PS Data from
PageDisplay
IGPageDisplay settings
Flags
PS flags parameter

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FileMetaInfo

Group: Property

Description:

This property provides access to the DICOM File Meta Information Header structure. This structure is implemented as an IGMedElemList; however, FileMetaInfo is a much simpler object than DataSet, which is also implemented as a IGMedElemList. FileMetaInfo can not contain any SQ data elements, so all of its Data Elements are located at the top level. Also, FileMetaInfo can only contain Data Elements that have tag group number equal to 0002.

If the IGMedPage does not have a FileMetaInfo structure attached, accessing this property will raise an error.

Use IGMedPage. IsDICOMStructurePresent method to check for presence of the FileMetaInfo. Use IGMedPage. AddDICOMStructure and IGMedPage. RemoveDICOMStructure to add or remove FileMetaInfo to (from) IGMedPage.

FileMetaInfo object does not include the Preamble, because it is not formed as a Data Element. Preamble is a separate member of IGMedPage.

Property Summary:

Data Type:
IGMedElemList
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


GetDataSetLUTCopy

Group: Method

Description:

This method returns a new instance of IGLUT object with the specified LUT from either presentation state IGMedPage (PresState) DataSet, or the image IGMedPage DataSet. If the LUT exists in both the Presentation state DataSet, and in the image DataSet, the function returns the LUT from Presentation State DataSet.

This function supports the following LUT sequences:

  • DCM_TAG_ModalityLUTSequence
  • DCM_TAG_VOILUTSequence
  • DCM_TAG_PresentationLUTSequence

Declaration:

GetDataSetLUTCopy (PresState As IGMedPage, LUTSequenceTag As
Long) as IGLUT

Parameters:

PresState
Presentation state IGMedPage, which dataset is checked for presence of the LUT. Set to Nothing if no presentation state IGMedPage is available.
LUTSequenceTag
Sequence Tag

Return value:

New instance of IGLUT object.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetPresentationLUTCopy

Group: Method

Description:

Extracts Presentation LUT data from DICOM DataSet of IGPage. The IGPage should contain a Presentation State DataSet. Normal DICOM images do not contain a Presentation LUT.

Declaration:

GetPresentationLUTCopy () As IIGMedLUT

Return value:

Presentation LUT data from DICOM DataSet of IGPage.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IsDICOMStructurePresent

Group: Method

Description:

This method checks if the IGMedPage has a DICOM structure attached. The following DICOM data structures can be attached to IGMedPage: DataSet, FileMetaInfo and Preamble.

See description of the AddDICOMStructure method for more details.

Declaration:

IsDICOMStructurePresent(Type As enumIGMedDICOMStructureType) As
Boolean

Parameters:

Type
Specifies the type of the structure to check for presence

Return value:

True, if the specified structure is present.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Page

Group: Property

Description:

This property the IGPage object associated with this IGMedPage.

Property Summary:

Data Type:
IGPage
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


Preamble

Group: Property

Description:

This property provides access to the DICOM Preamble.

Property Summary:

Data Type:
IGMedPreamble
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


Processing

Group: Property

Description:

This property provides access to the Medical Image Processing functionality. Methods of the IGMedProcessing will affect the IGPage image associated with the IGMedPage object.

Property Summary:

Data Type:
IGMedProcessing
Default Value:
N / A
Access:
Read
Settings:
N / A
Bits Per Pixel:
N / A
Sample:
Med


RemoveDICOMStructure

Group: Method

Description:

This method removes a DICOM structure from the IGMedPage. The following DICOM data structures can be attached to IGMedPage: DataSet, FileMetaInfo and Preamble.

See description of the AddDICOMStructure method for more details.

Declaration:

RemoveDICOMStructure(Type As enumIGMedDICOMStructureType)

Parameters:

Type
Specifies the type of the structure to remove

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdateDataSetLUTFrom

Group: Method

Description:

This method adds specified LUT to the DataSet. The function supports the following LUTs:

  • LUT - Sequence Tag
  • Modality LUT - DCM_TAG_ModalityLUTSequence
  • VOI LUT - DCM_TAG_VOILUTSequence
  • Presentation LUT - DCM_TAG_PresentationLUTSequence

Declaration:

UpdateDataSetLUTFrom (LUTSequenceTag as long, LUT as IGLUT);

Parameters:

LUTSequenceTag
LUT sequence tag.
LUT
IGLUT object.

Return value:

None

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


UpdatePresentationLUTFrom

Group: Method

Description:

This method updates or adds Presentation LUT in the DICOM DataSet of IGPage. The IGPage should contain a Presentation State DataSet. Normal DICOM images shall not contain a Presentation LUT.

Declaration:

UpdatePresentationLUTFrom () As IIGMedLUT

Return value:

Updated or added Presentation LUT in the DICOM DataSet of IGPage.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGMedPixPaddingSettings

Group: Object

Description:

This object represents Pixel Padding settings, used to display medical images. See IGMedDisplay . UpdatePixPaddingSettingsFrom for detailed description on how IG Medical Component works with Pixel Padding settings.

Interface:

IIGMedPixPaddingSettings

Class Members:

PixPaddingValue
property
Specifies the Pixel Value which is used to fill unused ares of the image.
ShowPaddingAs
property
Specifies the grayscale value to display pixels equal to the Pixel Padding Value.
UsePixPadding
property
Specifies whether to use Pixel Padding settings when displaying a 9..16g image


PixPaddingValue

Group: Property

Description:

Specifies the Pixel Value which is used to fill unused ares of the image.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / Write
Settings:
-32768..32767 if image is signed
0..65535 if image is unsigned
Use IGPage.Signed property to check whether the image is signed.
Bits Per Pixel:
9..16g
Sample:
Med


ShowPaddingAs

Group: Property

Description:

Specifies the grayscale value to display pixels equal to the Pixel Padding Value.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / Write
Settings:
0..255
Bits Per Pixel:
9..16g
Sample:
Med


UsePixPadding

Group: Property

Description:

Specifies whether to use Pixel Padding settings when displaying a 9..16g image.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read / Write
Settings:
True, False
Bits Per Pixel:
9..16g
Sample:
Med


IGMedPreamble

Group: Object

Description:

This object provides access to DICOM Preamble. Preamble is an array of 128 bytes, which is placed at the beginning of a Part10 compliant DICOM file. Usage of IGMedPreamble object is similar to that of IGIntegerArray object.

See description of IGMedPage.Preamble for more details.

Interface:

IIGMedPreamble

Class Members:

Item
property
This indexed property provides access to the Preamble array element.
ItemSize
property
This property returns the size of the Preamble array element in bytes: always returns 1
Size
property
This property returns the number of elements in the Preamble array: always returns 128.
SetValuesTo
method
This method sets all elements in the Preamble array to the specified value.


Item

Group: Property

Description:

This indexed property provides access to the Preamble array element.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / Write
Index:
0..127
Settings:
0..255
Bits Per Pixel:
N/A
Sample:
Med


ItemSize

Group: Property

Description:

This property returns the size of the Preamble array element in bytes. Since Preamble is a byte array, this property always returns 1.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read
Settings:
1
Bits Per Pixel:
N / A
Sample:
Med


SetValuesTo

Group: Method

Description:

This method sets all elements in the Preamble to the specified value.

Declaration:

SetValuesTo(Value As Long)

Parameters:

Value
Value to be used for filling the array

Return value: N/A

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Size

Group: Property

Description:

This property returns the number of elements in the Preamble array. Since Preamble is a fixed size array, this property always returns 128.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read
Settings:
128
Bits Per Pixel:
N / A
Sample:
Med


IGMedProcessing

Group: Object

Description:

This object provides access to the medical image processing functionality.

Interface:

IIGMedProcessing

Class Members:

GetMinMax
method
Calculates image's min and max pixel values
HighBitTransform
method
Normalize
method
Changes pixel values so that the minimum value is Min. The resulting image is always unsigned.
PromoteTo16Gray
method
Promotes a 8 bit grayscale image to 9...16 bit grayscale
ReduceWithDisplayLUT
method
Reduces image from 9...16 bit grayscale to 8 bit grayscale using its 16x8 display LUT.
ReduceWithDownshift
method
Reduces image from 9...16 but grayscale to 8 bit grayscale using downshift.
ReduceWithLUT
method
Reduces image from 9...16 bit grayscale to 8 bit grayscale using specified 16x8 LUT.
TabulateHistogram16Gray
method
Tabulates histogram for a 8..16 bit grayscale image.
TransformHighBit
method
Shifts image pixels bits up or down to accomodate the new HighBit setting.


GetMinMax

Group: Method

Description:

This method scans an 8- or 16-bit grayscale image and returns the minimum and maximum pixel values. If the image is 16-bit signed then the returned values are also signed, otherwise returned values are unsigned.

When a 16-bit grayscale image is unsigned it has pixel values between 0 and 65535. If an image is "signed" it has pixel values between -32768 and +32767. The knowing whether the image is signed or unsigned will help you to interpret the minimum and maximum values. Use IGPage.Signed property to find out whether the image is signed.

Declaration:

GetMinMax() As IGMedMinMax

Return value:

IGMedMinMax object containing minimum and maximum values.

Bits Per Pixel: 8..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


HighBitTransform

Group: Method

Description:

This method sets all elements in the Preamble to the specified value.

Declaration:

SetValuesTo(Value As Long)

Parameters:

Value
This method sets all elements in the Preamble array to the specified value.

Return value:

IGMedMinMax object containing minimum and maximum values.

Bits Per Pixel: 8..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Normalize

Group: Method

Description:

This method's main purpose is to convert the pixel data of a 16-bit image from signed to unsigned. If you use it for this reason, set Min to 0. It can also be used to convert the minimum pixel value for the image. To do this, set Min to greater than 0. This method works by first searching the image for the minimum pixel value. It maps this value to Min. Then, all pixel values are linearly adjusted to maintain the original contrast. If Min is equal to the minimum pixel value in the image, then no change is made. The resulting image remains 16-bits.

Declaration:

Normalize(Min As Long)

Parameters:

Min
Specifies the minimum pixel value for the resulting image

Return value: N/A

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PromoteTo16Gray

Group: Method

Description:

This method promotes a 8 bit grayscale image to 9...16 bit grayscale. The original 8-bit image is discarded.

Declaration:

PromoteTo16Gray(BitsStored As Long, HighBit As Long)

Parameters:

BitsStored
This parameter specifies the number of bits that will be used by the image.
HighBit
An integer variable that sets the high bit for the new 16-bit image. The eighth bit of the original 8 bits is positioned here. If the image is saved as a DICOM, this information is saved to the High Bit Data Element (0028,0102).

Return value: None

Bits Per Pixel: 8g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithDisplayLUT

Group: Method

Description:

Reduces image from 9...16 but grayscale to 8 bit grayscale using its 16x8 display LUT. The 16-bit image is discarded and replaced with the new 8-bit grayscale image.

NOTE: Once this method is called, the display LUT is thrown away, since the image now has 8 bits per pixel.

Declaration:

ReduceWithDisplayLUT()

Parameters: N/A

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithDownshift

Group: Method

Description:

This method is used to downshift a chosen range of 8 bits (out of a maximum of 16) to the 256 pixel values that can be shown on an 8-bit display device. For example, if you set Downshift to 8, and the image has 16 bpp, bits 8-15 are downshifted and used alone as the pixel values. The 16-bit image is discarded and replaced with the new 8-bit grayscale image.

Declaration:

ReduceWithDownshift(Downshift As Long)

Parameters:

Downshift
Specifies the amount of downshifting to perform.

Return value: N/A

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithLUT

Group: Method

Description:

This method reduces image from 9...16 bit grayscale to 8 bit grayscale using specified 16x8 LUT.

Declaration:

ReduceWithLUT(pLUT As IGIntegerArray)

Parameters:

pLUT
Specified LUT

Return value: N/A

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TabulateHistogram16Gray

Group: Method

Description:

This method tabulates and returns the histogram of a 8 or 16-bit grayscale image.

BinWidth is used to determine the range of pixel values that are to be counted in their own bin. A value of 1 indicates that each pixel value is to be counted in its own histogram bin. A value of 2 would allow neighboring values (such as 128 and 129) to be counted as a single bin (as a single value). If BinWidth = possible_pixel_values then only a single histogram bin (4 bytes) is filled and the bin count is equal to the number of pixel values counted.

Specifies the number of bins to allocate for the histogram. For n-bit image, 2^n bins are sufficient; for 8-bit image this makes 256 bins, and for 16-bit image- 65536 bins. If a pixel value is encountered that would overflow BinCount it is ignored. This pixel value will not be included in the sum returned in Count (you can use this fact to determine if any values were ignored).

Declaration:

TabulateHistogram16Gray(BinWidth As Long, BinCount As Long) As
IGIntegerArray

Parameters:

BinWidth
Specifies the range of pixel values to be counted into one bin.
BinCount
Specifies the number of bins to allocate for the histogram.

Return value:

Object of type IGIntegerArray containing the histogram.

Bits Per Pixel: 8..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TransformHighBit

Group: Method

Description:

This method changes the High Bit Data Element of the currently loaded DICOM 16-bit grayscale image. The 16-bits are shifted up or down as needed to accommodate the new High Bit value, and the High Bit Data Element is updated. Zeros are shifted in as needed.

Declaration:

TransformHighBit(NewHighBit As Long)

Parameters:

NewHighBit
Specifies the New High bit value

Return value: N/A

Bits Per Pixel: 9..16g

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGMedTagInfo

Group: Object

Description:

This object represents information about a DICOM Tag. This information is obtained either from the user defined Data Dictionary, or from the static predefined Data Dictionary.

Note the difference between IGMedTagInfo and IGMedElemList. IGMedTagInfo provides information about the tag from the Data Dictionary, not related to any particular image or Data Element. IGMedElemList provides information on the data stored in the particular Data Element.

See IGMedDataDict object description for more detail.

Interface:

IIGMedTagInfo extends IIGObject

Class Members:

Name
property
Name of the Tag.
Tag
property
32-bit Tag number
ValueMultiplicity
property
Value Multiplicity of the Tag
ValueRepresentation
property
Value Representation of the tag
Version
property
Version of DICOM specification that introduced this tag, such as 3.0.


Name

Group: Property

Description:

This property specifies the printable name of the tag.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read / Write
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


Tag

Group: Property

Description:

This property specifies the 32-bit Tag number. It can be one of the enumIGMedTag constants, or a private tag number.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / write
Settings:
any
Bits Per Pixel:
N / A
Sample:
Med


ValueMultiplicity

Group: Property

Description:

This property specifies Value Multiplicity of the Tag.

Value Multiplicity tells you how many items can be stored in this type of Data Element. Set it to a positive integer if the Tag must contain a specific number of Items. Set it to 0 if the Tag can have an unlimited number of Items. Set to a negative integer if the Tag can have a limited number of items up to the absolute value of the provided VM.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read / Write
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


ValueRepresentation

Group: Property

Description:

Specifies Value Representation of the Tag. Value Representation defines the type or format of the data associated with the Tag.

Property Summary:

Data Type:
enumIGMedVR
Default Value:
MED_DCM_VR_NONE
Access:
Read / Write
Settings:
See enumIGMedVR
Bits Per Pixel:
N / A
Sample:
Med


Version

Group: Property

Description:

This property specifies the version of DICOM specification that introduced this tag, such as 3.0.

Property Summary:

Data Type:
Integer
Default Value:
0
Access:
Read / Write
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


IGMedVRInfo

Group: Object

Description:

This object represents information on DICOM Value Representation.

Interface:

IIGMedVRInfo

Class Members:

ID
property
An enumIGMedVR constant specifying the Value Representation
ItemType
property
Specifies Item Type that IG Medical Component uses to access data of this Value Representation
Length
property
Specifies the fixed, or maximum length in bytes of one value of this Value Representation.
Restriction
property
Specifies Value Representation length restriction flags
StringID
property
Two-character identifier used in DICOM to identify the Value Representation


ID

Group: Property

Description:

An enumIGMedVR constant specifying the Value Representation.

Property Summary:

Data Type:
enumIGMedVR
Default Value:
N / A
Access:
Read
Settings:
See enumIGMedVR
Bits Per Pixel:
N / A
Sample:
Med


ItemType

Group: Property

Description:

Specifies Item Type that IG Medical Component uses to access data of this Value Representation.

Property Summary:

Data Type:
enumIGSysDataType
Default Value:
N / A
Access:
Read
Settings:
See enumIGSysDataType
Bits Per Pixel:
N / A
Sample:
Med


Length

Group: Property

Description:

Specifies the fixed, or maximum length in bytes of one value of this Value Representation. This is the length in bytes of a single value of the specified type. This property should be used in conjunction with the Restriction property.

    • If Restriction is MED_DCM_LEN_FIXED, data of this VR must have a fixed length, specified by the Length property. For example, a VR of "SL" has a fixed length of 4 bytes per item. If the VM allows more than a single data value, then each one will take up 4 bytes.
    • If Restriction is MED_DCM_LEN_MAX, data of this VR can occupy up to the maximum length specified by the Length property. For example, "PN" and "UI" both have a maximum of 64 bytes.
    • If Restriction is MED_DCM_LEN_UNLIMITED, data of this VR can have any length. The Length property shall be ignored in this case.
    • In case of SQ Value Representation, Restriction is set to MED_DCM_LEN_NA ("Not Applicable)", because Data Elements of this VR do not store any actual data, but rather contain an embedded Data Set. The Length property shall be ignored in this case.

Property Summary:

Data Type:
Long
Default Value:
N / A
Access:
Read
Settings:
Any
Bits Per Pixel:
N / A
Sample:
Med


Restriction

Group: Property

Description:

Specifies Value Representation length restriction. See Length property for more detailed description.

Property Summary:

Data Type:
enumIGMedVR
Default Value:
N / A
Access:
Read
Settings:
See enumIGMedVR
Bits Per Pixel:
N / A
Sample:
Med


StringID

Group: Property

Description:

Returns a two-character identifier used in DICOM to identify the Value Representation, such as "OB", "SQ", etc.

Property Summary:

Data Type:
String
Default Value:
N / A
Access:
Read
Settings:
"AE", "AS", "AT", "CS", "DA", "DS", "DT", "FL", "FD",
"IS", "LO", "LT", "OB", "OF", "OW", "PN", "SH", "SL", "SQ",
"SS", "ST", "TM", "UI", "UL", "US", "UN", "UT"
Bits Per Pixel:
N / A
Sample:
Med


MD Component Enumerations

This section of the Manual provides an alphabetized reference of enumerations defined in ImageGear MD component:

    • enumIGMedColorSchemes
    • enumIGMedDICOMStructureType
    • enumIGMedLevelOption
    • enumIGMedObjType
    • enumIGMedPhotoInt
    • enumIGMedPixelRep
    • enumIGMedPlanarConfig
    • enumIGMedSOP
    • enumIGMedTag
    • enumIGMedTS
    • enumIGMedVR
    • enumIGMedVRRestriction


enumIGMedColorSchemes

Group: Enumeration

Description:

Identifies medical pseudocoloring schemes

Values:

MED_PSEUDOCOLOR_OFF
Reset to Grayscale
MED_PSEUDOCOLOR_OIL_FILM
Oil Film
MED_PSEUDOCOLOR_DARK_BLUE_TO_BRIGHT_RED
Dark Blue to Bright Red
MED_PSEUDOCOLOR_GREEN_TO_RED
Green to Red
MED_PSEUDOCOLOR_RED_GREEN_BLUE
Red, Green, Blue
MED_PSEUDOCOLOR_THERMAL
Thermal
MED_PSEUDOCOLOR_BRIGHT_RAINBOW
Bright Rainbow


enumIGMedDICOMStructureType

Group: Enumeration

Description:

Identifies the types of DICOM Data Structures, which can be attached to IGMedPage.

Values:

MED_STRUCTURE_TYPE_NONE
No structure type
MED_STRUCTURE_TYPE_DATASET
DICOM Data Set
MED_STRUCTURE_TYPE_FILEMETAINFO
DICOM File Meta Information Header
MED_STRUCTURE_TYPE_PREAMBLE
DICOM Preamble
MED_STRUCTURE_TYPE_ALL
All DICOM structures


enumIGMedLevelOption

Group: Enumeration

Description:

Identifies DICOM Element List level navigation options.

Values:

MED_DCM_MOVE_LEVEL_FIXED
This setting tells the method to move only within the same level as the previous Current Data Element. Any SQs and all of their Data Elements will be skipped over. If you are in an SQ you can only move within the SQ.
MED_DCM_MOVE_LEVEL_FLOAT
This setting tells the method to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ the Current DE moves back to the lower levels (for example, from Level 2 to Level 1).


enumIGMedObjType

Group: Enumeration

Description:

Identifies types of creatible objects used by the Medical component

Values:

MED_OBJ_TAG_INFO
IGMedTagInfo type
MED_OBJ_CONTRAST
IGMedContrast type


enumIGMedPhotoInt

Group: Enumeration

Description:

Identifies DICOM Photometric Interpretations. See DICOM specification PS 3.3 C.7.6.3.1.2 for more details.

Values:

MED_DCM_PHOTO_INT_ARGB
Retired
MED_DCM_PHOTO_INT_CMYK
Retired
MED_DCM_PHOTO_INT_HSV
Retired
MED_DCM_PHOTO_INT_MONOCHROME1
Pixel data represent a single monochrome image plane. The minimum sample value is intended to be displayed as white.
MED_DCM_PHOTO_INT_MONOCHROME2
Pixel data represent a single monochrome image plane. The minimum sample value is intended to be displayed as black.
MED_DCM_PHOTO_INT_PALETTE_COLOR
Pixel data describe a color image with a single sample per pixel (single image plane). The pixel value is used as an index into each of the Red, Blue, and Green Palette Color Lookup Tables
MED_DCM_PHOTO_INT_RGB
Pixel data represent a color image described by red, green, and blue image planes.
MED_DCM_PHOTO_INT_UNKNOWN
Photometric interpretation is unknown.
MED_DCM_PHOTO_INT_YBR_FULL
Pixel data represent a color image described by one luminance (Y) and two chrominance planes (Cb and Cr).
MED_DCM_PHOTO_INT_YBR_FULL_422
The same as YBR_FULL except that the Cb and Cr values are sampled horizontally at half the Y rate and as a result there are half as many Cb and Cr values as Y values.
MED_DCM_PHOTO_INT_YBR_ICT
Irreversible Color Transformation. Pixel data represent a color image described by one luminance (Y) and two chrominance planes (Cb and Cr). Used with JPEG 2000 transfer syntax.
MED_DCM_PHOTO_INT_YBR_PARTIAL_422
The same as YBR_FULL_422 with certain limitations. See DICOM specification PS 3.3 for more detail.
MED_DCM_PHOTO_INT_YBR_RCT
Reversible Color Transformation. Pixel data represent a color image described by one luminance (Y) and two chrominance planes (Cb and Cr). Used with JPEG 2000 transfer syntax.


enumIGMedPixelRep

Group: Enumeration

Description:

Identifies DICOM Pixel Representations.

Values:

MED_DCM_PIXEL_REP_2S_COMPLEMENT
2's complement signed integer
MED_DCM_PIXEL_REP_UNKNOWN
Unknown
MED_DCM_PIXEL_REP_UNSIGNED
Unsigned integer


enumIGMedPlanarConfig

Group: Enumeration

Description:

Identifies DICOM Planar Configurations.

Values:

MED_DCM_PLANAR_PIXEL_BY_PIXEL
Pixels are stored pixel-by-pixel
MED_DCM_PLANAR_PLANE_BY_PLANE
Pixels are stored plane-by-plane


enumIGMedSOP

Group: Enumeration

Description:

Identifies DICOM SOP Classes. See DICOM Specification PS 3.6 Annex A for the full list of DICOM Unique Identifiers, which includes the SOP Classes.

Values:

MED_DCM_SOP_AMBULATORY_ECG_WAVEFORM_STORAGE
Ambulatory ECG Waveform Storage
MED_DCM_SOP_BASIC_ANNOTATION_BOX
Basic Annotation Box
MED_DCM_SOP_BASIC_COLOR_IMG_BOX
Basic Color Image Box
...
...
Please see the complete list of enumIGMedSOP constants in datatict.h include file.


enumIGMedTag

Group: Enumeration

Description:

Identifies DICOM tags

Values:

This enumeration currently includes more than 1800 DICOM tags, so they are not listed in this manual. The table below lists some of the most frequently used tags.

DCM_TAG_TransferSyntaxUID
(0002, 0010) Transfer Syntax UID of the DICOM file. This tells whether the DICOM file uses big or little endian format, which compression is used, if any, and whether the file uses Implicit or Explicit Value Representation syntax.
DCM_TAG_Rows
(0028, 0010) Height of the DICOM image
DCM_TAG_Columns
(0028, 0011) Width of the DICOM image
DCM_TAG_PixelData
(7fe0, 0010) Pixel Data of the DICOM image


enumIGMedTS

Group: Enumeration

Description:

Identifies DICOM Transfer Syntaxes.

Values:

The table below lists the most frequently used DICOM Transfer syntaxes:

MED_DCM_TS_IMPLICIT_VR_LE
Implicit VR Little Endian: Default Transfer Syntax
MED_DCM_TS_EXPLICIT_VR_LE
Explicit VR Little Endian
MED_DCM_TS_EXPLICIT_VR_BE
Explicit VR Big Endian
MED_DCM_TS_JPEG_BASELINE_PR_1
JPEG baseline (process 1) Transfer Syntax. In ImageGear, when used for image saving, allows both JPEG Baseline (process 1) and JPEG Extended Transfer Syntaxes. See also MED_DCM_TS_JPEG_BASELINE_PR_1_ONLY
MED_DCM_TS_JPEG_LOSSY
Same as MED_DCM_TS_JPEG_BASELINE_PR_1
MED_DCM_TS_JPEG_EXTENDED_PR_2_4
JPEG baseline (process 2&4) Transfer Syntax. In ImageGear, when used for image saving, allows both JPEG Baseline (process 1) and JPEG Extended Transfer Syntaxes.
MED_DCM_TS_JPEG_LOSSLESS
JPEG lossless non-hierachical Huffman transfer Syntax (process 14)
MED_DCM_TS_JPEG_LOSSLESS_FIRSTORDER
JPEG Lossless, Hierarchical, First-Order Prediction
MED_DCM_TS_JPEG_2K_LOSSLESS_ONLY
JPEG 2000 Lossless Only
MED_DCM_TS_JPEG_2K
JPEG 2000
MED_DCM_TS_RLE
RLE

The following constants are not defined by the DICOM standard, but are introduced by the IG Medical Component:

MED_DCM_TS_DEFAULT
Default transfer syntax: same as MED_DCM_TS_EXPLICIT_VR_LE
MED_DCM_TS_JPEG_BASELINE_PR_1_ONLY
Only used for image saving. Specifies JPEG baseline (process 1) Transfer Syntax.
MED_DCM_TS_UNKNOWN
Unknown Transfer Syntax
MED_DCM_TS_PART_10
This constant can be passed to the LOAD_SYNTAX image control parameter to load only those DICOM files that have a File Meta Information (Part 10) Header.
MED_DCM_TS_AUTODETECT
This constant can be passed to the LOAD_SYNTAX image control parameter to load any detectible DICOM files.


enumIGMedVR

Group: Enumeration

Description:

Identifies DICOM Value Representations.

Values:

MED_DCM_VR_AE
Application Entity
MED_DCM_VR_AS
Age Sting
MED_DCM_VR_AT
Attribute Tag
MED_DCM_VR_CS
Code String
MED_DCM_VR_DA
Date
MED_DCM_VR_DS
Decimal String
MED_DCM_VR_DT
Date Time
MED_DCM_VR_FL
Floating Point Single
MED_DCM_VR_FD
Floating Point Double
MED_DCM_VR_IS
Integer String
MED_DCM_VR_LO
Long String
MED_DCM_VR_LT
Long Text
MED_DCM_VR_OB
Other Byte String
MED_DCM_VR_OF
Other Float String
MED_DCM_VR_OW
Other Word String
MED_DCM_VR_PN
Person Name
MED_DCM_VR_SH
Short String
MED_DCM_VR_SL
Signed Long
MED_DCM_VR_SQ
Sequence of Itmes
MED_DCM_VR_SS
Signed Short
MED_DCM_VR_ST
Short Text
MED_DCM_VR_TM
Time
MED_DCM_VR_UI
Unique Identifier
MED_DCM_VR_UL
Unsigned Long
MED_DCM_VR_US
Unsigned Short
MED_DCM_VR_UN
Unknown
MED_DCM_VR_UT
Unlimited text
MED_DCM_VR_NONE
VR is not known


enumIGMedVRRestriction

Group: Enumeration

Description:

Identifies Value Representation length restrictions.

Values:

MED_DCM_LEN_MAX
Up to this maximum
MED_DCM_LEN_FIXED
Fixed Length
MED_DCM_LEN_TS
Depends on Trasfer Syntax
MED_DCM_LEN_NA
Not applicable
MED_DCM_LEN_UNLIMITED
No max length


ImageGear PDF Component API Reference

ImageGear PDF Component API Reference

ImageGear PDF component is responsible for the PDF functionality. The ImageGear PDF component exposes handles and objects described in the table below.

The general PDF layer is implemented via "PDF" objects (for example IGPDFDoc).

The PDF editing layer is implemented via "PDE" objects (for example IGPDEContent).

NOTE: This chapter links to the PDF reference (Adobe PDF 1.7 specification), which can be downloaded from here: http://partners.adobe.com/asn/tech/pdf/ specifications.jsp

The following table contains the objects and their descriptions supported by the ImageGear PDF component:

IGPDEClip
Clip - a list of elements containing a list of Paths and Texts that describe a clip state. Clips can be created and built up with PDE Clip methods. Any PDE Element object can have Clip associated with it. Clip objects can contain PDE Containers and PDE Groups to an arbitrary level of nesting. This allows PDE Containers to be used to mark clip objects.
PDE Groups inside PDE Clips that contain at least one PDE Text and no PDE Paths have a special meaning. All PDE Text objects contained in such a PDE Group are considered to be part of the same BT/ET block. This means that the union of these
PDE Texts makes up a single clipping path-as opposed to the intersection of the PDE Texts.
See Section 5.3 in the PDF reference for more information about BT/ET block.
IGPDEColorData
Fill in one of the following members of this union, then pass it to PDE ColorSpace creation routine. Please see section 7.10 of the PDF Reference Manual for information on color spaces.
IGPDEColorDataCalGray
CalGray color space.
IGPDEColorDataCalRGB
CalRGB color space.
IGPDEColorDataDeviceN
DeviceN color space.
IGPDEColorDataICCBased
ICC based color space.
IGPDEColorDataIndexed
Indexed color space.
IGPDEColorDataLab
L*a*b* color space.
IGPDEColorDataSeparation
Separation color space
IGPDEColorRange
Color range.
IGPDEColorSpace
ColorSpace - a reference to a color space used on a page in a PDF file. The color space is part of the graphics state attributes of a PDE Element.
IGPDEColorSpec
Color specification.
IGPDEColorValue
Color value.
IGPDEContainer
Container - a group of elements on a page in a PDF file. In the PDF file, containers are delimited by Marked Content BMC/EMC or BDC/EMC pairs. Every container has a Marked Content tag associated with it. In addition to grouping a set of elements, a BDC/EMC pair specifies a property list to be associated with the grouping. Thus a container corresponding to a BDC/EMC pair also has a property list dictionary associated with it.
See Section 10.5 in the PDF reference for more information about Marked Content operators.
IGPDEContent
Content - modifiable content of a PDF page, which contains elements. Content may be obtained from an existing page or from a Form XObject.
IGPDEContentAttrs
Attributes of a PDE Content object.
IGPDEDash
Dash specification, as described in Table 4.8 in the PDF Reference. See Section 4.3.2 for more information on line dash patterns.
IGPDEFilterArray
Filter information for streams. Array of FilterSpec elements. Usually consists of 2 filter elements: text encoding and image compression.
IGPDEFilterSpec
Filter element in a filter array.
IGPDEFont
Font - A reference to a font used on a page in a PDF file. It may be equated with a font in the system.
IGPDEFontAttrs
Attributes of a PDE Font and a PDF SysFont.
IGPDEFontCreateFromSysFontParams
Parameters for PDE font creation.
IGPDEForm
Form - an element that corresponds to an instance of XObject Form on a page (or other containing stream such as another XObject Form or annotation form). The context associated with this instance includes the actual stream that represents the XObject Form and the initial conditions of the graphics state. The latter consists of the transformation matrix, initial color values, and so forth. It is possible to have two Forms that refer to the same XObject Form. The forms will exist at different places on the same page, depending on the transformation matrix. They may also have different colors or line stroking parameters. In the case of a transparency group, the opacity is specified in the gstate.
Within a Form, each element has its own gstate (or is a container, place, or group object). These gstates are independent of the parent Form gstate. Form elements may have their own opacity.
Content may be obtained from a Form to edit the form's display list.
IGPDEGraphicState
Attributes of a PDE Element or a PDE Text sub-element.
IGPDEGroup
Group - an in-memory representation of objects in Content. It has no state and is not represented in any way in a content stream (that is, Content).
When used in a Clip, this object is used to associate Text objects into a single clipping object.
IGPDEImage
Image - an element that contains an Image XObject or in-line image. You can associate data or a stream with an image.
IGPDEImageAttrs
Attributes of a PDE Image object.
IGPDEPath
Path - an element that contains a path. Path objects can be stroked, filled, and/or serve as a clipping path.
IGPDEPlace
Place - an element that marks a place on a page in a PDF file. In a PDF file, a place is represented by the MP or DP Marked Content operators.
Marked content is useful for adding structure information to a PDF file. For instance, a drawing program may want to mark a point with information, such as the start of a path of a certain type. Marked content provides a way to retain this information in the PDF file. A
DP operator functions the same as the MP operator and, in addition, allows a property list dictionary to be associated with a place.
IGPDEPostScript
PostScript - an element representing in-line or XObject pass-through PostScript object. XObject PostScripts are listed in page XObject resources.
IGPDEPSAttrs
Attributes of a PDE PS object.
IGPDEShading
Shading - an element that represents smooth shading.
IGPDESoftMask
SoftMask- an object for creating and manipulating a soft mask in a PDF file.
IGPDEText
Text - an element representing text. It is a container for text as show strings or as individual characters. Each sub-element may have different graphics state properties. However, the same clip applies to all sub-elements of a Text. Also, the char path of a Text can be used to represent a clip.
IGPDETextItem
TextItem - a PDE element representing a text object.
IGPDETextState
Attributes of a PDE Text element.
IGPDEXGroup
XGroup - a transparency (XGroup) resource.
IGPDEXObject
XObject - an element representing an arbitrary XObject.
IGPDEXYZColor
XYZ color.
IGPDFAction
PDF action object, which is a task that performs when a user clicks on a link or a bookmark.
IGPDFAtom
Atom - a hashed token used in place of strings to optimize performance (it is much faster to compare Atoms than strings). Many methods use Atoms.
IGPDFAtomArray
Represents an array of PDF Atoms.
IGPDFAuthEventParams
Parameters used in the authorization event.
IGPDFBasArray
Basic Array - an array object is a one-dimensional collection of objects arranged sequentially. Unlike arrays in many other computer languages, PDF arrays may be heterogeneous; that is, an array's elements may be any combination of numbers, strings, dictionaries, or any other objects, including other arrays.
IGPDFBasBool
Basic Boolean - PDF provides boolean objects identified by the keywords true and false. Boolean objects can be used as the values of array elements and dictionary entries.
IGPDFBasDict
Basic Dictionary - a dictionary object is an associative table containing pairs of objects, known as the dictionary's entries. The first element of each entry is the key and the second element is the value. The key must be a name. The value can be any kind of object, including another dictionary.
IGPDFBasFixed
Basic Fixed - Fixed objects approximate mathematical real numbers, but with limited range and precision; they are typically represented in fixed-point, rather than floating-point, form.
IGPDFBasInt
Basic Integer - Integer objects represent mathematical integers within a certain interval centered at 0.
IGPDFBasName
Basic Name - A name object is an atomic symbol uniquely defined by a sequence of characters.
Uniquely defined means that any two name objects made up of the same sequence of characters are identically the same object. Atomic means that a name has no internal structure; although it is defined by a sequence of characters, those characters are not "elements" of the name.
IGPDFBasNull
Basic Null - The null object has a type and value that are unequal to those of any other object. There is only one object of type null, denoted by the keyword null.
IGPDFBasString
Basic String - A string object consists of a series of bytes-unsigned integer values in the range 0 to 255. The string elements are not integer objects, but are stored in a more compact format.
IGPDFBookmark
PDF bookmark object, which allows the user to navigate interactively from one part of the document to another.
IGPDFClipEnumerateEventParams
Parameters for IGPDFCtl . ClipEnumerate event.
IGPDFCtl
The control that you place in the user interface of your application, and which provides general ImageGear PDF Component functionality.
IGPDFDestination
PDF destination object represents a particular view of a page in a document.
IGPDFDoc
Document - the underlying PDF representation of a document. Through PDF Document, your application can perform most of the Edit Pages operations (delete, replace, and so on). Thumbnails can be created and deleted through this object. You can set and retrieve document information fields through this object as well.
IGPDFFixedMatrix
Matrix containing fixed numbers.
IGPDFFixedPoint
Point (in two-dimensional space) represented by two fixed numbers.
IGPDFFixedQuad
Quadrilateral represented by four fixed points (one at each corner). A quadrilateral differs from a rectangle in that the latter must always have horizontal and vertical sides, and opposite sides must be parallel.
IGPDFFixedRect
A rectangle represented by the coordinates of its four sides. A rectangle differs from a quadrilateral in that the former must always have horizontal and vertical sides, and opposite sides must be parallel.
IGPDFFont
PDF font object is used to draw text on a page.
IGPDFFontMetrics
PDF font metrics object is used to identify font metrics.
IGPDFFontStyle
PDF font style object is used to identify the style of the font used.
IGPDFLayer
Layer - a named object whose state can be toggled in a UI to affect changes in visibility of content.
IGPDFPage
Page - a single page in the PDF representation of a document. A page contains a series of objects representing the objects drawn on the page (Graphic), a list of resources used in drawing the page, annotations (Annotation), an optional thumbnail image of the page, and the beads used in any articles that occur on the page.
IGPDFPreflight
This class provides PDF preflight capabilities.
IGPDFPreflightReport
This class contains PDF preflight report in a tree form.
IGPDFPrintOptions
Used to control printing.
IGPDFSecurityData
PDF security data object describes data for the standard security handler.
IGPDFStream
Stream - a data stream that may be a buffer in memory, or an arbitrary user-written procedure. Typically used to extract or provide data.
IGPDFStreamReadEventParams
Parameters for the IGPDFCtl.StreamRead event.
IGPDFStreamWriteEventParams
Parameters for the IGPDFCtl.StreamWrite event.
IGPDFStyle
Style - provides access to information about the fonts, font sizes, and colors used in a Word.
IGPDFSysEncoding
SysEncoding - provides system encoding for a PDF file.
IGPDFSysFont
SysFont - a reference to a font installed in the host system. SysFont methods allow you to list the fonts available in the host system and to find a font in the system that matches a PDE Font, if it is present.
IGPDFSysFontEnumerateEventParams
Parameters for IGPDFCtl.SysFontEnumerate event.
IGPDFSysFontPlatData
PDF SysFont platform specific data.
IGPDFWord
Word - a word in a PDF file. Each word contains a sequence of characters in one or more styles (see Style).
IGPDFWordFinder
WordFinder - extracts words from a PDF file, and enumerates the words on a single page or on all pages in a document..
IIGPDEObject
Object - base interface for all the PDE objects.
IIGPDEElement
Element - base interface for the elements of a page display list (PDE content) and for clip objects. The general PDE element methods allow you to get and set general element properties.
IIGPDFBasObj
Basic Object - basic PDF object interface. PDF supports eight basic types of objects:
  • Boolean values
  • Integer and Fixed (real) numbers
  • Strings
  • Names
  • Arrays
  • Dictionaries
  • Streams
  • The null object
Objects may be labeled so that they can be referred to by other objects. A labeled object is called an indirect object.
IIGPDFDictionary
PDF Dictionary interface.
IIGPDFLayerArray
PDF Layer Array interface.


General API

General ImageGear PDF control, properties, methods, events:

  • IGPDFCtl


IGPDFCtl

Group: Control

Description:

IGPDFCtl is the control that you place in the user interface of your application, which provides general ImageGear PDF Component methods (including PDF class factory) and events. The IGPDFCtl is used to create the other PDF objects documented in this document. The fixed math utilities, for fixed data transformaiton, are accessed through the IGPDFCtl.

Interfaces:

IIGPDFCtl extends IIGPDF

IIGPDF extends IIGComponent

Class Members:

ComponentInfo
Property
Provides access to the IGComponentInfo object for IGPDFCtl.
ComponentInterface
Property
Converts LongValue to a PDF fixed value and returns it.
CreateAction
Method
Creates a new action object.
CreateActionFromDestination
Method
Creates a new action that takes the user to the specified destination view. This method can only be used for destinations in the same document as the source document.
CreateActionFromFileName
Method
Creates an action of the specified type from a file name.
CreateActionFromPointer
Method
Creates an action of the specified type from a pointer.
CreateBasArray
Method
Creates a new array object associated with the specified document and having the specified value.
CreateBasBool
Method
Creates a new boolean object associated with the specified document and having the specified value.
CreateBasDict
Method
Creates a new dictionary object associated with the specified document and having the specified value.
CreateBasFixed
Method
Creates a new fixed object associated with the specified document and having the specified value.
CreateBasInt
Method
Creates a new integer object associated with the specified document and having the specified value.
CreateBasName
Method
Creates a new name object associated with the specified document and having the specified value.
CreateBasNull
Method
Creates a direct null object.
CreateBasString
Method
Creates a new string object associated with the specified document and having the specified value.
CreateDestination
Method
Creates a new destination object.
CreateObject
Method
Creates a new instance of object that implements IIGObject interface.
CreatePDEClip
Method
Creates an empty clip object.
CreatePDEColorSpace
Method
Creates a new color space object of the specified type.
CreatePDEContainer
Method
Creates a container object.
CreatePDEContent
Method
Creates empty PDEContent.
CreatePDEFont
Method
Creates a new PDE Font from the specified parameters.
CreatePDEFontFromSysFont
Method
Creates a PDE Font corresponding to a font in the system.
CreatePDEFontFromSysFontAndEncoding
Method
Creates a PDE Font from SysFont and SysEncoding.
CreatePDEFontFromSysFontWithParams
Method
Used to obtain a PDE Font corresponding to a font in the system.
CreatePDEForm
Method
Creates a new form from an existing object.
CreatePDEGroup
Method
Creates a PDE Group object.
CreatePDEImage
Method
Creates an image object.
CreatePDEPath
Method
Creates an empty path element.
CreatePDEPlace
Method
Creates a place object.
CreatePDEPostScript
Method
Creates a PDE PostScript object.
CreatePDEShading
Method
Creates a smooth shading object.
CreatePDESoftMask
Method
Creates a new soft mask object.
CreatePDESoftMaskFromName
Method
Creates a new soft mask object.
CreatePDEText
Method
Creates empty text object.
CreatePDETextItem
Method
Creates a text item element containing a character or text run, which can be added to a PDE Text object.
CreatePDEXGroup
Method
Creates a new XGroup of the given type.
CreatePDEXObject
Method
Creates a new XObject from BasObj.
CreatePDFDoc
Method
Creates IGPDFDoc object to work with PDF document content. At the end of processing destroy the IGPDFDoc object
CreatePDFPage
Method
Creates IGPDFPage object to work with PDF page content. At the end of processing destroy the IGPDFPage object
CreatePreflight
Method
Creates new preflight class for the specified PDF document.
CreateSysEncodingFromBaseName
Method
Creates an encoding object from base name.
CreateSysEncodingFromCMapName
Method
Creates an encoding object from a PDF CMap name.
CreateSysEncodingFromCodePage
Method
Creates an encoding object from a code page.
DoubleToFixed
Method
Converts DoubleValue to a PDF fixed value and returns it.
EnumerateClipElements
Method
For a given PDE Clip, enumerates all of the PDE Elements in a flattened manner with ClipEnumerate event.
EnumerateSysFont
Method
Enumerates all of the system fonts with SysFontEnumerate event.
ExtractText
Method
Extracts text from pages determined by arguments nStartPage and nPageCount
FindSysFont
Method
Finds a system font that matches the requested attributes.
FindSysFontForPDEFont
Method
Finds a system font that matches the requested Font.
FixedRoundToLong
Method
Converts FixedValue to an integer, rounding it to the nearest long integer value and returns it.
FixedRoundToShort
Method
Converts FixedValue to an integer, rounding it to the nearest short integer value and returns it.
FixedToDouble
Method
Converts FixedValue to double value and returns it.
FixedTruncToLong
Method
Converts FixedValue to an integer, truncating it to the next lower long integer value and returns it.
FixedTruncToShort
Method
Converts FixedValue to an integer, truncating it to the next lower short integer value and returns it.
GetDefaultGState
Method
Gets default graphic state.
GetHostEncoding
Method
Indicates what kind of host encoding a system uses.
LongToFixed
Method
Converts LongValue to a PDF fixed value and returns it.
RegisterAuthorizationEvent
Method
Registers the authorization event, which will be called when open a secured PDF file.
RegisterStreamEvent
Method
Registers read or write data-producing event.
ShortToFixed
Method
Converts ShortValue to a PDF fixed value and returns it.
TranslateToHost
Method
Translates a string from Unicode or PDFDocEncoding to host encoding.
TranslateToPDF
Method
Translates a string from host encoding to PDFDocEncoding or Unicode.
Authorization
Event
Event used by document open routine. It is called when an encrypted document is being opened, to determine whether or not the user is authorized to open the file.
ClipEnumerate
Event
PDE clip enumeration event for EnumerateClipElements, which enumerates all of a PDE Clip's PDE Elements in a flattened manner.
StreamRead
Event
Event procedure that reads data to the Stream registered with RegisterStreamEvent.
StreamWrite
Event
Event procedure that writes data to the Stream registered with RegisterStreamEvent.
SysFontEnumerate
Event
SysFont enumeration event for EnumerateSysFont. It is called once for each system font.


Authorization

Group: Event

Description:

Event used by document open routine. It is called when an encrypted document is being opened, to determine whether or not the user is authorized to open the file.

This event implements whatever authorization strategy you choose and calls the appropriate security handler (the one that was used to secure the document) to obtain and check authorization data.

This event should obtain whatever information is needed to determine whether the user is authorized to open the file, then call PermRequest (which returns the permissions that the authentication data enables).

Declaration:

Authorization(Params As IGPDFAuthEventParams)

Parameters:

Params
Event's parameters (see IGPDFAuthEventParams)

Return Value:

N/A


ClipEnumerate

Group: Event

Description:

PDE clip enumeration event for EnumerateClipElements, which enumerates all of a PDE Clip's PDE Elements in a flattened manner.

Declaration:

ClipEnumerate (ByVal Parameters As
IGPDFClipEnumerateEventParams)

Parameters:

Parameters
IGPDFClipEnumerateEventParams specifies the parameters for this event.

Return Value:

N/A


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGPDFCtl. The IGComponentInfo object identifies the particular version of IGPDFCtl installed in the computer.

Property Summary:

Access
Read-only
Data type
IGComponentInfo
Default value
N/A


ComponentInterface

Group: Property

Description:

Converts LongValue to a PDF fixed value and returns it.

Property Summary:

Access
Read-only
Data type
IIGComponent
Default value
N/A


CreateAction

Group: Method

Description:

Creates a new action object.

Declaration:

CreateAction(Document As IGPDFDoc, Type As IGPDFAtom) As
IGPDFAction

Parameters:

Document
The document in which the action is created and used.
Type
The atom corresponding to the action's subtype.

Return Value:

The newly created action object.


CreateActionFromDestination

Group: Method

Description:

Creates a new action that takes the user to the specified destination view. This method can only be used for destinations in the same document as the source document. Cross-document links must be built up from the base level, populating the Action dictionary for the GotoR action as described in Section 8.5.3 in the PDF Reference.

Declaration:

CreateActionFromDestination(Document As IGPDFDoc, Destination
As IGPDFDestination) As IGPDFAction

Parameters:

Document
The document in which the action is created and used.
Destination
The destination.

Return Value:

The newly created action object.


CreateActionFromFileName

Group: Method

Description:

Creates an action of the specified type from a file name.

Declaration:

CreateActionFromFileName(Document As IGPDFDoc, Type As
IGPDFAtom, FileName As String) As IGPDFAction

Parameters:

Document
The document in which the action is created and used.
Type
The type of action to create.
FileName
The file name.

Return Value:

The newly created action object.


CreateActionFromPointer

Group: Method

Description:

This method is used to create IGPDFAction object from a pointer to IGArtXHotSpot mark's link data when IGArtXHotSpot mark represents PDF Link annotation.

Declaration:

    CreateActionFromPointer(PDFActionPointer As LONG_PTR) As
IGPDFAction

Parameters:

PDFActionPointer
The pointer

Return Value:

IGPDFAction object.


CreateBasArray

Group: Method

Description:

Creates a new array object associated with the specified document and with the specified value.

Declaration:

CreateBasArray (Doc As IGPDFDoc, Indirect As Boolean, Elements
As Long) As IGPDFBasArray

Parameters:

Doc
The document in which the array is used.
Indirect
If True, creates the array as an indirect object. If False, creates the array as a direct object.
Elements
Number of entries in the array. This value is only a hint - the arrays grow dynamically as needed.

Return Value:

IGPDFBasArray object.


CreateBasBool

Group: Method

Description:

Creates a new boolean object associated with the specified document and with the specified value.

Declaration:

CreateBasBool (Doc As IGPDFDoc, Indirect As Boolean, Value As
Boolean) As IGPDFBasBool

Parameters:

Doc
The document in which the boolean is used.
Indirect
If True, creates the boolean object as an indirect object. If False, creates the boolean as a direct object.
Value
The value the new boolean will have.

Return Value:

IGPDFBasBool object.


CreateBasDict

Group: Method

Description:

Creates a new dictionary object associated with the specified document and with the specified value.

Declaration:

CreateBasDict (Doc As IGPDFDoc, Indirect As Boolean, Entries As
Long) As IGPDFBasDict

Parameters:

Doc
The document in which the dictionary is used.
Indirect
If True, creates the dictionary as an indirect object. If False, creates the dictionary as a direct object.
Entries
Number of entries in the dictionary. This value is only a hint - the dictionaries grow dynamically as needed.

Return Value:

IGPDFBasDict object.


CreateBasFixed

Group: Method

Description:

Creates a new fixed object associated with the specified document and with the specified value.

Declaration:

CreateBasFixed (Doc As IGPDFDoc, Indirect As Boolean, Value As
Long) As IGPDFBasFixed

Parameters:

Doc
The document in which the fixed is used.
Indirect
If True, creates the fixed as an indirect object. If False, creates the fixed as a direct object.
Value
The value the new fixed will have.

Return Value:

IGPDFBasFixed object.


CreateBasInt

Group: Method

Description:

Creates a new integer object associated with the specified document and with the specified value.

Declaration:

CreateBasInt (Doc As IGPDFDoc, Indirect As Boolean, Value As
Long) As IGPDFBasInt

Parameters:

Doc
The document in which the integer is used.
Indirect
If True, creates the integer as an indirect object. If False, creates the integer as a direct object.
Value
The value the new integer will have.

Return Value:

IGPDFBasInt object.


CreateBasName

Group: Method

Description:

Creates a new name object associated with the specified document and with the specified value.

Declaration:

CreateBasName (Doc As IGPDFDoc, Indirect As Boolean, Value As
IGPDFAtom) As IGPDFBasName

Parameters:

Doc
The document in which the name is used.
Indirect
If True, creates the name as an indirect object. If False, creates the name as a direct object.
Value
The value the new name will have.

Return Value:

IGPDFBasName object.


CreateBasNull

Group: Method

Description:

Creates a direct null object.

Declaration:

CreateBasNull () As IGPDFBasNull

Return Value:

IGPDFBasNull object.


CreateBasString

Group: Method

Description:

Creates a new string object associated with the specified document and with the specified value.

Declaration:

CreateBasString (Doc As IGPDFDoc, Indirect As Boolean, Value As
String) As IGPDFBasString

Parameters:

Doc
The document in which the string is used.
Indirect
If True, creates the string as an indirect object. If False, creates the string as a direct object.
Value
The value the new string will have.

Return Value:

IGPDFBasString object.


CreateDestination

Group: Method

Description:

Creates a new destination object.

Declaration:

CreateDestination(Document As IGPDFDoc, Page As IGPDFPage,
InitialFitType As IGPDFAtom, InitialRect As IGPDFFixedRect,
InitialZoom As Long) As IGPDFDestination

Parameters:

Document
The document in which the destination is used.
Page
The destination page.
InitialFitType
Destination fit type. Must be one of the View Destination Fit Types.
InitialRect
Destination rectangle, specified in user space coordinates. The appropriate information will be extracted from InitialRect, depending on InitialFitType, to create the destination.
All four of InitialRect's components should be set.
InitialZoom
The zoom factor to set for the destination. Used only if InitialFitType is XYZ.

Return Value:

The newly created IGPDFDestination object.


CreateObject

Group: Method

Description:

This method creates a new instance of object that implements IIGObject interface.

Declaration:

CreateObject (Type As enumIGPDFObjType) As IIGObject

Parameters:

Type
The type of object to be created, see enumIGPDFObjType

Return Value:

IIGObject interface.


CreatePDEClip

Group: Method

Description:

Creates an empty clip object. This represents a clipping object that has no effect on elements that refer to it.

Declaration:

CreatePDEClip () As IGPDEClip

Return Value:

The newly created IGPDEClip object.


CreatePDEColorSpace

Group: Method

Description:

Creates a new color space object of the specified type.

Declaration:

CreatePDEColorSpace (Family As IGPDFAtom, ColorData As
IGPDEColorData) As IGPDEColorSpace

Parameters:

Family
Supports the following PDF color spaces:
  • Device-dependent names: DeviceCMYK, DeviceGray, DeviceN, or DeviceRGB.
  • Device-independent names: CalGray, CalRGB, Lab, or ICCBased.
  • Special names: Indexed, Pattern, or Separation.
ColorData
Color data for the type of color space you want to create.

Return Value:

IGPDEColorSpace object.


CreatePDEContainer

Group: Method

Description:

Creates a container object.

Declaration:

CreatePDEContainer (MCTag As IGPDFAtom, Dictionary As
IIGPDFBasObj, IsInline As Boolean) As IGPDEContainer

Parameters:

MCTag
Tag name for the container.
Dictionary
Optional Marked Content dictionary for the container.
IsInline
If True, emits container into the page content stream inline.

Return Value:

IGPDEContainer object.


CreatePDEContent

Group: Method

Description:

This method creates empty PDEContent.

Declaration:

HRESULT CreatePDEContent([out,retval] IIGPDEContent**
ppPDEContent);

Parameters:

ppPDEContent
The created PDEContent.

Return Value:

The created PDEContent.


CreatePDEFont

Group: Method

Description:

Creates a new PDE Font from the specified parameters.

The PDE Font may be represented as an embedded font (a FontFile entry in the font descriptor of the PDF file). To create a PDE Font that is stored as an embedded font, the FontFile stream may be passed in FontStream, and the Len1, Len2, and Len3 parameters contain the Length1, Length2, and Length3 values of the FontFile stream attributes dictionary. See Section 5.8 in the PDF Reference for more information about embedded fonts.

Declaration:

CreatePDEFont (Attributes As IGPDEFontAttrs, FirstCharIndex As
long, LastCharIndex As long, Widths As IGIntegerArray, Encoding
As IGStringArray, EncodingBaseName As IGPDFAtom, FontStream As
IGPDFStream, Len1 As long, Len2 As long, Len3 As long) As
IGPDEFont

Parameters:

Attributes
IGPDEFontAttrs for the font attributes.
FirstCharIndex
First character index for the widths array, Widths.
LastCharIndex
Last character index for the widths array, Widths.
Widths
Widths array.
Encoding
Array of 256 glyph names specifying the custom encoding. If any pointer is NULL, no encoding information is written for that entry.
EncodingBaseName
Encoding base name if the encoding is a custom encoding. If encoding is NULL, encodingBaseName is used as the value of the encoding, and must be one of WinAnsiEncoding, MacRomanEncoding, or MacExpertEncoding. If no encoding value is desired, use Null Atom.
FontStream
Stream with font information.
Len1
Length in bytes of the ASCII portion of the Type 1 font file after it has been decoded. For other font formats, such as TrueType or CFF, only Len1 is used, and it is the size of the font.
Len2
Length in bytes of the encrypted portion of the Type 1 font file after it has been decoded.
Len3
Length in bytes of the portion of the Type 1 font file that contains the 512 zeros, plus the cleartomark operator, plus any following data.

Return Value:

IGPDEFont object.


CreatePDEFontFromSysFont

Group: Method

Description:

Creates a PDE Font corresponding to a font in the system.

If the font is a multiple master font, MMDesignVector points to the design vector, whose length must equal the number of design axes of the font.

The enumIGPDEFontCreateFlags flags IG_PDE_FONT_CREATE_EMBEDDED and IG_PDE_FONT_WILL_SUBSET must both be set in order to subset a font.

If you create a PDE Font that is subsetted, call IGPDEFont.SubsetNow on this font afterwards.

Declaration:

CreatePDEFontFromSysFont (SysFont As IGPDFSysFont, CreateFlags
As enumIGPDEFontCreateFlags, SnapshotName As IGPDFAtom,
MMDesignVector As IGIntegerArray) As IGPDEFont

Parameters:

SysFont
PDF system font object referencing a system font.
CreateFlags
Indicates whether to embed the font and whether to subset the font. Must be one of enumIGPDEFontCreateFlags. If you want to subset a font, set both the IG_PDE_FONT_CREATE_EMBEDDED and IG_PDE_FONT_WILL_SUBSET flags.
SnapshotName
Name to be associated with this particular instantiation of the PDE Font.
MMDesignVector
Multiple master font design vector.

Return Value:

IGPDEFont object.


CreatePDEFontFromSysFontAndEncoding

Group: Method

Description:

Create a PDE Font from SysFont and SysEncoding. If it fails, it returns NULL. User can use IGPDEFont.CreateNeedFlags property to see if the combination of SysFont and SysEncoding makes sense.

Declaration:

CreatePDEFontFromSysFontAndEncoding (SysFont As IGPDFSysFont,
SysEncoding As IGPDFSysEncoding, UseThisBaseFont As IGPDFAtom,
CreateFlags As enumIGPDEFontCreateFlags) As IGPDEFont

Parameters:

SysFont
PDF system font object referencing a system font.
SysEncoding
A PDF SysEncoding object.
UseThisBaseFont
The base font. An error will be set if the base font name passed is a subset name (XXXXXX+FontName) or an empty string.
CreateFlags
One of the enumIGPDEFontCreateFlags values.

Return Value:

IGPDEFont object.


CreatePDEFontFromSysFontWithParams

Group: Method

Description:

Used to obtain a PDE Font corresponding to a font in the system.

Declaration:

CreatePDEFontFromSysFontWithParams (SysFont As IGPDFSysFont,
Params As IGPDEFontCreateFromSysFontParams) As IGPDEFont

Parameters:

SysFont
PDF system font object referencing a system font.
Params
Create parameters.

Return Value:

IGPDEFont object.


CreatePDEForm

Group: Method

Description:

Creates a new form from an existing object.

Declaration:

CreatePDEForm (XObject As IIGPDFBasObj, Resources As
IIGPDFBasObj, Matrix As IGPDFFixedMatrix) As IGPDEForm

Parameters:

XObject
XObject from which a form is created.
Resources
The XObject's Resources dictionary. If you do not pass in a Resource object, subsequent calls to IGPDFPage.GetContent will fail (after the file is saved).
Matrix
IGPDFFixedMatrix that holds the transformation matrix to use for the form.

Return Value:

IGPDEForm object.


CreatePDEGroup

Group: Method

Description:

Creates a PDE Group object.

Declaration:

CreatePDEGroup () As IGPDEGroup

Return Value:

The newly created IGPDEGroup object.


CreatePDEImage

Group: Method

Description:

Creates an image object.

The image data may be specified as a stream or as a buffer. If DataStream is non-NULL, Data is ignored.

Declaration:

CreatePDEImage(Attributes As IGPDEImageAttrs, TransformMatrix
As IGPDFFixedMatrix, Flags As enumIGPDEImageDataFlags,
ColorSpace As IGPDEColorSpace, ColorValue As IGPDEColorValue,
Filters As IGPDEFilterArray, DataStream As IGPDFStream, Data As
IGIntegerArray) As IGPDEImage

Parameters:

Attributes
IGPDEImageAttrs for the image attributes.
TransformMatrix
IGPDFFixedMatrix that holds the transformation matrix to use for the image.
Flags
enumIGPDEImageDataFlags flags.
ColorSpace
Color space of the image. When the image is an imagemask, ColorSpace is the color space of the ColorValue argument.
ColorValue
IGPDEColorValue object. If the image is an image mask, ColorValue must be provided.
Filters
IGPDEFilterArray that specifies which filters to use in encoding the contents; may be NULL. Filters will be used to encode the data in the order in which they are specified in the array.
DataStream
Image data. If DataStream is non-NULL, data is ignored. If there is a great deal of data, as for a large image, it is recommended you use the DataStream parameter for the image data.
Data
Single byte image data array. If DataStream is non-NULL, data is ignored. If there is a great deal of data, as for a large image, it is recommended you use the DataStream parameter for the image data.

Return Value:

IGPDEImage object.


CreatePDEPath

Group: Method

Description:

Creates an empty path element.

Declaration:

CreatePDEPath () As IGPDEPath

Return Value:

IGPDEPath object.


CreatePDEPlace

Group: Method

Description:

Creates a place object.

Declaration:

CreatePDEPlace (MCTag As IGPDFAtom, MCDictionary As
IIGPDFBasObj, IsInline As Boolean) As IGPDEPlace

Parameters:

MCTag
Tag name for the place. Must not contain any white space characters (for example, spaces or tabs).
MCDictionary
Optional Marked Content dictionary associated with the place.
IsInline
If True, place is emitted into the page content stream inline.

Return Value:

IGPDEPlace object.


CreatePDEPostScript

Group: Method

Description:

Creates a PDE PostScript object. DataStream and Data may be NULL. If so, use IGPDEPostScript.SetData and IGPDEPostScript.SetDataStream to attach data to the object. If DataStream is non-NULL, then data will be ignored.

Declaration:

CreatePDEPostScript (Attributes As IGPDEPSAttrs, DataStream As
IGPDFStream, Data As IGIntegerArray) As IGPDEPostScript

Parameters:

Attributes
PostScript attributes.
DataStream
Data stream. May be NULL.
Data
Data. May be NULL.

Return Value:

IGPDEPostScript object.


CreatePDEShading

Group: Method

Description:

Creates a smooth shading object.

Declaration:

CreatePDEShading (Dictionary As IIGPDFBasObj, Matrix As
IGPDFFixedMatrix) As IGPDEShading

Parameters:

Dictionary
The shading dictionary.
Matrix
The location and transformation matrix of the shading object.

Return Value:

IGPDEShading object.


CreatePDESoftMask

Group: Method

Description:

Creates a new soft mask object.

Declaration:

CreatePDESoftMask (Document As IGPDFDoc, Type As
enumIGPDESoftMaskCreateFlags, Form As IGPDEForm) As
IGPDESoftMask

Parameters:

Document
The container document.
Type
Specifies how the mask is to be computed. One of the enumIGPDESoftMaskCreateFlags.
Form
The form XObject that defines the soft mask. It is the source of the mask values and the color space in which the composite computation is to be done.

Return Value:

IGPDESoftMask object.


CreatePDESoftMaskFromName

Group: Method

Description:

Create a new soft mask from a name.

Declaration:

CreatePDESoftMaskFromName (Name As IGPDFAtom) As IGPDESoftMask

Parameters:

Name
The new name for the soft mask.
NOTE: Currently, the only valid name is None.

Return Value:

IGPDESoftMask object.


CreatePDEText

Group: Method

Description:

Creates empty text object.

Declaration:

CreatePDEText () As IGPDEText

Return Value:

IGPDEText object.


CreatePDETextItem

Group: Method

Description:

Creates a text item element containing a character or text run, which can be added to a PDE Text object.

Declaration:

CreatePDETextItem (Text As String, Font As IGPDEFont, GState As
IGPDEGraphicState, TState As IGPDETextState, TextMatrix As
IGPDFFixedMatrix) As IGPDETextItem

Parameters:

Text
Text string to add.
NOTE: Passing NULL for text can invalidate the text object but will not raise an error. Callers must not pass NULL for this parameter.
Font
Font for the element.
GState
Graphics state for the element.
TState
Text state for the element.
TextMatrix
The matrix for the element.

Return Value:

IGPDETextItem object.


CreatePDEXGroup

Group: Method

Description:

Creates a new XGroup of the given type.

Declaration:

CreatePDEXGroup (Doc As IGPDFDoc, Flags As
enumIGPDEXGroupCreateFlags) As IGPDEXGroup

Parameters:

Doc
The document the object will be created in.
Flags
enumIGPDEXGroupCreateFlags value.

Return Value:

IGPDEXGroup object.


CreatePDEXObject

Group: Method

Description:

Creates a new XObject from BasObj.

Declaration:

CreatePDEXObject (BasObj As IGPDFBasObj) As IGPDEXObject

Parameters:

BasObj
Base object for XObject.

Return Value:

IGPDEXObject object.


CreatePDFDoc

Group: Method

Description:

Creates IGPDFDoc object to work with PDF document content. At the end of the process, destroy the IGPDFDoc object.

Declaration:

CreatePDFDoc (pDocument As IGDocument) As IGPDFDoc

Parameters:

pDocument
IGDocument for which to create IGPDFDoc object wrapper

Return Value:

IGPDFDoc object.


CreatePDFPage

Group: Method

Description:

Creates IGPDFPage object to work with PDF page content. At the end of the process, destroy the IGPDFPage object.

Declaration:

CreatePDFPage (pPage As IGPage) As IGPDFPage

Parameters:

pPage
IGPage for which to create IGPDFPage object wrapper.

Return Value:

IGPDFPage object.


CreatePreflight

Group: Method

Description:

Creates new preflight class for the specified PDF document.

Declaration:

CreatePreflight(Document As IGPDFDoc) As IGPDFPreflight

Parameters:

Document
PDF document do preflight for.

Return Value:

Preflight object for the specified PDF document.


CreateSysEncodingFromBaseName

Group: Method

Description:

Creates an encoding object from base name.

Declaration:

CreateSysEncodingFromBaseName(BaseName As IGPDFAtom, DiffEnc As
IGStringArray) As IGPDFSysEncoding

Parameters:

BaseName
The base encoding. See Section 5.5.5 in the PDF Reference.
DiffEnc
Array of 256 Strings describing the differences from the encoding specified by BaseName. May be NULL.

Return Value:

IGPDFSysEncoding object.


CreateSysEncodingFromCMapName

Group: Method

Description:

Creates an encoding object from a PDF CMap name.

Declaration:

CreateSysEncodingFromCMapName(CMapName As IGPDFAtom) As
IGPDFSysEncoding

Parameters:

CMapName
The CMap name.

Return Value:

IGPDFSysEncoding object.


CreateSysEncodingFromCodePage

Group: Method

Description:

Creates an encoding object from a code page.

Declaration:

CreateSysEncodingFromCodePage(CodePage As enumIGPDFCodePages,
WritingMode As Integer) As IGPDFSysEncoding

Parameters:

CodePage
The code page character-mapping construct.
WritingMode
0 for horizontal writing, 1 for vertical writing.

Return Value:

IGPDFSysEncoding object.


DoubleToFixed

Group: Method

Description:

Converts DoubleValue to a PDF fixed value and returns it.

Declaration:

DoubleToFixed (DoubleValue As Double) As Long

Parameters:

DoubleValue
Double Value

Return Value:

PDF fixed value.


EnumerateClipElements

Group: Method

Description:

For a given PDE Clip, enumerates all of the PDE Elements in a flattened manner with ClipEnumerate event. In other words, PDE Containers and PDE Groups nested in the PDE Clip will not be handed back, but any PDE Paths and PDE Texts nested in them will be. Additionally, PDE Place objects inside the PDE Clip are not returned.

Declaration:

EnumerateClipElements (Clip As IGPDEClip) As Boolean

Parameters:

Clip
The PDE Clip to enumerate.

Return Value:

True if successful, False otherwise.


EnumerateSysFont

Group: Method

Description:

Enumerates all of the system fonts with SysFontEnumerate event.

The SysFont parameters must be copied during the enumeration if they are needed beyond the SysFontEnumerate event.

Developers should not assume that the SysFontEnumerate will get called. If no system fonts are found, SysFontEnumerate is never called.

Declaration:

EnumerateSysFont ()

Return Value:

None.


ExtractText

Group: Method

Description:

This method extracts text from pages determined by arguments nStartPage and nPageCount.

Declaration:

ExtractText (FileName as String, TextFileName as String,
nStartPage as Long, nPageCount as Long)

Parameters:

FileName
Name of the PDF or PS document
TextFileName
Name of the output TXT file
nStartPage
Number of the first page
nPageCount
Total number of pages to be processed (starting at nStartPage)

Return Value:

N/A


FindSysFont

Group: Method

Description:

Finds a system font that matches the requested attributes.

Declaration:

FindSysFont (Attributes As IGPDEFontAttrs, Flags As
enumIGPDFSysFontMatchFlags) As IGPDFSysFont

Parameters:

Attributes
IGPDEFontAttrs for the font attributes.
Flags
Bit field comprised of enumIGPDFSysFontMatchFlags values. Passing zero matches font by name only.

Return Value:

IGPDFSysFont object.


FindSysFontForPDEFont

Group: Method

Description:

Finds a system font that matches the requested Font.

Declaration:

FindSysFontForPDEFont (Font As IGPDEFont, Flags As
enumIGPDFSysFontMatchFlags) As IGPDFSysFont

Parameters:

Font
A PDE Font whose matching system font is found.
Flags
Bit field comprised of enumIGPDFSysFontMatchFlags values. Passing zero matches font by name only.

Return Value:

IGPDFSysFont object.


FixedRoundToLong

Group: Method

Description:

Converts FixedValue to an integer, rounding it to the nearest long integer value and returns it.

Declaration:

FixedRoundToLong (FixedValue As Long) As Long

Parameters:

FixedValue
PDF fixed value

Return Value:

Long integer value


FixedRoundToShort

Group: Method

Description:

Converts FixedValue to an integer, rounding it to the nearest short integer value and returns it.

Declaration:

FixedRoundToShort (FixedValue As Long) As Integer

Parameters:

FixedValue
PDF fixed value

Return Value:

Short integer value


FixedToDouble

Group: Method

Description:

Converts FixedValue to double value and returns it.

Declaration:

FixedToDouble (FixedValue As Long) As Double

Parameters:

FixedValue
PDF fixed value

Return Value:

Double value.


FixedTruncToLong

Group: Method

Description:

Converts FixedValue to an integer, truncating it to the next lower long integer value and returns it.

Declaration:

FixedTruncToLong (FixedValue As Long) As Long

Parameters:

FixedValue
PDF fixed value

Return Value:

Long integer value.


FixedTruncToShort

Group: Method

Description:

Converts FixedValue to an integer, truncating it to the next lower short integer value and returns it.

Declaration:

FixedTruncToShort (FixedValue As Long) As Integer

Parameters:

FixedValue
PDF fixed value

Return Value:

Short integer value.


GetDefaultGState

Group: Method

Description:

Gets default graphic state.

Declaration:

GetDefaultGState () As IGPDEGraphicState

Return Value:

Default graphic state IGPDEGraphicState information.


GetHostEncoding

Group: Method

Description:

Indicates what kind of host encoding a system uses. Allows you to determine whether a system is Roman or non-Roman. (Non-Roman is also known as CJK-capable, that is, capable of handling multi-byte character sets, such as Chinese, Japanese, or Korean.)

Host encoding is a platform-dependent encoding for the host machine. For non-UNIX Roman systems, it is MacRomanEncoding in Mac OS and WinAnsiEncoding in Windows. In UNIX (except HP-UX) Roman systems, it is ISO8859-1 (ISO Latin-1); for HP-UX, it is HP-ROMAN8. See Appendix D in the PDF Reference for descriptions of MacRomanEncoding, WinAnsiEncoding, and PDFDocEncoding.

For non-Roman systems, the host encoding may be a variety of encodings, which are defined by a CMap (character map). See Section 5.6.4 in the PDF Reference for a list of predefined CMaps.

Use GetHostEncoding to determine if a system's host encoding is Roman or not.

Declaration:

GetHostEncoding () As Long

Return Value:

0 for a Roman system; nonzero for a non-Roman system. Users should simply test whether this value is 0 or not.


LongToFixed

Group: Method

Description:

Converts LongValue to a PDF fixed value and returns it.

Declaration:

LongToFixed (LongValue As Long) As Long

Parameters:

LongValue
Long integer value

Return Value:

PDF fixed value.


RegisterAuthorizationEvent

Group: Method

Description:

Registers the authorization event, which will be called when open a secured PDF file, i.e. a PDF that has either the user or the master password set. See Authorization event for more details.

Declaration:

RegisterAuthorizationEvent()

Return Value:

N/A


RegisterStreamEvent

Group: Method

Description:

Registers read or write data-producing event.

Declaration:

RegisterStreamEvent (Stream As IGPDFStream, Type As
enumIGPDFStreamType)

Parameters:

Stream
Stream object to read from (write to) via event.
Type
One of enumIGPDFStreamType values.

Return Value:

N/A


ShortToFixed

Group: Method

Description:

Converts ShortValue to a PDF fixed value and returns it.

Declaration:

ShortToFixed (ShortValue As Integer) As Long

Parameters:

ShortValue
Short integer value

Return Value:

PDF fixed value.


StreamRead

Group: Event

Description:

Event procedure that reads data to the Stream registered with RegisterStreamEvent.

Declaration:

StreamRead (ByVal Parameters As IGPDFStreamReadEventParams)

Parameters:

Parameters
IGPDFStreamReadEventParams specifies the parameters for this event.

Return Value:

N/A


StreamWrite

Group: Event

Description:

Event procedure that writes data to the Stream registered with RegisterStreamEvent.

Declaration:

StreamWrite (ByVal Parameters As IGPDFStreamWriteEventParams)

Parameters:

Parameters
IGPDFStreamWriteEventParams specifies the parameters for this event.

Return Value:

N/A


SysFontEnumerate

Group: Event

Description:

SysFont enumeration event for EnumerateSysFont. It is called once for each system font.

Declaration:

SysFontEnumerate (ByVal Parameters As
IGPDFSysFontEnumerateEventParams)

Parameters:

Parameters
IGPDFSysFontEnumerateEventParams specifies the parameters for this event.

Return Value:

N/A


TranslateToHost

Group: Method

Description:

Translates a string from Unicode or PDFDocEncoding to host encoding. This method is useful when setting or retrieving displayed text that might be in Unicode, such as text that appears in a text annotation or bookmark.

A character that cannot be converted to the destination encoding is replaced with a space.

Host encoding is a platform-dependent encoding for the host machine. For non-UNIX Roman systems, it is MacRomanEncoding in Mac OS and WinAnsiEncoding in Windows. In UNIX (except HP-UX) Roman systems, it is ISO8859-1 (ISO Latin-1); for HP-UX, it is HP-ROMAN8. See Appendix D in the PDF Reference for descriptions of MacRomanEncoding, WinAnsiEncoding, and PDFDocEncoding.

For non-Roman systems, the host encoding may be a variety of encodings, which are defined by a CMap (character map). See Section 5.6.4 in the PDF Reference for information on CMaps.

Use GetHostEncoding to determine if a system's host encoding is Roman or not.

Declaration:

TranslateToHost (InPDFStr As String) As String

Parameters:

InPDFStr
String to translate.

Return Value:

Translated string.


TranslateToPDF

Group: Method

Description:

Translates a string from host encoding to PDFDocEncoding or Unicode. This method is useful when using text that must be in PDFDocEncoding or Unicode, such as text in a text annotation, bookmark, or article title.

A character that cannot be converted to the destination encoding is replaced with a space.

For example, it converts \n to a space character (\r is present in PDFDocEncoding and is left unchanged).

Host encoding is a platform-dependent encoding for the host machine. For non-UNIX Roman systems, it is MacRomanEncoding in Mac OS and WinAnsiEncoding in Windows. In UNIX (except HP-UX) Roman systems, it is ISO8859-1 (ISO Latin-1); for HP-UX, it is HP-ROMAN8. See Appendix D in the PDF Reference for descriptions of MacRomanEncoding, WinAnsiEncoding, and PDFDocEncoding.

For non-Roman systems, the host encoding may be a variety of encodings, which are defined by a CMap (character map). See Section 5.6.4 in the PDF Reference for a list of predefined CMaps.

Use GetHostEncoding to determine if a system's host encoding is Roman or not.

Declaration:

TranslateToPDF (InHostStr As String) As String

Parameters:

InHostStr
String to translate.

Return Value:

Translated string.


Basic Objects

This chapter describes the basic PDF objects and methods used throughout the ImageGear PDF API. These objects provide access to the building blocks used to construct PDF documents. The objects and methods allow applications to manipulate the low-level data in a PDF file, such as strings, numbers, and dictionaries. Adobe PDF supports eight basic platform-independent types of object:

  • Boolean values
  • Integer and Fixed (real) numbers
  • Strings
  • Names
  • Arrays
  • Dictionaries
  • Streams
  • The null object

These objects may be labeled so that they can be referred to by other objects. A labeled object is called an indirect object. When a direct object is created, the object itself is returned. As a result, a direct object can only be attached to one other Base object at a time; it cannot, for example, be shared by two different dictionaries. When an indirect object is created, something equivalent to a pointer to the object is returned. As a result, an indirect object can be attached to multiple places in a PDF file simultaneously; it can, for example, be shared by two different dictionaries.

PDF documents are trees of these Base objects. Base objects represent document components such as bookmarks, pages, and fonts. Unlike using the other ImageGear PDF Obejcts methods, using Base Object methods improperly could result in an invalid PDF file. Therefore, you should not use Base Object methods unless necessary, for example to add private data to portions of a PDF file that cannot be accessed in other ways.

The following table contains the basic objects supported by the ImageGear PDF component:

IGPDFBasArray
Basic Array - an array object is a one-dimensional collection of objects arranged sequentially. Unlike arrays in many other computer languages, PDF arrays may be heterogeneous; that is, an array's elements may be any combination of numbers, strings, dictionaries, or any other objects, including other arrays.
IGPDFBasBool
Basic Boolean - PDF provides boolean objects identified by the keywords true and false. Boolean objects can be used as the values of array elements and dictionary entries.
IGPDFBasDict
Basic Dictionary - a dictionary object is an associative table containing pairs of objects, known as the dictionary's entries. The first element of each entry is the key and the second element is the value. The key must be a name. The value can be any kind of object, including another dictionary.
IGPDFBasFixed
Basic Fixed - Fixed objects approximate mathematical real numbers, but with limited range and precision; they are typically represented in fixed-point, rather than floating-point, form.
IGPDFBasInt
Basic Integer - Integer objects represent mathematical integers within a certain interval centered at 0.
IGPDFBasName
Basic Name - A name object is an atomic symbol uniquely defined by a sequence of characters.
Uniquely defined means that any two name objects made up of the same sequence of characters are identically the same object. Atomic means that a name has no internal structure; although it is defined by a sequence of characters, those characters are not "elements" of the name.
IGPDFBasNull
Basic Null - The null object has a type and value that are unequal to those of any other object. There is only one object of type null, denoted by the keyword null.
IGPDFBasString
Basic String - A string object consists of a series of bytes-unsigned integer values in the range 0 to 255. The string elements are not integer objects, but are stored in a more compact format.
IIGPDFBasObj
Basic Object - basic PDF object interface. PDF supports eight basic types of object:
  • Boolean values
  • Integer and Fixed (real) numbers
  • Strings
  • Names
  • Arrays
  • Dictionaries
  • Streams
  • The null object
Objects may be labeled so that they can be referred to by other objects. A labeled object is called an indirect object.


IGPDFBasArray

Type: Object

Description:

Basic array object. An array object is a one-dimensional collection of objects arranged sequentially. Unlike arrays in many other computer languages, PDF arrays may be heterogeneous; that is, an array's elements may be any combination of numbers, strings, dictionaries, or any other objects, including other arrays.

Interface:

IIGPDFBasArray extends IIGPDFBasObj

Class Members:

Length
Property
The number of elements in the array.
Get
Method
Gets the specified element from an array.
Put
Method
Puts the specified object into the specified location in an array.
PutBool
Method
Puts the specified boolean value into the specified location in an array.
PutFixed
Method
Puts the specified fixed value into the specified location in an array.
PutInt
Method
Puts the specified integer value into the specified location in an array.
PutName
Method
Puts the name integer value into the specified location in an array.
Remove
Method
Finds the first element, if any, equal to the specified object and removes it from the array.
RemoveNth
Method
Checks whether the position is within the array bounds and then removes it from the array and moves each subsequent element to the slot with the next smaller index and decrements the array's length by 1.


Get

Group: Method

Description:

Gets the specified element from an array.

Declaration:

Get (Index As Long) As IIGPDFBasObj

Parameters:

Index
The array element to obtain. The first element in an array has an index of zero.

Return Value:

The basic object occupying the Index element of array. Returns IG_PDF_BASIC_NULL object if index is outside the array bounds.


Length

Group: Property

Description:

The number of elements in the array.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


Put

Group: Method

Description:

Puts the specified object into the specified location in an array. The array is extended as much as necessary.

Declaration:

Put (Index As Long, Object As IIGPDFBasObj)

Parameters:

Index
The location in array to store Object. The first element of an array has an index of zero.
Object
The object to insert into array.

Return Value:

N/A


PutBool

Group: Method

Description:

Puts the specified boolean value into the specified location in an array. The array is extended as much as necessary.

Declaration:

PutBool (Index As Long, Indirect As Boolean, Value As Boolean)

Parameters:

Index
The location in array to store a value. The first element of an array has an index of zero.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Value
The boolean value to insert into array.

Return Value:

N/A


PutFixed

Group: Method

Description:

Puts the specified fixed value into the specified location in an array. The array is extended as much as necessary.

Declaration:

PutFixed (Index As Long, Indirect As Boolean, Value As Long)

Parameters:

Index
The location in array to store a value. The first element of an array has an index of zero.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Value
The fixed value to insert into array.

Return Value:

N/A


PutInt

Group: Method

Description:

Puts the specified integer value into the specified location in an array. The array is extended as much as necessary.

Declaration:

PutInt (Index As Long, Indirect As Boolean, Value As Long)

Parameters:

Index
The location in array to store a value. The first element of an array has an index of zero.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Value
The integer value to insert into array.

Return Value:

N/A


PutName

Group: Method

Description:

Puts the name integer value into the specified location in an array. The array is extended as much as necessary.

Declaration:

PutName (Index As Long, Indirect As Boolean, Name As IGPDFAtom)

Parameters:

Index
The location in array to store a value. The first element of an array has an index of zero.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Value
The name value to insert into array.

Return Value:

N/A


Remove

Group: Method

Description:

Finds the first element, if any, equal to the specified object and removes it from the array.

Declaration:

Remove (Object As IIGPDFBasObj)

Parameters:

Object
The object to remove.

Return Value:

N/A


RemoveNth

Group: Method

Description:

Checks whether the position is within the array bounds and then removes it from the array and moves each subsequent element to the slot with the next smaller index and decrements the array's length by 1.

Declaration:

RemoveNth (Index As Long)

Parameters:

Index
The index for the array member to remove. Array indices start at 0.

Return Value:

N/A


IGPDFBasBool

Type: Object

Description:

Basic Boolean object. PDF provides boolean objects identified by the keywords true and false. Boolean objects can be used as the values of array elements and dictionary entries.

Interface:

IIGPDFBasBool extends IIGPDFBasObj

Class Members:

Value
Property
The value of the specified boolean object.


Value

Group: Property

Description:

The value of the specified boolean object.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


IGPDFBasDict

Type: Object

Description:

Basic dictionary object. A dictionary object is an associative table containing pairs of objects, known as the dictionary's entries. The first element of each entry is the key and the second element is the value. The key must be a name. The value can be any kind of object, including another dictionary.

Interface:

IIGPDFBasDict extends IIGPDFBasObj

Class Members:

Get
Method
Gets the value of the specified key in the specified dictionary.
Known
Method
Tests whether a specific key is found in the specified dictionary.
Put
Method
Sets the value of a dictionary key, adding the key to the dictionary if it is not alreadypresent.
PutBool
Method
Sets the boolean value of a dictionary key, adding the key to the dictionary if it is not already present.
PutFixed
Method
Sets the fixed value of a dictionary key, adding the key to the dictionary if it is not already present.
PutInt
Method
Sets the integer value of a dictionary key, adding the key to the dictionary if it is not already present.
PutName
Method
Sets the integer value of a dictionary key, adding the key to the dictionary if it is not already present.
Remove
Method
Removes a key-value pair from a dictionary.


Get

Group: Method

Description:

Gets the value of the specified key in the specified dictionary. If called with a stream object instead of a dictionary object, this method gets the value of the specified key from the stream's attributes dictionary.

Declaration:

Get (Key As IGPDFAtom) As IIGPDFBasObj

Parameters:

Key
The key whose value is obtained. See the PDF Reference to obtain the names of keys in dictionary objects that are part of standard PDF, such as annotations or page objects.

Return Value:

The object associated with the specified key. If key is not present or if its value is null, returns an object of type IG_PDF_BASIC_NULL.


Known

Group: Method

Description:

Tests whether a specific key is found in the specified dictionary.

Declaration:

Known (Key As IGPDFAtom) As Boolean

Parameters:

Key
The key to find. See the PDF Reference to obtain the names of keys in dictionary objects that are part of standard PDF, such as annotations or page objects.

Return Value:

True if the value of a key is known (exists and is not null) in the dictionary; false otherwise.


Put

Group: Method

Description:

Sets the value of a dictionary key, adding the key to the dictionary if it is not already present.

Declaration:

Put (Key As IGPDFAtom, Object As IIGPDFBasObj)

Parameters:

Key
The key whose value is set. See the PDF Reference to obtain the names of keys in dictionary objects that are part of standard PDF, such as annotations or page objects.
Object
The value to set.

Return Value:

N/A


PutBool

Group: Method

Description:

Sets the boolean value of a dictionary key, adding the key to the dictionary if it is not already present.

Declaration:

PutBool (Key As IGPDFAtom, Indirect As Boolean, Value As
Boolean)

Parameters:

Key
The key whose value is set. See the PDF Reference to obtain the names of keys in dictionary objects that are part of standard PDF, such as annotations or page objects.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Value
The boolean value to set.

Return Value:

N/A


PutFixed

Group: Method

Description:

Sets the fixed value of a dictionary key, adding the key to the dictionary if it is not already present.

Declaration:

PutFixed (Key As IGPDFAtom, Indirect As Boolean, Value As Long)

Parameters:

Key
The key whose value is set. See the PDF Reference to obtain the names of keys in dictionary objects that are part of standard PDF, such as annotations or page objects.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Value
The fixed value to set.

Return Value:

N/A


PutInt

Group: Method

Description:

Sets the integer value of a dictionary key, adding the key to the dictionary if it is not already present.

Declaration:

PutInt (Key As IGPDFAtom, Indirect As Boolean, Value As Long)

Parameters:

Key
The key whose value is set. See the PDF Reference to obtain the names of keys in dictionary objects that are part of standard PDF, such as annotations or page objects.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Value
The integer value to set.

Return Value:

N/A


PutName

Group: Method

Description:

Sets the integer value of a dictionary key, adding the key to the dictionary if it is not already present.

Declaration:

PutName (Key As IGPDFAtom, Indirect As Boolean, Name As
IGPDFAtom)

Parameters:

Key
The key whose value is set. See the PDF Reference to obtain the names of keys in dictionary objects that are part of standard PDF, such as annotations or page objects.
Indirect
If true, creates the key value as an indirect object. If false, creates the key value as a direct object.
Name
The name value to set.

Return Value:

N/A


Remove

Group: Method

Description:

Removes a key-value pair from a dictionary.

Declaration:

Remove (Key As IGPDFAtom)

Parameters:

Key
The key to remove.

Return Value:

N/A


IGPDFBasFixed

Type: Object

Description:

Basic fixed object. Fixed objects approximate mathematical real numbers, but with limited range and precision; they are typically represented in fixed-point, rather than floating-point, form.

Interface:

IIGPDFBasFixed extends IIGPDFBasObj

Class Members:

Value
Property
The value of the specified fixed object.


Value

Group: Property

Description:

The value of the specified fixed object.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


IGPDFBasInt

Type: Object

Description:

Basic integer object. Integer objects represent mathematical integers within a certain interval centered at 0.

Interface:

IIGPDFBasInt extends IIGPDFBasObj

Class Members:

Value
Property
The value of the specified integer object.


Value

Group: Property

Description:

The value of the specified integer object.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


IGPDFBasName

Type: Object

Description:

Basic name object. A name object is an atomic symbol uniquely defined by a sequence of characters.

Uniquely defined means that any two name objects made up of the same sequence of characters are identically the same object. Atomic means that a name has no internal structure; although it is defined by a sequence of characters, those characters are not "elements" of the name.

Interface:

IIGPDFBasName extends IIGPDFBasObj

Class Members:

GetValue
Method
Gets the value of the specified name object.


GetValue

Group: Method

Description:

Gets the value of the specified name object.

Declaration:

GetValue() As IGPDFAtom

Return Value:

IGPDFAtom


IGPDFBasNull

Type: Object

Description:

Basic null object. The null object has a type and value that are unequal to those of any other object. There is only one object of type null, denoted by the keyword null.

Interface:

IIGPDFBasNull extends IIGPDFBasObj


IGPDFBasString

Type: Object

Description:

Basic string object. A string object consists of a series of bytes - unsigned integer values in the range 0 to 255. The string elements are not integer objects, but are stored in a more compact format.

Interface:

IIGPDFBasString extends IIGPDFBasObj

Class Members:

Value
Property
The value of the specified string object.


Value

Group: Property

Description:

The value of the specified string object.

Property Summary:

Access
Read-only
Data type
String
Default value
N/A


IIGPDFBasObj

Type: Interface

Description:

Basic object interface. PDF supports eight basic types of object:

  • Boolean values
  • Integer and Fixed (real) numbers
  • Strings
  • Names
  • Arrays
  • Dictionaries
  • Streams
  • The null object

Objects may be labeled so that they can be referred to by other objects. A labeled object is called an indirect object.

Interface:

IIGPDFBasObj

Class Members:

Type
Property
Object's type.


Type

Group: Property

Description:

Object's type.

Property Summary:

Access
Read-only
Data type
enumIGPDFBasicType
Default value
N/A


IGPDFClipEnumerateEventParams

Type: Class

Description:

Parameters for IGPDFCtl . ClipEnumerate event.

Parameters:

Element
The PDE Element currently being enumerated.
CancelAction
Cancels the enumeration. True to halt enumeration; False to continue enumeration.


Element

Group: Property

Description:

The PDE Element currently being enumerated.

Property Summary:

Data Type:
IIGPDEElement interface
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
ig_pdf_vb6.exe


CancelAction

Group: Property

Description:

Cancels the enumeration. True to halt enumeration; False to continue enumeration.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
ig_pdf_vb6.exe


IIGPDFDictionary

Type: Interface

Description:

PDF Dictionary interface.

Interface:

IIGPDFDictionary

Class Members:

GetBasObj
method
Returns a BasObj of the Dictionary. Used for Container creation.
GetLayer
method
Gets the layer with the specified index in a membership dictionary.
LayersCount
method
Gets the number of layers listed in a membership dictionary.
VisPolicy
method
Gets the optional-content membership dictionary's visibility policy.
UniqueID
method
Returns some 32bit integer that is unique for all Dictionary objects.


GetBasObj

Group: Method

Description:

Returns a BasObj of the Dictionary. Used for Container creation.

Declaration:

IIGPDFDictionary.GetBasObj(
     [out,retval] IIGPDFBasObj** ppBasObj);

Parameters:

None.

Return Value:

BasObj of the Dictionary.


GetLayer

Group: Method

Description:

Gets the layer with the specified index in a membership dictionary.

Declaration:

IIGPDFDictionary.GetLayer(
    /*[in]*/ LONG nIndex,
    /*[out,retval]*/ IIGPDFLayer** ppPDFLayer)

Parameters:

nIndex
The index of the needed layer in the dictionary.

Return Value:

Layer object.


LayersCount

Group: Method

Description:

Gets the number of layers listed in a membership dictionary.

Declaration:

IIGPDFDictionary.LayersCount

Return Value:

The count of the document's layers.


VisPolicy

Group: Method

Description:

Gets the optional-content membership dictionary's visibility policy, which determines the visibility of content with respect to the ON-OFF state of the layers listed in the dictionary.

Declaration:

IIGPDFDictionary.VisPolicy

Return Value:

The visibility policy.


UniqueID

Group: Method

Description:

Returns some 32bit integer that is unique for all Dictionary objects. In other words, it is guaranteed that there cannot be two Dictionary objects with the same UniqueIds.

Can be used for Dictionary objects' identification.

Declaration:

IIGPDFDictionary.UniqueId
(propget)

Return Value

An unique identifier of this Dictionary Object.


IIGPDFLayerArray

Type: Interface

Description:

IIGPDFLayerArray is a kind of IIGArray.

Class Members:

AddItem
method
Adds a Layer into the Array.
Item
method
Returns Layer with the specified index.
SetDoc
method
This method needs to be called at least once before using IIGPDFLayerArray object.
Size
method
Returns Layers count in the Array.


AddItem

Group: Method

Description:

Adds a Layer into the Array.

Declaration:

IIGPDFLayerArray.AddItem(
    [in] IIGPDFLayer *newVal);


Item

Group: Method

Description:

Returns Layer with the specified index.

Declaration:

IIGPDFLayerArray.Item(
    [in] long Index,
    [out, retval] IIGPDFLayer **pVal);

Parameters:

Index
Index of Layer in the Array. Should be: 0 <= Index < IIGPDFLayerArray.Size

Return Value:

IIGPDFLayer object.


SetDoc

Group: Method

Description:

This method needs to be called at least once before using IIGPDFLayerArray object.

Declaration:

IIGPDFLayerArray.SetDoc(
    [in] IIGPDFDoc *pDoc);

Parameters:

pDoc
PDF document object in which all Layers are created.


Size

Group: Method

Description:

Returns Layers count in the Array.

Declaration:

IIGPDFLayerArray.Size
(propget)


General Objects

This chapter describes a group of objects that provide access to PDF document's components such as metadata, pages, fonts, etc. These objects and methods allow applications to manipulate the PDF content and data. Some of the objects allow you to work with host system fonts and encodings, and the supplementary objects such as IGPDFAtom and IGPDFStream used to simplify and optimize working with PDF content.

The following table contains general objects and their descriptions supported by the ImageGear PDF component:

IGPDFAction
PDF action object, which is a task that performs when a user clicks on a link or a bookmark.
IGPDFAtom
Atom - a hashed token used in place of strings to optimize performance (it is much faster to compare Atoms than strings). Many methods use Atoms.
IGPDFAuthEventParams
Parameters used in the authorization event.
IGPDFBookmark
PDF bookmark object, which allows the user to navigate interactively from one part of the document to another.
IGPDFDestination
PDF destination object, which represents a particular view of a page in a document.
IGPDFDoc
Document - the underlying PDF representation of a document. Through PDF Document, your application can perform most of the Edit Pages operations (delete, replace, and so on). Thumbnails can be created and deleted through this object. You can set and retrieve document information fields through this object as well.
IGPDFLayer
PDF layer object represents a named object whose state can be toggled in a UI to affect changes in visibility of content.
IGPDFPage
Page - a single page in the PDF representation of a document. A page contains a series of objects representing the objects drawn on the page (Graphic), a list of resources used in drawing the page, annotations (Annotation), an optional thumbnail image of the page, and the beads used in any articles that occur on the page.
IGPDFSecurityData
PDF security data object describes data for the standard security handler.
IGPDFStream
Stream - a data stream that may be a buffer in memory, or an arbitrary user-written procedure. Typically used to extract or provide data.
IGPDFStyle
Style - provides access to information about the fonts, font sizes, and colors used in a Word.
IGPDFSysEncoding
SysEncoding - provides system encoding for a PDF file.
IGPDFSysFont
SysFont - a reference to a font installed in the host system. SysFont methods allow you to list the fonts available in the host system and to find a font in the system that matches a PDE Font, if it is present.
IGPDFWord
Word - a word in a PDF file. Each word contains a sequence of characters in one or more styles (see Style).
IGPDFWordFinder
WordFinder - extracts words from a PDF file, and enumerates the words on a single page or on all pages in a document..


IGPDFAction

Type: Object

Description:

PDF action object, which is a task that performs when a user clicks on a link or a bookmark. Action types include:

  • Going to another view within the same document
  • Going to a specified view in another PDF file
  • Launching an arbitrary file
  • Resolving a URL

See Section 8.5 in the PDF Reference for more information on actions..

Interface:

IIGPDFAction extends IIGObject

Class Members:

GetDestination
Method
Gets the action's destination view.
GetDictionary
Method
Gets the dictionary corresponding to the action.
GetFileName
Method
Gets a file name from the action.
GetType
Method
Gets the action's type.
Pointer
Property
Reference to a link data.


GetDestination

Group: Method

Description:

Gets the action's destination view. This only works for actions that contain a view destination - that is, actions whose type is GoTo. For named destinations, this method may return a basic string or name object. See Section 8.2.1 in the PDF Reference for more information on named destinations.

NOTE: Since this method may not return an explicit destination, use the IGPDFDestination.Resolve on the returned value to obtain an explicit destination.

Declaration:

GetDestination() As IGPDFDestination

Return Value:

The action's destination, which may be either an explicit or named (basic string or name object). Use the IGPDFDestination.Resolve on this returned value to obtain an explicit destination.


GetDictionary

Group: Method

Description:

Gets the dictionary corresponding to the action.

Declaration:

GetDictionary() As IIGPDFBasObj

Return Value:

Dictionary object for the action.


GetFileName

Group: Method

Description:

Gets a file name from the action. Not all types of actions have file names; this method only works for actions that contain a file specification. See Section 8.5 in the PDF Reference for more information on the contents of various types of actions.

Declaration:

GetFileName() As String

Return Value:

The action's file name.


GetType

Group: Method

Description:

Gets the action's type.

Declaration:

GetType() As IGPDFAtom

Return Value:

The atom corresponding to the action's type.


Pointer

Group: Property

Description:

Reference to a link data. Use this pointer to create a link data associated with IGArtXHotSpot annotation.

Declaration:

Pointer As LONG_PTR (Read-Only)


IGPDFAtom

Type: Object

Description:

PDF atom object. A hashed token used in place of strings to optimize performance (it is much faster to compare Atoms than strings). Many methods use Atoms.

Interface:

IIGPDFAtom extends IIGObject

Class Members:

String
Property
The string corresponding to the atom.


String

Group: Property

Description:

The string corresponding to the atom.

Property Summary:

Access
Read/Write
Data type
String
Default value
""


IGPDFAtomArray

Type: Object

Description:

This object represents an array of PDF Atoms.

Interface:

IIGPDFAtomArray extends IIGObject

Class Members:

GetPtr
method
Gets pointer to the array.
Item
property
Gets/Sets an indexed item.
Resize
method
Resizes the array.
Size
property
Gets the number of items in the array.


GetPtr

Group: Method

Description:

This method gets pointer to the array.

Declaration:

GetPtr() As Long

Return Value:

Long pointer to the array of atoms.


Item

Group: Property

Description:

This indexed property gets an array item.

Property Summary:

Data Type:
IGPDFAtom
Default Value:
Atom value.
Access:
Read/Write
Settings:
instance of IGPDFAtom object
Bits Per Pixel:
N/A


Resize

Group: Method

Description:

This method resizes the array.

Declaration:

Sub Resize(newSize As Long)

Parameters:

newSize
Specifies new number of items.

Return Value:

None.


Size

Group: Property

Description:

This property gets the number of items in the array.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read only
Settings:
any positive value
Bits Per Pixel:
N/A


IGPDFAuthEventParams

Type: Object

Description:

Parameters used in the authorization event.

Interface:

IIGPDFAuthEventParams extends IIGObject

Class Members:

Authorize
Property
TRUE if the user is authorized to open the document, FALSE otherwise.
Document
Property
The PDF document to open.


Authorize

Group: Property

Description:

True, if the user is authorized to open the document, False otherwise.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


Document

Group: Property

Description:

The PDF document to open.

Property Summary:

Access
Read-Write
Data type
IGPDFDoc
Default value
N/A


IGPDFBookmark

Type: Object

Description:

PDF bookmark object, which allows the user to navigate interactively from one part of the document to another. It consists of a tree-structured hierarchy of bookmarks. Each bookmark has:

  • A title that appears on screen
  • An action that specifies what happens when the user clicks on the bookmark

The typical action for a user-created bookmark is to move to another location in the current document or outside of it. Each bookmark in the bookmark tree structure has zero or more children that appear indented on screen, and zero or more siblings that appear at the same indentation level. All bookmarks except the bookmark at the top level of the hierarchy have one parent, the bookmark under which it is indented. A bookmark is said to be open if its children are visible on screen, and closed if they are not. See section 8.2.2, "Document Outline," in the PDF Reference for more information on bookmarks.

Interface:

IIGPDFBookmark extends IIGObject

Class Members:

Count
Property
Number of open bookmarks in the sub-tree (not including the current one).
Flags
Property
Bookmark's flags.
HasChildren
Property
True if the bookmark has any children, False otherwise.
Indent
Property
The indentation level of the bookmark in its containing tree.
Open
Property
True if the bookmark is open (shows all its children),
Title
Property
String specifying the bookmark's title.
AddChild
Method
Adds Child as the last child of parent,
AddNewChild
Method
Adds a new bookmark to the tree containing the current bookmark, as the new last child of it.
AddNewSibling
Method
Adds a new bookmark to the tree containing the current bookmark as the new right sibling.
AddNext
Method
Adds Next as the new right sibling to the current one.
AddPrev
Method
Adds Prev as the new left sibling to the current bookmark, adjusting the tree containing the current bookmark appropriately.
AddSubtree
Method
Adds a copy of the bookmark sub-tree source to the current bookmark, as a new last child of the current bookmark.
FindTitle
Method
Gets the first bookmark whose title is Title.
GetAction
Method
Gets the bookmark's action.
GetColor
Method
Gets the color of the bookmark.
GetFirstChild
Method
Gets the bookmark's first child.
GetLastChild
Method
Gets the bookmark's last child.
GetNext
Method
Gets the bookmark's next (right) sibling.
GetParent
Method
Gets the bookmark's parent bookmark.
GetPrev
Method
Gets the bookmark 's previous (left) sibling.
Remove
Method
Removes the bookmark's sub-tree from the bookmark tree containing it.
RemoveAction
Method
Removes the bookmark's action.
SetAction
Method
Sets the bookmark's action.
SetColor
Method
Sets the bookmark's color.
Unlink
Method
Unlinks the current bookmark from the bookmark tree that contains it, and adjusts the tree appropriately.


AddChild

Group: Method

Description:

Adds Child as the last child of parent, adjusting the tree containing parent appropriately. If parent previously had no children, it is open after the child is added.

Declaration:

AddChild(Child As IGPDFBookmark)

Parameters:

Child
The bookmark that will become the last child of the current bookmark. Child must have been previously unlinked.

Return Value:

N/A


AddNewChild

Group: Method

Description:

Adds a new bookmark to the tree containing the current bookmark, as the new last child of it. If the current bookmark previously had no children, it will be open after the child is added.

Declaration:

AddNewChild(InitialText As String) As IGPDFBookmark

Parameters:

InitialText
The new bookmark's title.

Return Value:

The newly created bookmark.


AddNewSibling

Group: Method

Description:

Adds a new bookmark to the tree containing the current bookmark as the new right sibling.

Declaration:

AddNewSibling(InitialText As String) As IGPDFBookmark

Parameters:

InitialText
The new bookmark's title.

Return Value:

The newly created bookmark.


AddNext

Group: Method

Description:

Adds Next as the new right sibling to the current one.

Declaration:

AddNext(Next As IGPDFBookmark)

Parameters:

Next
The bookmark to become the new right sibling of the current bookmark. Next must have been previously unlinked.

Return Value:

N/A


AddPrev

Group: Method

Description:

Adds Prev as the new left sibling to the current bookmark, adjusting the tree containing the current bookmark appropriately.

Declaration:

AddPrev(Prev As IGPDFBookmark)

Parameters:

Prev
The bookmark to become the new left sibling of the current bookmark. Prev must have been previously unlinked.

Return Value:

N/A


AddSubtree

Group: Method

Description:

Adds a copy of the bookmark sub-tree source to the current bookmark, as a new last child of the current bookmark. This new item will have the text value SourceTitle, will be open, and will have no destination attribute. Subtree must have been previously unlinked. If the current bookmark previously had no children, it will be open after the sub-tree is added.

Declaration:

AddSubtree(Subtree As IGPDFBookmark, SourceTitle As String)

Parameters:

Subtree
The bookmark sub-tree to add.
SourceTitle
The new bookmark's title.

Return Value:

N/A


Count

Group: Property

Description:

Number of open bookmarks in the sub-tree (not including the current one).

Property Summary:

Access
Read only
Data type
Long


FindTitle

Group: Method

Description:

Gets the first bookmark whose title is Title.

Declaration:

FindTitle(Title As String, MaxDepth As Long) As IGPDFBookmark

Parameters:

Title
The text value to search for.
MaxDepth
The number of sub-tree levels to search, not counting the root level.
  • 0 - Only look at the current bookmark, not at any of its children.
  • 1 - Check the current bookmark and its children, but not any grandchildren or great grandchildren, and so on.
  • -1 - Check the entire sub-tree.

Return Value:

The bookmark with the specified title or NULL if there is no such bookmark.


Flags

Group: Property

Description:

Bookmark's flags. The OR value of the enumIGPDFBookmarkFlags.

Property Summary:

Access
Read/Write
Data type
enumIGPDFBookmarkFlags


GetAction

Group: Method

Description:

Gets the bookmark's action.

Declaration:

GetAction() As IGPDFAction

Return Value:

The bookmark's action.


GetColor

Group: Method

Description:

Gets the color of the bookmark.

Declaration:

GetColor() As IGPixel

Return Value:

Color of the bookmark.


GetFirstChild

Group: Method

Description:

Gets the bookmark's first child.

Declaration:

GetFirstChild() As IGPDFBookmark

Return Value:

First child of the bookmark or NULL if the bookmark has no children.


GetLastChild

Group: Method

Description:

Gets the bookmark's last child.

Declaration:

GetLastChild() As IGPDFBookmark

Return Value:

Last child of the bookmark or NULL if the bookmark has no children.


GetNext

Group: Method

Description:

Gets the bookmark's next (right) sibling.

Declaration:

GetNext() As IGPDFBookmark

Return Value:

The bookmark's next (right) sibling or NULL if the bookmark has no next sibling (it is its parent's last child).


GetParent

Group: Method

Description:

Gets the bookmark's parent bookmark.

Declaration:

GetParent() As IGPDFBookmark

Return Value:

Parent bookmark of the bookmark or NULL if the bookmark is the root of its tree.


GetPrev

Group: Method

Description:

Gets the bookmark 's previous (left) sibling.

Declaration:

GetPrev() As IGPDFBookmark

Return Value:

Previous (left) sibling of the bookmark or NULL if the bookmark has no previous sibling (it is its parent's first child).


HasChildren

Group: Property

Description:

True if the bookmark has any children, False otherwise.

Property Summary:

Access
Read only
Data type
Boolean


Indent

Group: Property

Description:

The indentation level of the bookmark in its containing tree. The root level has an indentation level of zero.

Property Summary:

Access
Read only
Data type
Long


Open

Group: Property

Description:

True if the bookmark is open (shows all its children), False otherwise.

Property Summary:

Access
Read/Write
Data type
Boolean


Remove

Group: Method

Description:

Removes the bookmark's sub-tree from the bookmark tree containing it.

Declaration:

Remove()

Return Value:

N/A


RemoveAction

Group: Method

Description:

Removes the bookmark's action.

Declaration:

RemoveAction()

Return Value:

N/A


SetAction

Group: Method

Description:

Sets the bookmark's action.

Declaration:

SetAction(Action As IGPDFAction)

Parameters:

Action
The bookmark action to set.

Return Value:

N/A


SetColor

Group: Method

Description:

Sets the bookmark's color.

Declaration:

SetColor(Color As IGPixel)

Parameters:

Color
The bookmark's color to set. Must be in IG_PIXEL_RGB.

Return Value:

N/A


Title

Group: Property

Description:

String specifying the bookmark's title.

Property Summary:

Access
Read/Write
Data type
String


Unlink

Group: Method

Description:

Unlinks the current bookmark from the bookmark tree that contains it, and adjusts the tree appropriately.

Declaration:

Unlink()

Return Value:

N/A


IGPDFDestination

Type: Object

Description:

PDF destination object, which represents a particular view of a page in a document. It contains a reference to a page, a rectangle on that page, and information specifying how to adjust the view to fit the window's size and shape. See section 8.2, "Document-Level Navigation," in the PDF Reference for more information on destinations.

Interface:

IIGPDFDestination extends IIGObject

Class Members:

PageNumber
Property
The page number of the destination's page.
Type
Property
The destination type.
Zoom
Property
The destination's zoom factor.
GetFitType
Method
Gets the destination's fit type. Applies only to IG_PDF_DEST_EXPLICIT type of destination.
GetName
Method
Gets the destination's named attributes. Applies only to IG_PDF_DEST_NAMED type of destination.
GetRect
Method
Gets the destination rectangle. Applies only to IG_PDF_DEST_EXPLICIT type of destination.
Remove
Method
Removes a view destination object. Before deleting a view destination, ensure that no link or bookmark refers to it.
Resolve
Method
Resolves the destination.


GetFitType

Group: Method

Description:

Gets the destination's fit type. Applies only to IG_PDF_DEST_EXPLICIT type of destination.

Declaration:

GetFitType() As IGPDFAtom

Return Value:

Destination fit type. One of the Destination Fit Types values.


GetName

Group: Method

Description:

Gets the destination's named attributes. Applies only to IG_PDF_DEST_NAMED type of destination.

Declaration:

GetName() As IIGPDFBasObj

Return Value:

Basic array object for the destination. Returns NULL if the destination is invalid.


GetRect

Group: Method

Description:

Gets the destination rectangle. Applies only to IG_PDF_DEST_EXPLICIT type of destination.

Declaration:

GetRect() As IGPDFFixedRect

Return Value:

The destination's rectangle specified in user space coordinates.


PageNumber

Group: Property

Description:

The page number of the destination's page. Applies only to IG_PDF_DEST_EXPLICIT type of destination.

Property Summary:

Access
Read-only
Data type
Long


Remove

Group: Method

Description:

Removes a view destination object. Before deleting a view destination, ensure that no link or bookmark refers to it.

Declaration:

Remove()

Return Value:

N/A


Resolve

Group: Method

Description:

Resolves the destination. The destination is a value of the D key in an action. It can be a real destination (an array) or a name. If it is a name, look it up in Document Dests dictionary. The value found there can be a real destination (an array) or a dictionary. If it's a dictionary, look up the D key in that dictionary. This method is useful for getting an explicit view destination from an action.

Declaration:

Resolve(Document As IGPDFDoc) As IGPDFDestination

Parameters:

Document
The PDF document that contains the destination.

Return Value:

The resolved view destination.


Type

Group: Property

Description:

The destination type. One of the enumIGPDFDestinationType values.

Property Summary:

Access
Read-only
Data type
enumIGPDFDestinationType


Zoom

Group: Property

Description:

The destination's zoom factor. Applies only to IG_PDF_DEST_EXPLICIT type of destination.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


IGPDFDoc

Type: Object

Description:

PDF document object. The underlying PDF representation of a document. Through PDF Document, your application can perform most of the Edit Pages operations (delete, replace, and so on). Thumbnails can be created and deleted through this object. You can set and retrieve document information fields through this object as well.

Interface:

IIGPDFDoc extends IIGObject

Class Members:

Document
Property
IGDocument object associated with IGPDFDocument.
LayerCount
Property
Layer count for the document
PrintOptions
Property
Specifies a set of printing options used by PrintPages method.
CreateDictionary
Method
Creates a new optional-content membership dictionary object in the given document for the given layers and visibility policy.
CreateLayer
Method
Creates new layer (optional-content group) object in the document.
CreateNewPage
Method
Creates a new page at the specified location.
CreateWordFinder
Method
Creates a word finder that is used to extract text in the host encoding from a PDF file.
CreateWordFinderUCS
Method
Creates a word finder that is used to extract text in Unicode format from a PDF file.
GetBookmark
Method
Gets the root of the document's bookmark tree.
GetInfo
Method
Gets the value of a key in a document's Info dictionary, or the value of this same key in the XMP metadata, whichever is latest.
GetLayer
Method
Gets the layer with a specified index.
GetNewCryptHandler
Method
Gets the specified document's new security handler.
GetNewSecurityData
Method
Gets the security data for the specified document's new security handler.
GetNewSecurityInfo
Method
Gets the security information from the specified document's new security handler.
GetRoot
Method
This method returns the Catalog dictionary of the PDF document
GetSecurityData
Method
Gets the security data for the specified document's current security handler.
InsertPages
Method
Inserts PageCount pages from Doc2 into the current document.
PrintPages
Method
Prints PDF pages from a PDF document allowing the user to specify options such as page size, rotation, fit mode.
PermRequest
Method
Checks the permissions associated with the specified document using the latest permissions format and determines whether the requested operation is allowed for the specified object in the document.
RemoveLayer
Method
Destroys layer (optional-content group) object. This does not delete any content.
SetInfo
Method
Sets the value of a key in a document's Info dictionary.
SetNewCryptHandler
Method
Sets specified document's new security handler.
SetNewSecurityData
Method
Sets the security data structure for the specified document's new security handler.


CreateDictionary

Group: Method

Description:

Creates a new optional-content membership dictionary object in the given document for the given layers and visibility policy.

To add layer to the existing dictionary, get the current layers 'list, modify it, then create a new dictiobary with the new list of layers.

Declaration:

IIGPDFDoc.CreateDictionary(
    /*[in]*/ IIGPDFLayerArray* pArrLayers,
    /*[in]*/ LONG nVisPolicy,
    /*[out,retval]*/ IIGPDFDictionary ** ppPDFDictionary)

Parameters:

pArrLayers
Array of layers to be the members of the dictionary.
nVisPolicy
The visibility policy that determines the visibility of content with respect to the ON/OFF state of the layers listed in the dictionary.

Return Value:

The newly created dictionary object, or NULL if no layers are supplied.


CreateLayer

Group: Method

Description:

Creates new layer (optional-content group) object in the document.

Declaration:

IIGPDFDoc.CreateLayer(
    /*[in]*/ BSTR LayerName,
    /*[out,retval]*/ IIGPDFLayer** ppPDFLayer);

Parameters:

LayerName
The name of the layer.

Return Value:

The newly created group object.


CreateNewPage

Group: Method

Description:

Creates a new page at the specified location. At the end of processing, destroy the IGPDFPage object.

Declaration:

CreateNewPage (AfterPage As Long, MediaBox As IGPDFFixedRect)

Parameters:

AfterPage
The page number after which the new page is inserted. The first page is 0. Use IG_PDF_BEFORE_FIRST_PAGE to insert the new page at the beginning of a document.
MediaBox
Rectangle specifying the page's media box, specified in user space coordinates.

Return Value:

N/A


CreateWordFinder

Group: Method

Description:

Creates a word finder that is used to extract text in the host encoding from a PDF file.

NOTE: The word finder also extracts text from Form XObjects that are executed in the page contents. For information about Form XObjects, see Section 4.9 in the PDF Reference.

This method also works for non-Roman (CJK or Chinese-Japanese-Korean) viewers. In this case, words are extracted to the host encoding. Users desiring Unicode output must use CreateWordFinderUCS, which does the extraction for Roman or non-Roman text.

The type of WordFinder determines the encoding of the string returned by IGPDFWord.GetString. For instance, if CreateWordFinderUCS is used to create the word finder, IGPDFWord.GetString returns only Unicode.

For CJK viewers, words are stored internally using CID encoding. For more information on CIDFonts and related topics, see Section 5.6 in the PDF Reference. For detailed information on CIDFonts, see Technical Note #5092, CID-Keyed Font Technology Overview, and Technical Note #5014, Adobe CMap and CIDFont Files Specification.

Declaration:

CreateWordFinder ( EncInfo As IGIntegerArray, EncVec As
IGStringArray, LigatureTbl As IGStringArray, AlgVersion As
enumIGPDFWordFinderVersion, Flags As enumIGPDFWordFlags) As
IGPDFWordFinder

Parameters:

EncInfo
Array of 256 flags, specifying the type of character at each position in the encoding. Each flag is an OR of the Character Type Codes.
If EncInfo is NULL, the platform's default encoding info is used. Use EncInfo and EncInfo together; for every EncInfo use a corresponding EncVec to specify the character at that position in the encoding.
EncVec
Array of 256 null-terminated strings that are the glyph names in encoding order. See the discussion of character names in Section 5.3 of the PostScript Language Reference Manual, Third Edition.
If EncVec is NULL, the platform's default encoding vector is used.
Use this parameter with EncInfo.
LigatureTbl
A null-terminated array of null-terminated strings. Each string is the glyph name of a ligature in the font. When a word contains a ligature, the glyph name of the ligature is substituted for the ligature (for example, ff is substituted for the ff ligature).
If ligatureTbl is NULL, a default ligature table is used, containing the following ligatures: fi, ff, fl, ffi, ffl, ch, cl, ct, ll, ss, fs, st, oe, OE.
AlgVersion
The version of the word-finding algorithm to use.
Flags
Word-finding options that determine the tables filled when using IGPDFWordFinder.AcquireWordList. Must be an OR of one or more of enumIGPDFWordFlags.

Return Value:

IGPDFWordFinder object.


CreateWordFinderUCS

Group: Method

Description:

Creates a word finder that is used to extract text in Unicode format from a PDF file.

NOTES: The word finder also extracts text from Form XObjects that are executed in the page contents. For information about Form XObjects, see Section 4.9 in the PDF Reference.

CreateWordFinderUCS is useful for converting non-Roman text (CJK or Chinese-Japanese-Korean) to Unicode. This method also converts Roman text to Unicode in any document.

CreateWordFinder also works for non-Roman character set viewers. For CreateWordFinder, words are extracted to the host encoding. Users desiring Unicode output should use CreateWordFinderUCS.

The type of WordFinder determines the encoding of the string returned by IGPDFWord.GetString. For instance, if CreateWordFinderUCS is used to create the word finder, IGPDFWord.GetString returns only Unicode.

For CJK viewers, words are stored internally using CID encoding. For more information on CIDFonts and related topics, see Section 5.6 in the PDF Reference. For detailed information on CIDFonts, see Technical Note #5092, CID-Keyed Font Technology Overview, and Technical Note #5014, Adobe CMap and CIDFont Files Specification.

Declaration:

CreateWordFinderUCS (AlgVersion As enumIGPDFWordFinderVersion,
Flags As enumIGPDFWordFlags) As IGPDFWordFinder

Parameters:

AlgVersion
The version of the word-finding algorithm to use.
Flags
Word-finding options that determine the tables filled when using IGPDFWordFinder.AcquireWordList. Must be an OR of one or more of enumIGPDFWordFlags.

Return Value:

IGPDFWordFinder object.


Document

Group: Property

Description:

IGDocument object associated with IGPDFDocument.

Property Summary:

Access
Read-only
Data type
IGDocument
Default value
N/A


GetBookmark

Group: Method

Description:

Gets the root of the document's bookmark tree. The returned value is valid even if document's bookmark tree is empty.

Declaration:

GetBookmark() As IGPDFBookmark

Return Value:

The document's root bookmark.


GetInfo

Group: Method

Description:

Gets the value of a key in a document's Info dictionary, or the value of this same key in the XMP metadata, whichever is latest.

See Section 10.2.1 in the PDF Reference for information about Info dictionaries. All values in the Info dictionary should be strings; other data types such as numbers and Booleans should not be used as values in the Info dictionary.

Users may define their own Info dictionary entries. In this case, it is strongly recommended that the key have the developer's prefix assigned by the Adobe Solutions Network.

Declaration:

GetInfo (InfoKey As String) As String

Parameters:

InfoKey
The name of the Info dictionary key whose value is obtained.

Return Value:

String containing the value associated with InfoKey.


GetLayer

Group: Method

Description:

Gets the layer with a specified index.

Declaration:

GetLayer(Index As Long) As IGPDFLayer

Parameters:

Index
Index of the layer to obtain.

Return Value:

Layer object.


GetNewCryptHandler

Group: Method

Description:

This method gets the specified document's new security handler (that is, the security handler that will be used after the document is saved). If the document does not have a new security handler, returns the document's current security handler.

Declaration:

GetNewCryptHandler() As IGPDFAtom

Return Value:

The PDF atom corresponding to the name of the document's new security handler. NULL if the document does not have a new security handler.


GetNewSecurityData

Group: Method

Description:

This method gets the security data for the specified document's new security handler. Use GetSecurityData to get the security data for the document's current security handler.

Declaration:

GetNewSecurityData() As IGPDFSecurityData

Return Value:

The security data object for the document's new security handler.


GetNewSecurityInfo

Group: Method

Description:

This method gets the security information from the specified document's new security handler. No permissions are required to call this method.

Declaration:

GetNewSecurityInfo() As enumIGPDFSecurityInfoFlags

Return Value:

The document's new security information. The OR value of the enumIGPDFSecurityInfoFlags.


GetRoot

Group: Method

Description:

This method returns the Catalog dictionary of the PDF document (this Catalog dictionary is the root of a PDF document's object hierarchy).

See also the PDF Reference, ch.3.6.

Declaration:

GetRoot() as IGPDFBasDict

Return Value:

The resulting Catalog dictionary.

Sample:

PDF

See Also:

IGPDFBasDict


GetSecurityData

Group: Method

Description:

This method gets the security data for the specified document's current security handler. Use GetNewSecurityData to get the data for the document's new security handler.

Declaration:

GetSecurityData() As IGPDFSecurityData

Return Value:

The document's current security data object.


InsertPages

Group: Method

Description:

This method inserts PageCount pages from Doc2 into the current document. All annotations as well as anything else associated with the page (such as a thumbnail image) are copied from the Doc2 pages to the new pages in the current document. This method does not insert the data, if the current document equals Doc2. The InsertFlags parameter controls whether bookmarks and threads are inserted along with the specified pages.

Declaration:

InsertPages(AfterPage As Long, Doc2 As IGPDFDoc, StartPage As
Long, PageCount As Long, InsertFlags As enumIGPDFInsertFlags)

Parameters:

AfterPage
The page number in the current document after which pages from Doc2 are inserted. The first page is 0. If IG_PDF_BEFORE_FIRST_PAGE is used, the pages are inserted before the first page in the current document. Use IG_PDF_LAST_PAGE to insert pages after the last page in the current document.
Doc2
The document containing the pages that are inserted into the current document.
StartPage
The page number of the first page in Doc2 to insert into the current document. The first page is 0.
PageCount
The number of pages in Doc2 to insert into the current document. Use IG_PDF_ALL_PAGES to insert all pages from Doc2 into the current document.
InsertFlags
Flags that determine what additional information is copied from Doc2 into the current document. An OR of enumIGPDFInsertFlags constants:
  • IG_PDF_INSERT_BOOKMARKS - Inserts bookmarks as well as pages. The bookmark tree of Doc2 is merged into the bookmark tree of the current document by copying it as a new first-level subtree of the current document's bookmark tree root, of which it becomes the last child. If the current document has no bookmark tree, it acquires one identical to the bookmark tree from Doc2.
  • IG_PDF_INSERT_THREADS - Inserts threads as well as pages.
  • IG_PDF_INSERT_ALL - Inserts document data from pages.

Return Value:

None


LayerCount

Group: Property

Description:

Layer count for the document.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


PrintOptions

Group: Property

Description:

Specifies a set of printing options used by PrintPages method.

Property Summary:

Access
Read-only
Data type
IGPDFPrintOptions
Default value
N/A


PrintPages

Group: Method

Description:

Prints PDF pages from a PDF document allowing the user to specify options such as page size, rotation, fit mode.

Declaration:

PrintPages ()

Return Value:

N/A


PermRequest

Group: Method

Description:

This method checks the permissions associated with the specified document using the latest permissions format and determines whether the requested operation is allowed for the specified object in the document.

Declaration:

PermRequest (PermReqObj As enumIGPDFPermReqObj,
PermReqOpr As enumIGPDFPermReqOpr, AuthData As String) As
enumIGPDFPermReqStatus

Parameters:

PermReqObj
The target object of the permissions request.
PermReqOpr
The target operation of the permissions request.
AuthData
An authorization data (password string).

Return Value:

One of enumIGPDFPermReqStatus request status constants.


RemoveLayer

Group: Method

Description:

Destroys layer (optional-content group) object. This does not delete any content.

Declaration:

IIGPDFDoc.RemoveLayer(
    /*[in]*/ IIGPDFLayer* pPDFLayer);
CIGPDFLayer::RemoveFromDoc();

Parameters:

pPDFLayer
The layer object.

Return Value:

None


SetInfo

Group: Method

Description:

Sets the value of a key in a document's Info dictionary.

See Section 10.2.1 on Info dictionaries in the PDF Reference for information about Info dictionaries. All values in the Info dictionary should be strings; other data types such as numbers and Booleans should not be used as values in the Info dictionary. If an info dictionary key is specified that is not currently in the info dictionary, it is added to the dictionary.

Declaration:

SetInfo (InfoKey As String, Value As String)

Parameters:

InfoKey
The name of the Info dictionary key whose value is set.
Value
String containing the value to associate with InfoKey.

Return Value:

N/A


SetNewCryptHandler

Group: Method

Description:

This method sets specified document's new security handler (the security handler that will be used after the document is saved). This method returns with no action if the new security handler is the same as the old one.

Declaration:

SetNewCryptHandler(NewCryptHandler As IGPDFAtom)

Parameters:

NewCryptHandler
The PDF atom for the name of the new security handler to use for the document. Use NULL to remove security from the document.

Return Value:

None


SetNewSecurityData

Group: Method

Description:

This method sets the security data structure for the specified document's new security handler. The new security handler must have been previously set using SetNewCryptHandler.

Declaration:

SetNewSecurityData(NewSecurityData As IGPDFSecurityData)

Parameters:

NewSecurityData
The new security data object to set for doc.

Return Value:

None


IGPDFFont

Type: Object

Description:

PDF font object is used to draw text on a page.

Interface:

IIGPDFFont extends IIGObject

Class Members:

GetBBox
Method
Gets a Type 3 font's bounding box.
GetCharSet
Method
Gets the font's character set.
GetCIDSystemInfo
Method
Gets Registry and Ordering information for a CIDFont.
GetCIDSystemSupplement
Method
Gets the SystemSupplement number of a CIDFont.
GetDescendant
Method
Gets a Type 0 font's descendant.
GetEncodingIndex
Method
Gets a font's encoding index.
GetEncodingName
Method
Gets a string representing a font's encoding.
GetFontMatrix
Method
Gets a font's matrix.
GetMetrics
Method
Gets a font's metrics.
GetName
Method
Gets the name of a font.
GetSubtype
Method
Gets a font's subtype.
GetWidths
Method
Gets the advance width of every glyph in a font.
IsEmbedded
Method
Tests whether the specified font is embedded in the PDF file.
SetMetrics
Method
Sets a font's metrics.


GetBBox

Group: Method

Description:

Gets a Type 3 font's bounding box, which is the smallest rectangle that would enclose every character in the font if they were overlaid and painted.

Declaration:

GetBBox() As IGPDFFixedRect

Return Value:

Returns the font's bounding box.


GetCharSet

Group: Method

Description:

Gets the font's character set. For non-Roman character set viewers.

Declaration:

GetCharSet() As enumIGPDFCharSet

Return Value:

Returns the font's character set.


GetCIDSystemInfo

Group: Method

Description:

Gets Registry and Ordering information for a CIDFont. GetCIDSystemInfo() takes either a Type 0 font or descendant font (CIDType0 or CIDType2) as an argument. This information is always present for any Type 0 font; the actual registry ordering information is a part of the descendant font.

Declaration:

GetCIDSystemInfo() As IGPDFAtom

Return Value:

Returns CIDFont's Registry and Ordering information.


GetCIDSystemSupplement

Group: Method

Description:

Get the SystemSupplement number of a CIDFont.

Declaration:

GetCIDSystemSupplement() As Long

Return Value:

Returns the SystemSupplement field from the CIDFont.


GetDescendant

Group: Method

Description:

Gets a Type 0 font's descendant, which may be a CIDType0 or CIDType2 font.

Declaration:

GetDescendant() As IGPDFFont

Return Value:

Returns the font's descendant font.


GetEncodingIndex

Group: Method

Description:

Gets a font's encoding index. For non-Roman character set viewers, it is not appropriate to call this method. Call GetEncodingName() instead.

Declaration:

GetEncodingIndex() As Long

Return Value:

Returns a font encoding index.


GetEncodingName

Group: Method

Description:

Gets a string representing a font's encoding. Use GetEncodingIndex() to get encoding information for Roman viewers.

Declaration:

GetEncodingName() As BSTR

Return Value:

Returns string representing the font's encoding.


GetFontMatrix

Group: Method

Description:

Gets a font's matrix, which specifies the transformation from character space to text space. This is only valid for Type 3 fonts.

Declaration:

GetFontMatrix() As IGPDFFixedMatrix

Return Value:

Returns the font's matrix.


GetMetrics

Group: Method

Description:

Gets a font's metrics, which provide the information needed to create a substitute multiple master font when the original font is unavailable.

Declaration:

GetMetrics() As IGPDFFontMetrics

Return Value:

Returns the font's metrics


GetName

Group: Method

Description:

Gets the name of a font. The behavior depends on the font type; for a Type 3 font it gets the value of the Name key in a PDF Font resource. For other types it gets the value of the BaseFont key in a PDF font resource.

Declaration:

GetName() As BSTR

Return Value:

Returns the font's name.


GetSubtype

Group: Method

Description:

Gets a font's subtype.

Declaration:

GetSubtype() As IGPDFAtom

Return Value:

Returns the font's subtype.


GetWidths

Group: Method

Description:

Gets the advance width of every glyph in a font. The advance width is the amount by which the current point advances when the glyph is drawn. The advance width may not correspond to the visible width of the glyph (for example, a glyph representing an accent mark might have an advance width of zero so that characters can be drawn under it). For this reason, the advance width cannot be used to determine the glyphs' bounding boxes. For non-Roman character set viewers, this method gets the width for a single byte range (0 through 255).

Declaration:

GetWidths() As IGIntegerArray

Return Value:

Returns an array of glyph advance widths, measured in character space units. Unencoded code points will have a width of zero. For non-Roman character set viewers, an array for a single byte range (0 through 255).


IsEmbedded

Group: Method

Description:

Tests whether the specified font is embedded in the PDF file (that is, the font is stored as a font file, which is a stream embedded in the PDF file). Only Type 1 and TrueType fonts can be embedded.

Declaration:

IsEmbedded() As Boolean

Return Value:

Returns true if the font is embedded in the file, false otherwise.


SetMetrics

Group: Method

Description:

Sets a font's metrics, which provide the information needed to create a substitute multiple master font when the original font is unavailable. This method can only be used on Type 1, multiple master Type 1, and TrueType fonts; it cannot be used on Type 3 fonts.

Declaration:

SetMetrics(FontMetrics As IGPDFFontMetrics)

Parameters:

FontMetrics
The new font's metrics.

Return Value:

N/A


IGPDFFontMetrics

Type: Object

Description:

PDF Font Metrics.

Interface:

IIGPDFFontMetrics extends IIGObject

Class Members:

Ascent
Property
Max ascender height.
ItalicAngle
Property
Average character width.
BaseLineAdj
Property
Baseline adjustment.
BBox
Property
Font bounding box in 1000 EM units.
CapHeight
Property
Capital height.
Descent
Property
Max descender depth.
Flags
Property
Must be an OR of the Font Flags values.
FontStyle
Property
Panose and sFamily class values.
ItalicAngle
Property
Italic angle in degrees, if any.
Leading
Property
Additional leading between lines.
MaxWidth
Property
Maximum character width.
MissingWidth
Property
Width of missing character.
StemH
Property
Horizontal stem width.
StemV
Property
Vertical stem width.
XHeight
Property
X height.


Ascent

Group: Property

Description:

Max ascender height.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


AvgWidth

Group: Property

Description:

Average character width.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


BaseLineAdj

Group: Property

Description:

Baseline adjustment, which is a vertical adjustment for font baseline difference and writing mode 1 (vertical). This should only be used for CIDFontType 2 fonts with font substitution.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


BBox

Group: Property

Description:

Font bounding box in 1000 EM units. (An EM is a typographic unit of measurement equal to the size of a font. In a 12-point font, an EM is 12 points.)

Property Summary:

Access
Read
Data type
IGPDFFixedRect
Default value
None


CapHeight

Group: Property

Description:

Capital height.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


Descent

Group: Property

Description:

Max descender depth.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


Flags

Group: Property

Description:

Must be an OR of the Font Flags values. All unused flags must be off.

Property Summary:

Access
Read-Write
Data type
Long
Default value
None


FontStyle

Group: Property

Description:

Panose and sFamily class values.

Property Summary:

Access
Read-write
Data type
IGPDFFontStyle
Default value
None


ItalicAngle

Group: Property

Description:

Italic angle in degrees, if any.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


Leading

Group: Property

Description:

Additional leading between lines.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


MaxWidth

Group: Property

Description:

Maximum character width.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


MissingWidth

Group: Property

Description:

Width of missing character.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


StemH

Group: Property

Description:

Horizontal stem width.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


StemV

Group: Property

Description:

Vertical stem width.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


XHeight

Group: Property

Description:

X height.

Property Summary:

Access
Read-write
Data type
Short
Default value
None


IGPDFFontStyle

Type: Object

Description:

PDF font style.

Interface:

IIGPDFFontStyle extends IIGObject

Class Members:

FamilyClassID
Property
Number that identifies the font family and determines the meaning of the remaining Panose digits.
FamilySubclassID
Property
Number to identify the kind of family.
FamilyType
Property
Number to identify the family type.
SerifStyle
Property
Number that specifies the font's serif style.
Proportion
Property
Number that specifies the font's proportions.
Weight
Property
Number that specifies the font's weight.


FamilyClassID

Group: Property

Description:

Number that identifies the font family and determines the meaning of the remaining Panose digits. Possible families are Latin, Kanji, Hebrew, and so forth.

Property Summary:

Access
Read-Write
Data type
Unsigned char
Default value
None


FamilySubclassID

Group: Property

Description:

Number to identify the kind of family: text, decorative, handwritten, symbols, and so on.

Property Summary:

Access
Read-Write
Data type
Unsigned char
Default value
None


FamilyType

Group: Property

Description:

Number to identify the family type: text, decorative, handwritten, symbols, and so on.

Property Summary:

Access
Read-Write
Data type
Unsigned char
Default value
None


SerifStyle

Group: Property

Description:

Number that specifies the font's serif style, such as cove, obtuse cove, square, bone, and so forth.

Property Summary:

Access
Read-Write
Data type
Unsigned char
Default value
None


Proportion

Group: Property

Description:

Number that specifies the font's proportions, such as modern, expanded, condensed, mono-spaced, and so on.

Property Summary:

Access
Read-Write
Data type
Unsigned char
Default value
None


Weight

Group: Property

Description:

Number that specifies the font's weight, such as very light, heavy, black, and so on.

Property Summary:

Access
Read-Write
Data type
Unsigned char
Default value
None


IGPDFLayer

Type: Object

Description:

PDF layer object represents a named object whose state can be toggled in a UI to affect changes in visibility of content.

Interface:

IIGPDFLayer extends IIGObject

Class Members:

CurrentState
Property
Current ON-OFF state of the layer object.
HasUsageInfo
Property
Tests whether a layer object is associated with a Usage dictionary.
InitialState
Property
Initial ON-OFF state of the layer object.
Name
Property
The name of the layer.
GetIntent
Method
Gets the intent list for a layer.
GetUsageInfo
Method
Gets usage information from a layer object.
SetIntent
Method
Sets the Intent entry in a layer's dictionary.
SetUsageInfo
Method
Sets a Usage dictionary entry in a layer object.
UniqueID
Method
Returns some 32bit integer that is unique for all Layer objects.


CurrentState

Group: Property

Description:

Current ON-OFF state of the layer object, True if the state is ON, False if it is OFF.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


GetIntent

Group: Method

Description:

Gets the intent list for a layer. Intent is an atom value broadly describing the intended use, either View or Design. A layer's content is considered to be optional (that is, the layer's state is considered in its visibility) if any intent in its list matches an intent of the context. The intent list of the context is usually set from the intent list of the document configuration.

Declaration:

GetIntent() As IGPDFAtomArray

Return Value:

Returns an array of the intent entries.


GetUsageInfo

Group: Method

Description:

Gets usage information from a layer object. A Usage dictionary entry provides more specific intended usage information than an intent entry.

Declaration:

GetUsageInfo(UsageKey As IGPDFAtom) As IIGPDFBasObj

Parameters:

UsageKey
The usage key in the usage dictionary entry. Possible key values are:
  • CreatorInfo
  • Language
  • Export
  • Zoom
  • Print
  • View
  • User
  • PageElement

Return Value:

Returns the usage information associated with the given key in the Usage dictionary for the layer, or a NULL, if the operation fails (because the layer is malformed or has no dictionary, or because the dictionary has no entry corresponding to the given key).


HasUsageInfo

Group: Property

Description:

Tests whether a layer object is associated with a Usage dictionary. True if the layer has a Usage dictionary, False otherwise.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
False


InitialState

Group: Property

Description:

Initial ON-OFF state of the layer object, True if the state is initially ON, False if it is OFF.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


Name

Group: Property

Description:

Provides the name of the Layer.

Property Summary:

Access
Read-Write
Data type
String
Default value
N/A


SetIntent

Group: Method

Description:

Sets the Intent entry in a layer's dictionary. Intent is an atom value broadly describing the intended use, either View or Design. A layer's content is considered to be optional (that is, the layer's state is considered in its visibility) if any intent in its list matches an intent of the context. The intent list of the context is usually set from the intent list of the document configuration.

Declaration:

SetIntent(Intent As IGPDFAtomArray)

Parameters:

Intent
The new Intent entry value, an array of intent entries (atoms).

Return Value:

N/A


SetUsageInfo

Group: Method

Description:

Sets a Usage dictionary entry in a layer object. The entry associates usage information with an entry key for retrieval. If a dictionary does not exist, the method creates one.

A Usage dictionary entry provides more specific intended usage information than an intent entry.

The usage value can act as a kind of metadata, describing the sort of things that belong to the layer: for example, text in French, fine detail on a map, or a watermark. The usage values can also be used by the AutoState mechanism to make decisions about what layers should be on and what layers should be off.

Declaration:

SetUsageInfo(UsageKey As IGPDFAtom, UsageInfo As IIGPDFBasObj)

Parameters:

UsageKey
The usage key in the usage dictionary entry. Possible key values are:
  • CreatorInfo
  • Language
  • Export
  • Zoom
  • Print
  • View
  • User
  • PageElement
UsageInfo
The usage information to associate with the key.

Return Value:

N/A


UniqueID

Group: Method

Description:

Returns some 32bit integer that is unique for all Layer objects. In other words, it is guaranteed that there cannot be two Layer objects with the same UniqueIds.

Can be used for Layer objects' identification.

Declaration:

IIGPDFLayer.UniqueId
(propget)

Return Value:

An unique identifier of this Layer Object.


IGPDFPage

Type: Object

Description:

PDF page object. A single page in the PDF representation of a document. A page contains a series of objects representing the objects drawn on the page (Graphic), a list of resources used in drawing the page, annotations (Annotation), an optional thumbnail image of the page, and the beads used in any articles that occur on the page.

Interface:

IIGPDFPage extends IIGObject

Class Members:

AnnotationCount
Property
The number of annotations on the IGPDFPage.
Page
Property
IGPage object associated with IGPDFPage.
Rotation
Property
The rotation of the IGPDFPage.
GetContent
Method
Creates IGPDEContent from IGPDFPage contents and resources.
GetCropBox
Method
Gets the crop box of the IGPDFPage.
MakeColorSeparations
Method
Separates pages' DeviceN colorants into individual layers.
ReleaseContent
Method
Decrements IGPDFPage's PDF content internal reference count.
ResetDisplayCache
Method
Causes IG display API to re-render PDF page content for display.
SetContent
Method
Sets the page's PDF content back into the IGPDFPage object, using the same compression filters with which the content was previously encoded.


AnnotationCount

Group: Property

Description:

The number of annotations on the IGPDFPage.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


GetContent

Group: Method

Description:

Creates IGPDEContent from IGPDFPage contents and resources. The PDF content is cached, so that subsequent calls on the same page return the same PDF content.

Declaration:

GetContent () As IGPDEContent

Return Value:

IGPDEContent object


GetCropBox

Group: Method

Description:

Gets the crop box of the page.

Declaration:

GetCropBox() As IGPDFFixedRect

Return Value:

IGPDFFixedRect object


MakeColorSeparations

Group: Method

Description:

Separates pages' DeviceN colorants into individual layers. The result page is inserted in Doc after the page with index AfterPage.

Declaration:

Sub MakeColorSeparations(ColorChannels As IGPDFAtomArray, Doc
As IGPDFDoc, AfterPage As Long)

Parameters:

ColorChannels
Atom array containing the colorant names to separate. Example: "C", "M", "Y", "K", "PANTONE 300 C", etc.
Doc
Output PDF document
AfterPage
The page number in the output PDF document after which the result page is inserted.

Return Value:

None

Example:

'Create a temp atom
Dim temp_atom As IGPDFAtom
Set temp_atom = frmMain.IGPDFCtl1.CreateObject(IG_PDF_ATOM)
'Create 2 items array
Dim ColorChannels As IGPDFAtomArray
Set ColorChannels =
frmMain.IGPDFCtl1.CreateObject(IG_PDF_ATOMARRAY)
ColorChannels.Resize(2)
'Set K channel
temp_atom.String = "K"
ColorChannels.Item(0) = temp_atom
'Set C channel
temp_atom.String = "C"
ColorChannels.Item(1) = temp_atom
curPDFPage.MakeColorSeparations ColorChannels, curPDFDoc,
curDoc.PageCount - 1


Page

Group: Property

Description:

IGPage object associated with IGPDFPage.

Property Summary:

Access
Read-only
Data type
IGPage
Default value
N/A


ReleaseContent

Group: Method

Description:

Decrements IGPDFPage's PDF content internal reference count. The content is not automatically deleted when the reference count becomes zero - it remains in the cache until the cache slot is needed for another IGPDFPage. Thus, you do not need to keep a content acquired for performance reasons.

Declaration:

ReleaseContent ()

Return Value:

N/A


ResetDisplayCache

Group: Method

Description:

Causes IG display API to re-render PDF page content for display.

Declaration:

ResetDisplayCache ()

Return Value:

N/A


Rotation

Group: Property

Description:

Gets the rotation of the IGPDFPage.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


SetContent

Group: Method

Description:

Sets the page's PDF content back into the IGPDFPage object, using the same compression filters with which the content was previously encoded.

Declaration:

SetContent ()

Return Value:

N/A


IGPDFPreflight

Type: Class

Description:

This class provides PDF preflight capabilities.

Declaration:

Class IGPDFPreflight

Class Members:

VerifyCompliance
Method
Analyzes the PDF document preflight that was created for compliance with PDF/A and PDF/X standards.


VerifyCompliance

Group: Method

Description:

This method analyzes the PDF document the preflight that was created for and checks it for compliance with PDF/A and PDF/X standards. The result is returned as an IGPDFPreflightReport object.

If the document is compliant with the specified profile, the output report's code value is equal to IG_PDF_PREFLIGHT_SUCCESS. If it is not compliant, the output report's code value is equal to IG_PDF_PREFLIGHT_INCOMPLIANT_DOCUMENT, and its records' tree will have a complete report of incompliances.

Declaration:

VerifyCompliance(Profile As enumIGPDFPreflightProfile,
StartPage As Long, PageCount As Long) As IGPDFPreflightReport

Parameters:

Profile
Preflight profile verify compliance with.
StartPage
Document's start page to verify.
PageCount
The number of pages to verify. Specify -1 to verify all pages.

Return Value:

Result of verification as an IGPDFPreflightReport object.


IGPDFPreflightReport

Type: Class

Description:

This class contains PDF preflight report in a tree form.

Declaration:

Class IGPDFPreflightReport

Class Members:

Code
Property
Preflight report code of the current report node.
Description
Property
Description of the current report node.
RecordCount
Property
The number of records in the current report node.
GetRecord
Method
This method gets the child report node with the specified index.


Code

Group: Property

Description:

Preflight report code of the current report node.

Property Summary:

Access
Read only
Data type
enumIGPDFPreflightReportCodes
Default value
N/A


Description

Group: Property

Description:

Description of the current report node.

Property Summary:

Access
Read only
Data type
String
Default value
N/A


GetRecord

Group: Method

Description:

This method gets the child report node with the specified index.

Declaration:

GetRecord(Index As Long) As IGPDFPreflightReport

Parameters:

Index
The index to specify.

Return Value:

IGPDFPreflightReport


RecordCount

Group: Property

Description:

The number of records in the current report node.

Property Summary:

Access
Read Only
Data type
Long
Default value
N/A


IGPDFSecurityData

Type: Object

Description:

PDF security data object describes data for the standard security handler.

Interface:

IIGPDFSecurityData extends IIGObject

Class Members:

EncryptAttachmentsOnly
Property
Flag to indicate that only Attachments are encrypted
EncryptMetadata
Property
Flag that indicates whether document metadata will be encrypted.
EncryptMethod
Property
Method of encryption for filters to use.
HasOwnerPW
Property
True if the owner password is provided, false otherwise.
HasUserPW
Property
True if the user password is provided, false otherwise.
KeyLength
Property
Encryption key length in byte.
NewOwnerPW
Property
True if the owner password should be changed, false otherwise.
NewUserPW
Property
True if the user password should be changed, false otherwise.
OwnerPW
Property
The owner password string.
Perms
Property
Permissions to allow.
Revision
Property
Indicates /R revision value.
UserPW
Property
The user password string.


EncryptAttachmentsOnly

Group: Property

Description:

Flag to indicate that only Attachments are encrypted - EncryptMetadata and EncryptAttachmentsOnly cannot both be True.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


EncryptMetadata

Group: Property

Description:

Flag that indicates whether document metadata will be encrypted.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


EncryptMethod

Group: Property

Description:

Method of encryption for filters to use. One of the enumIGPDFStdSecurityMethod values.

Property Summary:

Access
Read-Write
Data type
enumIGPDFStdSecurityMethod
Default value
any value of enumIGPDFStdSecurityMethod


HasOwnerPW

Group: Property

Description:

True if the owner password is provided, False otherwise.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


HasUserPW

Group: Property

Description:

True if the user password is provided, False otherwise.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


KeyLength

Group: Property

Description:

Encryption key length in byte.

Property Summary:

Access
Read-Write
Data type
Long
Default value
N/A


NewOwnerPW

Group: Property

Description:

True if the owner password should be changed, False otherwise.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


NewUserPW

Group: Property

Description:

True if the user password should be changed, False otherwise.

Property Summary:

Access
Read-Write
Data type
Boolean
Default value
False


OwnerPW

Group: Property

Description:

The owner password string.

Property Summary:

Access
Read-Write
Data type
String
Default value
N/A


Perms

Group: Property

Description:

Permissions to allow. An OR of the enumIGPDFPermsFlags values.

Property Summary:

Access
Read-Write
Data type
enumIGPDFPermsFlags
Default value
N/A


Revision

Group: Property

Description:

Indicates /R revision value.

Property Summary:

Access
Read-Write
Data type
enumIGPDFRevision
Default value
N/A


UserPW

Group: Property

Description:

The user password string.

Property Summary:

Access
Read-Write
Data type
String
Default value
N/A


IGPDFStream

Type: Object

Description:

PDF Stream object. A data stream that may be a buffer in memory, or an arbitrary user-written procedure. Typically used to extract or provide data.

Interface:

IIGPDFStream extends IIGObject

Class Members:

Close
Method
Closes the stream.
Flush
Method
Flushes any buffered data to the specified stream.
OpenMemForRead
Method
Opens a read-only PDF stream from a memory-resident buffer.
Read
Method
Reads data from the stream into memory.


Close

Group: Method

Description:

Closes the stream.

Declaration:

Close()

Return Value:

N/A


Flush

Group: Method

Description:

Flushes any buffered data to the specified stream.

Declaration:

Flush() As Long

Return Value:

0 if successful, otherwise non-zero.


OpenMemForRead

Group: Method

Description:

Opens a read-only PDF stream from a memory-resident buffer. The stream is seek-able.

Declaration:

OpenMemForRead (Data As IGIntegerArray)

Parameters:

Data
Buffer containing the data to read into the stream. This data buffer must not be disposed of until the stream is closed.

Return Value:

N/A


Read

Group: Method

Description:

Reads data from the stream into memory.

Declaration:

Read (Items As Long, ItemSize As Integer) As
IGIntegerArray

Parameters:

Items
Number of items to read. The amount of data read into the memory buffer will be Items × ItemSize, unless an EOF is encountered first.
The relative values of Items and ItemSize really do not matter; the only thing that matters is their product. It is often convenient to set ItemSize to 1, so that Items is the number of bytes to read.
ItemSize
Number of bytes in an item in the stream.

Return Value:

IGIntegerArray which contains stream data.


IGPDFStreamReadEventParams

Type: Class

Description:

Parameters for the IGPDFCtl . StreamRead event.

Class Members:

Type
property
One of enumIGPDFStreamType values.
ByteArray
property
IGIntegerArray object allocated by ImageGear for the amount of bytes requested for reading. Must be filled in the event procedure by user.


Type

Group: Property

Description:

One of enumIGPDFStreamType values specifying the stream event type.

Property Summary:

Data Type:
enumIGPDFStreamType
Default Value:
IG_STREAM_READ
Access:
Read only
Settings:
Any of enumIGPDFStreamType values
Bits Per Pixel:
N/A
Sample:
ig_pdf_vb6.exe


ByteArray

Group: Property

Description:

IGIntegerArray object allocated by ImageGear for the amount of bytes requested for reading. Must be filled in the event procedure by user.

Property Summary:

Data Type:
IGIntegerArray
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
ig_pdf_vb6.exe


IGPDFStreamWriteEventParams

Type: Class

Description:

Parameters for the IGPDFCtl . StreamWrite event.

Class Members:

Type
property
One of enumIGPDFStreamType values.
ByteArray
property
IGIntegerArray object allocated by ImageGear for the amount of bytes requested for reading. Must be filled in the event procedure by user.


Type

Group: Property

Description:

One of enumIGPDFStreamType values specifying the stream event type.

Property Summary:

Data Type:
enumIGPDFStreamType
Default Value:
IG_STREAM_WRITE
Access:
Read only
Settings:
Any of enumIGPDFStreamType values
Bits Per Pixel:
N/A
Sample:
ig_pdf_vb6.exe


IGPDFStyle

Type: Object

Description:

PDF style object provides access to information about the fonts, font sizes, and colors used in a Word.

Interface:

IIGPDFStyle extends IIGObject

Class Members:

FontSize
Property
A style's font size.
GetColor
Method
Gets a style's color.
GetFont
Method
Gets the specified style's font.


FontSize

Group: Property

Description:

A style's font size.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


GetColor

Group: Method

Description:

Gets a style's color.

Declaration:

GetColor() As IGPixel

Return Value:

IGPixel which contains the color of the style.


GetFont

Group: Method

Description:

Gets a style's font.

Declaration:

GetFont() As IGPDFFont

Return Value:

IGPDFFont which contains the font of the style.


IGPDFSysEncoding

Type: Object

Description:

System encoding object provides system encoding for a PDF file.

Interface:

IIGPDFSysEncoding extends IIGObject

Class Members:

IsIdentity
Property
True for Identity-H or Identity-V encoding; false otherwise.
IsMultibyte
Property
True for CMap encoding; false otherwise.
WritingMode
Property
Writing mode (horizontal or vertical).


IsIdentity

Group: Property

Description:

True for Identity-H or Identity-V encoding; false otherwise.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


IsMultibyte

Group: Property

Description:

True for CMap encoding; false otherwise.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


WritingMode

Group: Property

Description:

Writing mode. 0 for horizontal writing and 1 for vertical writing.

Property Summary:

Access
Read-only
Data type
Integer
Default value
N/A


IGPDFSysFont

Type: Object

Description:

System font object. A reference to a font installed in the host system. SysFont methods allow you to list the fonts available in the host system and to find a font in the system that matches a PDE Font, if it is present.

Interface:

IIGPDFSysFont extends IIGObject

Class Members:

GetAttributes
Method
Gets the attributes of a system font.
GetCIDOrdering
Method
Gets the ordering information of a multi-byte system font.
GetCIDRegistry
Method
Gets the registry information of a multi-byte system font.
GetCIDSupplement
Method
Gets the supplement information of a multi-byte system font.
GetCreateFlags
Method
Obtains create flags that can be passed to the PDE font creation routine.
GetInfo
Method
Gets high-level information about a system font.
GetName
Method
Gets the PostScript or TrueType styled name for a system font.
GetWidths
Method
Gets the widths of a single byte encoded system font.


GetAttributes

Group: Method

Description:

Gets the attributes of a system font.

Declaration:

GetAttributes() As IGPDEFontAttrs

Return Value:

IGPDEFontAttrs object.


GetCIDOrdering

Group: Method

Description:

Gets the ordering information of a multi-byte system font. This information can be used to create a PDE Font from a system font.

Declaration:

GetCIDOrdering() As IGPDFAtom

Return Value:

IGPDFAtom object.


GetCIDRegistry

Group: Method

Description:

Gets the registry information of a multi-byte system font. This information can be used to create a PDE Font from a system font.

Declaration:

GetCIDRegistry() As IGPDFAtom

Return Value:

IGPDFAtom object.


GetCIDSupplement

Group: Method

Description:

Gets the supplement information of a multi-byte system font. This information can be used to create a PDE Font from a system font.

Declaration:

GetCIDSupplement() As IGPDFAtom

Return Value:

IGPDFAtom object.


GetCreateFlags

Group: Method

Description:

Obtains create flags that can be passed to the PDE font creation routine. If the combination of the current SysFont and SysEncoding is not allowed, it is set to IG_PDE_FONT_CREATE_NOT_ALLOWED.

Declaration:

GetCreateFlags (SysEncoding As IGPDFSysEncoding) As
enumIGPDEFontCreateFlags

Parameters:

SysEncoding
A SysEncoding object.

Return Value:

Obtains enumIGPDEFontCreateFlags flags that can be passed to the PDE font creation routine.


GetInfo

Group: Method

Description:

Gets high-level information about a system font.

Declaration:

GetInfo() As IGPDEFontInfo

Return Value:

IGPDEFontInfo object.


GetName

Group: Method

Description:

Gets the PostScript or TrueType styled name for a system font.

Declaration:

GetName() As IGPDFAtom

Return Value:

IGPDFAtom object.


GetWidths

Group: Method

Description:

Gets the widths of a single byte encoded system font.

Declaration:

GetWidths (mmDesignVector As IGIntegerArray) As IGIntegerArray

Parameters:

mmDesignVector
If the current SysFont is a multiple master font, points to the design vector, whose length must equal the number of design axes of the SysFont.

Return Value:

IGIntegerArray of the widths of a single byte encoded system font.


IGPDFSysFontEnumerateEventParams

Type: Class

Description:

Parameters for IGPDFCtl . SysFontEnumerate event.

SysFont
The system font currently being enumerated.
CancelAction
Cancels the enumeration. True to halt enumeration; False to continue enumeration.

Class Members:

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SysFont

Group: Property

Description:

The system font currently being enumerated.

Property Summary:

Data Type:
IGPDFSysFont object
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
ig_pdf_vb6.exe


IGPDFWord

Type: Object

Description:

PDF word object. A word in a PDF file. Each word contains a sequence of characters in one or more styles (see IGPDFStyle).

Interface:

IIGPDFWord extends IIGObject

Class Members:

CharOffset
Property
A word's character offset from the beginning of its page.
GetCharStyle
Method
Returns a PDF Style object for the specified style in a word.
GetQuad
Method
The specified word's quad, specified in user space coordinates.
GetStyleTransition
Method
Gets the locations of style transitions in a word.
Length
Property
The number of bytes in a word.
QuadCount
Property
The number of quads in a word.
String
Property
Gets a word's text and also converts ligatures to their constituent characters.


CharOffset

Group: Property

Description:

A word's character offset from the beginning of its page.

Property Summary:

Access
Read-only
Data type
Integer
Default value
N/A


GetCharStyle

Group: Method

Description:

Returns a PDF Style object for the specified style in a word.

Declaration:

GetCharStyle (WordFinder As IGPDFWordFinder, Index As Long) As
IGPDFStyle

Parameters:

WordFinder
A word finder object.
Index
The index of the style to obtain. The first style in a word has an index of zero.

Return Value:

IGPDFStyle object.


GetQuad

Group: Method

Description:

The specified word's quad, specified in user space coordinates. See QuadCount property for a description of a quad.

The quad's height is the height of the font's bounding box, not the height of the tallest character used in the word. The font's bounding box is determined by the glyphs in the font that extend farthest above and below the baseline; it often extends somewhat above the top of "A" and below the bottom of "y."

The quad's width is determined from the characters actually present in the word.

As an example, the quads for the words "AWAY" and "away" have the same height, but generally do not have the same width unless the font is a mono-spaced font (a font in which all characters have the same width).

Declaration:

GetQuad (Index As Long) As IGPDFFixedQuad

Parameters:

Index
The index of the quad to obtain. The first quad in a word has an index of zero.

Return Value:

IGPDFFixedQuad object.


GetStyleTransition

Group: Method

Description:

Gets the locations of style transitions in a word. Every word has at least one style transition, at character position zero in the word.

Declaration:

GetStyleTransition (Size As Long) As IGIntegerArray

Parameters:

Size
Number of entries requested for the locations of style transitions. The word is searched only until this number of style transitions has been found.

Return Value:

IGIntegerArray object.


Length

Group: Property

Description:

The number of bytes in a word. This property also works on non-Roman systems.

Property Summary:

Access
Read-only
Data type
Integer
Default value
N/A


QuadCount

Group: Property

Description:

The number of quads in a word.

A quad is a quadrilateral bounding a contiguous piece of a word. Every word has at least one quad. A word has more than one quad, for example, if it is hyphenated and split across multiple lines or if the word is set on a curve rather than on a straight line.

Property Summary:

Access
Read-only
Data type
Integer
Default value
N/A


String

Group: Property

Description:

Gets a word's text and also converts ligatures to their constituent characters. The string to return includes any word break characters (such as space characters) that follow the word, but not any that precede the word. The characters that are treated as word breaks are defined in the EncInfo parameter of IGPDFDoc.CreateWordFinder method.

This method produces a string in whatever encoding the PDF Word uses, for both Roman and non-Roman systems.

Property Summary:

Access
Read-only
Data type
String
Default value
N/A


IGPDFWordFinder

Type: Object

Description:

PDF word finder object extracts words from a PDF file, and enumerates the words on a single page or on all pages in a document.

Interface:

IIGPDFWordFinder extends IIGObject

Class Members:

AcquireWordList
Method
Finds all words on the specified page.
GetWord
Method
Gets the word in the word list obtained using AcquireWordList.
ReleaseWordList
Method
Releases the word list for a given page.


AcquireWordList

Group: Method

Description:

Finds all words on the specified page.

Only words within or partially within the page's crop box are enumerated. Words outside the crop box are skipped.

There can be only one word list in existence at a time; clients must release the previous word list, using IGPDFWordFinder.ReleaseWordList, before creating a new one.

Declaration:

AcquireWordList (PageNumber As Long) As Long

Parameters:

PageNumber
The page number for which words are found. First page is 0.

Return Value:

Word count.


GetWord

Group: Method

Description:

Gets the word in the word list obtained using AcquireWordList.

Declaration:

GetWord (Flags As enumIGPDFWordFlags, Index As Long) As
IGPDFWord

Parameters:

Flags
Word-finding options. Must be an OR of one or more of enumIGPDFWordFlags.
Index
The index of the word to obtain. The first word on a page has an index of zero. Words are counted in PDF order.

Return Value:

IGPDFWord object.


ReleaseWordList

Group: Method

Description:

Releases the word list for a given page. Use this to release a list created by AcquireWordList when you are done using this list.

Declaration:

ReleaseWordList (PageNumber As Long) As Long

Parameters:

PageNumber
The page number for which the word list is released.

Return Value:

The word list for a given page.


Page Editing Objects and Elements

Objects described in this chapter provide an easy access to PDF page contents. With this group of objects you can treat a page's contents as a list of objects - rather than having to manipulate the content stream's PDF marking operators. The editing (or PDE) objects provide an easy access to PDF page contents. PDE objects are meant to be used in conjunction with the General and Base Object methods for manipulating PDF documents.

The PDE objects are splitted in two groups: PDE elements and PDE objects. A page display list is represented as a PDE object that contains PDE elements. The page's content is usually treated as a list of PDE elements. Each PDE element is a path, text, image, form, or a marked content place or container of PDE Elements. Using the PDE Objects and methods you can add or remove objects inside a PDE Objects. You can also change attributes of Elements in a PDE Object, such as a bounding box, a text font, or a clipping path.

The PDE objects are used to create the PDE elements and provide specific information for the elements. For example, PDE Image, which is an element, usually has or is created based on a PDE ColorSpace, which is an object. PDE text, which is an element, usually has or is created based on a PDE Font, which is an object.

This API is meant to be used in conjunction with Basic Objects and General Objects.

The following table contains the PDE objects supported by the ImageGear PDF component:

IGPDEClip
Clip - a list of elements containing a list of Paths and Texts that describe a clip state. Clips can be created and built up with PDE Clip methods. Any PDE Element object can have Clip associated with it. Clip objects can contain PDE Containers and PDE Groups to an arbitrary level of nesting. This allows PDE Containers to be used to mark clip objects.
PDE Groups inside PDE Clips that contain at least one PDE Text and no PDE Paths have a special meaning. All PDE Text objects contained in such a PDE Group are considered to be part of the same BT/ET block. This means that the union of these
PDE Texts makes up a single clipping path-as opposed to the intersection of the PDE Texts.
See Section 5.3 in the PDF reference for more information about BT/ET block.
IGPDEColorSpace
ColorSpace - a reference to a color space used on a page in a PDF file. The color space is part of the graphics state attributes of a PDE Element.
IGPDEContainer
Container - a group of elements on a page in a PDF file. In the PDF file, containers are delimited by Marked Content BMC/EMC or BDC/EMC pairs. Every container has a Marked Content tag associated with it. In addition to grouping a set of elements, a BDC/EMC pair specifies a property list to be associated with the grouping. Thus a container corresponding to a BDC/EMC pair also has a property list dictionary associated with it.
See Section 10.5 in the PDF reference for more information about Marked Content operators.
IGPDEContent
Content - modifiable content of a PDF page, which contains elements. Content may be obtained from an existing page or from a Form XObject.
IGPDEFont
Font - A reference to a font used on a page in a PDF file. It may be equated with a font in the system.
IGPDEForm
Form - an element that corresponds to an instance of XObject Form on a page (or other containing stream such as another XObject Form or annotation form). The context associated with this instance includes the actual stream that represents the XObject Form and the initial conditions of the graphics state. The latter consists of the transformation matrix, initial color values, and so forth. It is possible to have two Forms that refer to the same XObject Form. The forms will exist at different places on the same page, depending on the transformation matrix. They may also have different colors or line stroking parameters. In the case of a transparency group, the opacity is specified in the gstate.
Within a Form, each element has its own gstate (or is a container, place, or group object). These gstates are independent of the parent Form gstate. Form elements may have their own opacity.
Content may be obtained from a Form to edit the form's display list.
IGPDEGroup
Group - an in-memory representation of objects in Content. It has no state and is not represented in any way in a content stream (that is, Content).
When used in a Clip, this object is used to associate Text objects into a single clipping object.
IGPDEImage
Image - an element that contains an Image XObject or in-line image. You can associate data or a stream with an image.
IGPDEPath
Path - an element that contains a path. Path objects can be stroked, filled, and/or serve as a clipping path.
IGPDEPlace
Place - an element that marks a place on a page in a PDF file. In a PDF file, a place is represented by the MP or DP Marked Content operators.
Marked content is useful for adding structure information to a PDF file. For instance, a drawing program may want to mark a point with information, such as the start of a path of a certain type. Marked content provides a way to retain this information in the PDF file. A
DP operator functions the same as the MP operator and, in addition, allows a property list dictionary to be associated with a place.
IGPDEPostScript
PostScript - an element representing in-line or XObject pass-through PostScript object. XObject PostScripts are listed in page XObject resources.
IGPDEShading
Shading - an element that represents smooth shading.
IGPDESoftMask
SoftMask- an object for creating and manipulating a soft mask in a PDF file.
IGPDEText
Text - an element representing text. It is a container for text as show strings or as individual characters. Each sub-element may have different graphics state properties. However, the same clip applies to all sub-elements of a Text. Also, the char path of a Text can be used to represent a clip.
IGPDETextItem
TextItem - a PDE element representing a text object.
IGPDEXGroup
XGroup - a transparency (XGroup) resource.
IGPDEXObject
XObject - an element representing an arbitrary XObject.
IIGPDEElement
Element - base interface for the elements of a page display list (PDE content) and for clip objects. The general PDE element methods allow you to get and set general element properties.
IIGPDEObject
Object - base interface for all the PDE objects.


IGPDEClip

Type: Object

Description:

PDE clip object. A list of elements containing a list of Paths and Texts that describe a clip state. Clips can be created and built up with PDE Clip methods. Any PDE Element object can have Clip associated with it. Clip objects can contain PDE Containers and PDE Groups to an arbitrary level of nesting. This allows PDE Containers to be used to mark clip objects.

PDE Groups inside PDE Clips that contain at least one PDE Text and no PDE Paths have a special meaning. All PDE Text objects contained in such a PDE Group are considered to be part of the same BT/ET block. This means that the union of these

PDE Texts makes up a single clipping path-as opposed to the intersection of the PDE Texts.

See Section 5.3 in the PDF reference for more information about BT/ET block.

Interface:

IIGPDEClip extends IIGPDEElement

Class Members:

ElementCount
Property
The number of top-level elements in a clip object.
AddElement
Method
Adds an element to a clip path.
Clone
Method
Makes a deep copy of a PDE Clip object.
GetElement
Method
Adds an element to a clip path.
RemoveElements
Method
Removes one or more elements from a clip object.


AddElement

Group: Method

Description:

Adds an element to a clip path.

Declaration:

AddElement (AfterIndex As enumIGPDEInsertElement, Element As
IIGPDEElement)

Parameters:

AfterIndex
The index after which to add Element. Use IG_PDE_BEFORE_FIRST to insert an element at the beginning of the clip object.
Element
The element added, which may be a PDE Path, a PDE Text, a PDE Container, a PDE Group or a PDE Place object.

Return Value:

N/A


Clone

Group: Method

Description:

Makes a deep copy of a PDE Clip object.

Declaration:

Clone () As IGPDEClip

Return Value:

IGPDEClip object, which is a deep copy of the current clip object.


ElementCount

Group: Property

Description:

The number of top-level elements in a clip object. Top-level elements may be a path or char-path, a marked content container or place, or a group. Paths are represented as PDE Path objects; char-paths are represented as PDE Text objects. If clip contains PDE Groups, this counts the top-level PDE Path, PDE Text, PDE Container, PDE Group, or PDE Place object. Use EnumerateClipElements to see only the PDE Path and PDE Text objects.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


GetElement

Group: Method

Description:

Gets an element from a clip object.

Declaration:

GetElement (Index As Long) As IIGPDEElement

Parameters:

Index
Index of element to get from clip.

Return Value:

IIGPDEElement interface to the element from the clip object.


RemoveElements

Group: Method

Description:

Removes one or more elements from a clip object.

Declaration:

RemoveElements (Index As Long, Count As Long)

Parameters:

Index
First element to remove.
Count
Number of elements to remove.

Return Value:

N/A


IGPDEColorSpace

Type: Object

Description:

PDE color space. A reference to a color space used on a page in a PDF file. The color space is part of the graphics state attributes of a PDE Element.

Interface:

IIGPDEColorSpace extends IIGPDEObject

Class Members:

BaseColorComponents
Property
The number of components in the base color space of an indexed color space.
ColorComponents
Property
Number of components in the color space.
HiVal
Property
The highest index for the color lookup table for an indexed color space.
GetBaseName
Method
Gets the name of the base color space.
GetCTable
Method
Gets the color lookup table.
GetName
Method
Gets the color space object's name.


BaseColorComponents

Group: Property

Description:

The number of components in the base color space of an indexed color space.

For example, for [/Indexed /DeviceRGB...], the number of components is 3.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


ColorComponents

Group: Property

Description:

Number of components in the color space. For:

  • DeviceGray, CalGray, Separation: Returns 1.
  • DeviceRGB, CalRGB: Returns 3.
  • DeviceCMYK, Lab: Returns 4.
  • DeviceN, ICCBased: Returns the number of components dependent on the specific color space object.
  • Indexed: Returns 1. Use BaseColorComponents to get the number of components in the base color space.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


HiVal

Group: Property

Description:

The highest index for the color lookup table for an indexed color space. Since the color table is indexed from zero to HiVal, the actual number of entries is HiVal + 1.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


GetBaseName

Group: Method

Description:

Gets the name of the base color space. This is a helper routine for indexed color spaces.

Declaration:

GetBaseName() As IGPDFAtom

Return Value:

IGPDFAtom object.


GetCTable

Group: Method

Description:

Gets the color lookup table, which is ColorComponents *(HiVal + 1) bytes long, where ColorComponents = number of components in the base color space.

Each entry in the table contains ColorComponents bytes, and the table is indexed 0 to HiVal, where HiVal is the highest index in the color table. The table is indexed from 0 to HiVal, thus the table contains HiVal + 1 entries.

Declaration:

GetCTable() As IGIntegerArray

Return Value:

IGIntegerArray object.


GetName

Group: Method

Description:

Gets the color space object's name. Supports the following PDF color spaces:

  • Device-dependent names: DeviceCMYK, DeviceGray, DeviceN, or DeviceRGB.
  • Device-independent names: CalGray, CalRGB, Lab, or ICCBased.
  • Special names: Indexed, Pattern, or Separation.

Declaration:

GetName() As IGPDFAtom

Return Value:

IGPDFAtom object.


IGPDEContainer

Type: Control

Description:

PDE container object. A group of elements on a page in a PDF file. In the PDF file, containers are delimited by Marked Content BMC/EMC or BDC/EMC pairs. Every container has a Marked Content tag associated with it. In addition to grouping a set of elements, a BDC/EMC pair specifies a property list to be associated with the grouping. Thus a container corresponding to a BDC/EMC pair also has a property list dictionary associated with it.

See Section 10.5 in the PDF reference for more information about Marked Content operators.

Interface:

IIGPDEContainer extends IIGPDEElement

Class Members:

IsDictionaryInline
Property
True if the dictionary is inline, false otherwise.
GetContent
Method
Gets container's content object
GetMCTag
Method
Gets Marked Content tag for a container.
GetDictionary
Method
Gets marked Content dictionary for a container.
SetContent
Method
Sets container's content object
SetMCTag
Method
Sets Marked Content tag for a container.
SetDictionary
Method
Changes the Marked Content dictionary for the container.


GetContent

Group: Method

Description:

Gets container's content object.

Declaration:

GetContent() As IGPDEContent

Return Value:

IGPDEContent object.


GetMCTag

Group: Method

Description:

Gets Marked Content tag for a container.

Declaration:

GetMCTag() As IGPDFAtom

Return Value:

IGPDFAtom object.


GetDictionary

Group: Method

Description:

Gets marked Content dictionary for a container. NULL if the container has no Marked Content dictionary.

Declaration:

GetDictionary ()As IIGPDFBasObj

Return Value:

IIGPDFBasObj interface.


IsDictionaryInline

Group: Property

Description:

True if the dictionary is inline, false otherwise. Undefined if the container has no Marked Content dictionary.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


SetContent

Group: Method

Description:

Sets container's content object.

Declaration:

SetContent(Content As IGPDEContent)

Parameters:

Content
Container's content object

Return Value:

N/A


SetMCTag

Group: Method

Description:

Sets Marked Content tag for a container.

Declaration:

SetMCTag(MCTag As IGPDFAtom)

Parameters:

MCTag
Marked Content tag for a container.

Return Value:

N/A


SetDictionary

Group: Method

Description:

Changes the Marked Content dictionary for the container.

Declaration:

SetDictionary (Dictionary As IIGPDFBasObj, IsInline As Boolean)

Parameters:

Dictionary
Marked Content dictionary being set into the container.
IsInline
If True, the dictionary is emitted inline.

Return Value:

N/A


IGPDEContent

Type: Object

Description:

PDE content object. Modifiable content of a PDF page, which contains elements. Content may be obtained from an existing page or from a Form XObject.

Interface:

IIGPDEContent extends IIGPDEObject

Class Members:

ElementCount
Property
The number of elements in the IGPDEContent.
AddElement
Method
Inserts an element into content.
GetAttributes
Method
Gets the content attributes.
GetDefaultColorSpace
Method
Gets a default color space from the current content.
GetElement
Method
Obtains requested element from content.
RemoveElement
Method
Removes an element from content.


AddElement

Group: Method

Description:

Inserts an element into content.

Declaration:

AddElement (AfterIndex As enumIGPDEInsertElement, Element As
IIGPDEElement)

Parameters:

AfterIndex
Location after which Element is added. Should be IG_PDF_BEFORE_FIRST_PAGE to add to the beginning of the display list.
pPDEElement
IIGPDEElement interface of the element to insert into content.

Return Value:

N/A


ElementCount

Group: Property

Description:

The number of elements in the IGPDEContent object.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


GetAttributes

Group: Method

Description:

Gets the content attributes.

Declaration:

GetAttributes() As IGPDEContentAttrs

Return Value:

IGPDEContentAttrs object.


GetDefaultColorSpace

Group: Method

Description:

Gets a default color space from the current content.

See Section 4.5.4 in the PDF Reference for more information about default color spaces.

Declaration:

GetDefaultColorSpace (ColorSpaceName As IGPDFAtom) As
IGPDEColorSpace

Parameters:

ColorSpaceName
An atom for the name of the desired color space. Must be an atom for one of DefaultRGB, DefaultCMYK, or DefaultGray.

Return Value:

IGPDEColorSpace object, the desired color space. Returns NULL if ColorSpaceName does not correspond to a known default, such as DefaultRGB.


GetElement

Group: Method

Description:

Obtains requested element from content.

Declaration:

GetElement (Index As Long) As IIGPDEElement

Parameters:

Index
Index of element to obtain

Return Value:

IIGPDEElement interface, which is a general interface for all PDE elements


RemoveElement

Group: Method

Description:

Removes an element from content.

Declaration:

RemoveElement (Index As Long)

Parameters:

Index
Index of element to remove

Return Value:

N/A


IGPDEFont

Type: Object

Description:

PDE font object. A reference to a font used on a page in a PDF file. It may be equated with a font in the system.

Interface:

IIGPDEFont extends IIGPDEObject

Class Members:

CreateNeedFlags
Property
Flags indicating what needs to be done to make the current font complete.
IsEmbedded
Property
True if the font is embedded, False if it is not, or if it was created in one document and embedded in a different document.
IsMultibyte
Property
True if the font contains any multi-byte characters, False otherwise.
CreateToUnicodeNow
Method
Creates the /ToUnicode table.
CreateWidthsNow
Method
Creates width entries for font.
EmbedNow
Method
Embeds font stream.
EmbedNowDontSubset
Method
Embeds the font inside Doc without creating a subset.
GetAttributes
Method
Gets the font attributes.
GetCodeByteCount
Method
Gets the number of bytes in a string of single or multi-byte character codes.
GetOneByteEncoding
Method
Gets an atom array that is filled with the delta encodings for font.
GetSysEncoding
Method
Gets the system encoding object associated with a font object.
GetSysFont
Method
Gets the system font object associated with a font object.
GetWidths
Method
Gets widths array.
GetWidthsNow
Method
Gets a Type0 font's width information for only the characters used in the file.
SetSysEncoding
Method
Sets the system encoding object associated with a font object.
SetSysFont
Method
Sets the system font object associated with a font object.
SubsetNow
Method
Subsets a given PDE Font in Doc.
SumWidths
Method
Gets the sum to the widths from a string of single or multi-byte characters.
TranslateGlyphidsToUnicode
Method
Translates a string to Unicode values.


CreateNeedFlags

Group: Property

Description:

Flags indicating what needs to be done to make the current font complete.

IG_PDE_FONT_CREATE_NEED_WIDTHS can be cleared by CreateWidthsNow.

IG_PDE_FONT_CREATE_NEED_TO_UNICODE can be cleared by CreateToUnicodeNow. IG_PDE_FONT_CREATE_NEED_EMBED can be cleared by EmbedNow.

Property Summary:

Access
Read-only
Data type
enumIGPDEFontCreateNeedFlags
Default value
N/A


CreateToUnicodeNow

Group: Method

Description:

This method creates the ToUnicode table. The user can check the value of CreateNeedFlags to see if calling of CreateToUnicodeNow is needed.

Declaration:

CreateToUnicodeNow (Doc As IGPDFDoc)

Parameters:

Doc
The container document

Return Value:

N/A


CreateWidthsNow

Group: Method

Description:

This method creates width entries for font. The user can check the value of CreateNeedFlags to see if calling of CreateWidthsNow is needed.

Declaration:

CreateWidthsNow (Doc As IGPDFDoc)

Parameters:

Doc
The container document

Return Value:

N/A


EmbedNow

Group: Method

Description:

This method embeds font stream. The user can check the value of CreateNeedFlags to see if calling of EmbedNow is needed.

Declaration:

EmbedNow (Doc As IGPDFDoc)

Parameters:

Doc
The container document

Return Value:

N/A


EmbedNowDontSubset

Group: Method

Description:

Embeds the font inside Doc without creating a subset. Use this method instead of EmbedNow if you created font with the IG_PDE_FONT_WILL_SUBSET flag but changed your mind.

Declaration:

EmbedNowDontSubset (Doc As IGPDFDoc)

Parameters:

Doc
The container document

Return Value:

N/A


GetAttributes

Group: Method

Description:

Gets the font attributes.

Declaration:

GetAttributes() As IGPDEFontAttrs

Return Value:

IGPDEFontAttrs object.


GetCodeByteCount

Group: Method

Description:

Gets the number of bytes in a string of single or multi-byte character codes.

Declaration:

GetCodeByteCount (Text As String) As Long

Parameters:

Text
A string chracters

Return Value:

Number of bytes in the Text.


GetOneByteEncoding

Group: Method

Description:

Gets an atom array that is filled with the delta encodings for font. Each entry is the atom for a glyph name that differs from the base encoding. See Section 5.5.5 in the PDF Reference for more information about font encodings.

Declaration:

GetOneByteEncoding() As IGPDFAtomArray

Return Value:

IGPDFAtomArray object.


GetSysEncoding

Group: Method

Description:

Gets the system encoding object associated with a font object.

NOTE: Changing the system encoding may produce unexpected results.

Declaration:

GetSysEncoding() As IGPDFSysEncoding

Return Value:

IGPDFSysEncoding object.


GetSysFont

Group: Method

Description:

Gets the system font object associated with a font object.

Declaration:

GetSysFont() As IGPDFSysFont

Return Value:

IGPDFSysFont object.


GetWidths

Group: Method

Description:

Gets widths array. The widths are returned in character space (1000 EM units). An EM is a typographic unit of measurement equal to the size of a font. To convert to text space, divide the value returned by 1000. To convert to user space, multiply the text space value by the font size.

Declaration:

GetWidths() As IGIntegerArray

Return Value:

IGIntegerArray object.


GetWidthsNow

Group: Method

Description:

Gets a font's width information for only the characters used in the file. Call this routine when the font was created with the IG_PDE_FONT_DEFER_WIDTHS flag but without the IG_PDE_FONT_CREATE_EMBEDDED flag (if the font is to be embedded, call SubsetNow, which also gets the width info).

Declaration:

GetWidthsNow (Doc As IGPDFDoc)

Parameters:

Doc
The container document

Return Value:

N/A


IsEmbedded

Group: Property

Description:

True if the font is embedded, False if it is not, or if it was created in one document and embedded in a different document.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


IsMultibyte

Group: Property

Description:

True if the font contains any multi-byte characters, False otherwise.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


SetSysEncoding

Group: Method

Description:

Sets the system encoding object associated with a font object.

NOTE: Changing the system encoding may produce unexpected results.

Declaration:

SetSysEncoding(SysEncoding As IGPDFSysEncoding)

Parameters:

SysEncoding
The system encoding object IGPDFSysEncoding to set.

Return Value:

N/A


SetSysFont

Group: Method

Description:

Sets the system font object associated with a font object.

Declaration:

SetSysFont(SysFont As IGPDFSysFont)

Parameters:

SysFont
The system font object IGPDFSysFont to set.

Return Value:

N/A


SubsetNow

Group: Method

Description:

Subsets a given PDE Font in Doc.

If you created font with CreatePDEFontFromSysFont, you must have set both the IG_PDE_FONT_CREATE_EMBEDDED and IG_PDE_FONT_WILL_SUBSET in the flags parameter to be able to subset font.

Declaration:

SubsetNow (Doc As IGPDFDoc)

Parameters:

Doc
The document whose font is subsetted.

Return Value:

N/A


SumWidths

Group: Method

Description:

Gets the sum to the widths from a string of single or multi-byte characters.

Declaration:

SumWidths (Text As String) As Long

Parameters:

Text
A string of characters.

Return Value:

Width of text string in EM space. (In EM space, the width of "M" is about 1000 EM units).


TranslateGlyphidsToUnicode

Group: Method

Description:

Translates a string to Unicode values. The PDE Font must have a ToUnicode table.

Declaration:

TranslateGlyphidsToUnicode (Text As String) As String

Parameters:

Text
A string to convert.

Return Value:

The translated string


IGPDEForm

Type: Object

Description:

PDE form object. An element that corresponds to an instance of XObject Form on a page (or other containing stream such as another XObject Form or annotation form). The context associated with this instance includes the actual stream that represents the XObject Form and the initial conditions of the graphics state. The latter consists of the transformation matrix, initial color values, and so forth. It is possible to have two Forms that refer to the same XObject Form. The forms will exist at different places on the same page, depending on the transformation matrix. They may also have different colors or line stroking parameters. In the case of a transparency group, the opacity is specified in the gstate.

Within a Form, each element has its own gstate (or is a container, place, or group object). These gstates are independent of the parent Form gstate. Form elements may have their own opacity.

Content may be obtained from a Form to edit the form's display list.

Interface:

IIGPDEForm extends IIGPDEElement

Class Members:

HasXGroup
Property
True if the XObject form has a Transparency XGroup.
Clone
Method
Creates a new form from an existing form object.
GetContent
Method
Gets Form's content object.
GetXGroup
Method
Gets the transparency group dictionary of the XObject form.
SetContent
Method
Sets Form's content object.
SetXGroup
Method
Sets the transparency group dictionary of the XObject form.


Clone

Group: Method

Description:

Creates a new form from an existing form object. Creates a copy of the PDE Form, including the underlying objects.

Declaration:

Clone () As IGPDEForm

Return Value:

The newly created IGPDEForm object.


GetContent

Group: Method

Description:

Gets Form's content object.

Declaration:

GetContent() As IGPDEContent

Return Value:

IGPDEContent object.


GetXGroup

Group: Method

Description:

Gets the transparency group dictionary of the XObject form.

Declaration:

GetXGroup() As IGPDEXGroup

Return Value:

IGPDEXGroup object.


HasXGroup

Group: Property

Description:

True if the XObject form has a Transparency XGroup.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


SetContent

Group: Method

Description:

Sets Form's content object.

Declaration:

SetContent(Content As IGPDEContent)

Parameters:

Content
Form's content object

Return Value:

N/A


SetXGroup

Group: Method

Description:

Sets the transparency group dictionary of the XObject form.

Declaration:

SetXGroup(XGroup As IGPDEXGroup)

Parameters:

XGroup
The transparency group dictionary of the XObject form

Return Value:

N/A


IGPDEGroup

Type: Object

Description:

The PDE group object is an in-memory representation of objects in Content. It has no state and is not represented in any way in a content stream (that is, Content).

When used in a Clip, this object is used to associate Text objects into a single clipping object.

Interface:

IIGPDEGroup extends IIGObject

Class Members:

GetContent
Method
Gets Group's content object.
SetContent
Method
Sets Group's content object.


GetContent

Group: Method

Description:

Gets Group's content object.

Declaration:

GetContent() As IGPDEContent

Return Value:

IGPDEContent object.


SetContent

Group: Method

Description:

Sets Group's content object.

Declaration:

SetContent(Content As IGPDEContent)

Parameters:

Content
Group's content object

Return Value:

N/A


IGPDEImage

Type: Object

Description:

PDE image object. An element that contains an Image XObject or in-line image. You can associate data or a stream with an image.

Interface:

IIGPDEImage extends IIGPDEElement

Class Members:

DataLength
Property
Number of bytes of image data, specified by the width, height, bits per component, and color space of the image.
EncodedLength
Property
Length of the encoded data-if the data is encoded, that is, IsDataEncoded is True.
HasSoftMask
Property
True if the soft mask exists; False otherwise.
IsDataEncoded
Property
True if GetData returns encoded data, false otherwise. Returns false for XObject images.
IsXObject
Property
True if the image is an XObject image, false otherwise.
GetAttributes
Method
Gets image attributes.
GetColorMask
Method
Obtains the Mask entry from the image dictionary.
GetColorSpace
Method
Gets the color space object for an image.
GetData
Method
Gets an image's data.
GetDataStream
Method
Gets a data stream for an image.
GetDecodeArray
Method
Gets the decode array for an image.
GetFilterArray
Method
Gets the filter array for an image.
GetMatteArray
Method
Gets the matte array for the image XObject.
GetSoftMask
Method
Gets the soft mask for an image.
SetColorMask
Method
Sets the Mask entry from the image dictionary.
SetColorSpace
Method
Sets the color space object for an image.
SetData
Method
Sets data for an image.
SetDataStream
Method
Sets a data stream for an image.
SetDecodeArray
Method
Sets the decode array for an image.
SetMatteArray
Method
Sets the matte array for the image XObject.
SetSoftMask
Method
Sets the soft mask for an image.


DataLength

Group: Property

Description:

Number of bytes of image data, specified by the width, height, bits per component, and color space of the image.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


EncodedLength

Group: Property

Description:

Length of the encoded data-if the data is encoded, that is, IsDataEncoded is True.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


GetAttributes

Group: Method

Description:

Gets image attributes.

Declaration:

GetAttributes() As IGPDEImageAttrs

Return Value:

IGPDEImageAttrs object.


GetColorMask

Group: Method

Description:

Use this method to obtain the Mask entry from the image dictionary. The mask entry is an array specifying a range of colors to be masked out. Samples in the image that fall within this range are not painted, allowing the existing background to show through. The effect is similar to that of the video technique known as chroma-key.

The value of the Mask entry is an array of 2n integers, [min1 max1 ... minn maxn], where n is the number of color components in the image's color space. Each integer must be in the range 0 to 2 in power of BitsPerComponent - 1, representing color values before decoding with the Decode array. An image sample is masked (not painted) if all of its color components before decoding, c1...cn, fall within the specified ranges.

Declaration:

GetColorMask () As IGIntegerArray

Return Value:

Array of long values filled with the color mask.


GetColorSpace

Group: Method

Description:

Gets the color space object for an image. NULL if image an image mask.

Declaration:

GetColorSpace() As IGPDEColorSpace

Return Value:

IGPDEColorSpace object.


GetData

Group: Method

Description:

Gets an image's data.

If the image is a XObject image, data is always returned as decoded data.

Declaration:

GetData (Flags As Long) As IGIntegerArray

Parameters:

Flags
Unused, must be 0.

Return Value:

IGIntegerArray object, which is image data.


GetDataStream

Group: Method

Description:

Gets a data stream for an image. May only be called for XObject images.

The caller must dispose of the returned stream by calling IGPDFStream.Close.

Declaration:

GetDataStream (Flags As enumIGPDEImageDataFlags) As IGPDFStream

Parameters:

Flags
enumIGPDEImageDataFlags flags. If the AT_PDE_IMAGE_ENCODED_DATA flag is set, data is returned in encoded form. Otherwise, data is decoded.

Return Value:

IGPDFStream object.


GetDecodeArray

Group: Method

Description:

Gets the decode array for an image.

Declaration:

GetDecodeArray() As IGIntegerArray

Return Value:

IGIntegerArray object.


GetFilterArray

Group: Method

Description:

Gets the filter array for an image.

Declaration:

GetFilterArray () As IGPDEFilterArray

Return Value:

IGPDEFilterArray object.


GetMatteArray

Group: Method

Description:

Gets the matte array for the image XObject.

Declaration:

GetMatteArray() As IGIntegerArray

Return Value:

IGIntegerArray object.


GetSoftMask

Group: Method

Description:

Gets the soft mask for an image.

Declaration:

GetSoftMask() As IGPDEImage

Return Value:

IGPDEImage object.


HasSoftMask

Group: Property

Description:

True if the soft mask exists; False otherwise.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


IsDataEncoded

Group: Property

Description:

True if GetData returns encoded data, false otherwise. Returns False for XObject images.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


IsXObject

Group: Property

Description:

True if the image is an XObject image, False otherwise.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


SetColorMask

Group: Method

Description:

Use this method to set the Mask entry from the image dictionary. The mask entry is an array specifying a range of colors to be masked out. Samples in the image that fall within this range are not painted, allowing the existing background to show through. The effect is similar to that of the video technique known as chroma-key.

The value of the Mask entry is an array of 2n integers, [min1 max1 ... minn maxn], where n is the number of color components in the image's color space. Each integer must be in the range 0 to 2 in power of BitsPerComponent - 1, representing color values before decoding with the Decode array. An image sample is masked (not painted) if all of its color components before decoding, c1...cn, fall within the specified ranges.

Declaration:

SetColorMask (Mask As IGIntegerArray)

Parameters:

Mask
Array of long values containing the color mask.

Return Value:

N/A


SetColorSpace

Group: Method

Description:

Sets the color space object for an image. NULL if image an image mask.

Declaration:

SetColorSpace(ColorSpace As IGPDEColorSpace)

Parameters:

ColorSpace
The color space IGPDEColorSpace to set.

Return Value:

N/A


SetData

Group: Method

Description:

Sets data for an image.

Declaration:

SetData (Flags As enumIGPDEImageDataFlags, Data As
IGIntegerArray)

Parameters:

Flags
A set of enumIGPDEImageDataFlags flags. If AT_PDE_IMAGE_ENCODED_DATA is set, the data must be encoded for the current filters. If the AT_PDE_IMAGE_ENCODED_DATA flag is not set, data is not encoded.
Data
Image data.

Return Value:

N/A


SetDataStream

Group: Method

Description:

Sets a data stream for an image. Can only be used for XObject images.

Declaration:

SetDataStream (Flags As enumIGPDEImageDataFlags, Filters As
IGPDEFilterArray, DataStream As IGPDFStream)

Parameters:

Flags
enumIGPDEImageDataFlags flags. If the AT_PDE_IMAGE_ENCODED_DATA flag is set, the stream must be encoded.
Filters
IGPDEFilterArray object. If not NULL, is used to build the objects for the Filter, DecodeParms, and EncodeParms objects. If is NULL, the existing Filter and DecodeParms are used. EncodeParms is set to DecodeParms if it exists.
DataStream
Stream for the image data.

Return Value:

N/A


SetDecodeArray

Group: Method

Description:

Sets the decode array for an image.

Normally, the decode array is accessed through the decode field in the IGPDEImageAttrs. However, this method defines a decode array to handle images with a color space that has more than 4 components.

Declaration:

SetDecodeArray(Decode As IGIntegerArray)

Parameters:

Decode
The decode array to set

Return Value:

N/A


SetMatteArray

Group: Method

Description:

Sets the matte array for the image XObject.

Declaration:

SetMatteArray(Matte As IGIntegerArray)

Parameters:

Matte
The matte array to set

Return Value:

N/A


SetSoftMask

Group: Method

Description:

Sets the soft mask for an image.

Declaration:

SetSoftMask(SoftMask As IGPDEImage)

Parameters:

SoftMask
The soft mask to set

Return Value:

N/A


IGPDEPath

Type: Object

Description:

PDE path object. An element that contains a path. Path objects can be stroked, filled, and/or serve as a clipping path.

Interface:

IIGPDEPath extends IIGPDEElement

Class Members:

PaintOp
Property
The fill and stroke attributes of a path.
AddSegment
Method
Adds a segment to a path.
GetData
Method
Gets the path data.
SetData
Method
Sets new path data for a path element.


AddSegment

Group: Method

Description:

Adds a segment to a path. The number of values used depends upon SegType:

  • IG_PDE_MOVE_TO: X1, Y1
  • IG_PDE_LINE_TO: X1, Y1
  • IG_PDE_CURVE_TO: X1, Y1, X2, Y2, X3, Y3
  • IG_PDE_CURVE_TO_V: X1, Y1, X2, Y2
  • IG_PDE_CURVE_TO_Y: X1, Y1, X2, Y2
  • IG_PDE_RECT: X1, Y1, X2 (width), Y2 (height)
  • IG_PDE_CLOSE_PATH: None

Declaration:

AddSegment (SegType As enumIGPDEPathElementType, X1 As Long, Y1
As Long, X2 As Long, Y2 As Long, X3 As Long, Y3 As Long)

Parameters:

SegType
A enumIGPDEPathElementType value indicating the type of path to add.
X1
x-coordinate of first point.
Y1
y-coordinate of first point.
X2
x-coordinate of second point.
Y2
y-coordinate of second point.
X3
x-coordinate of third point.
Y3
y-coordinate of third point.

Return Value:

IGPDFStream object.


GetData

Group: Method

Description:

Gets the path data.

Declaration:

GetData () As IGIntegerArray

Return Value:

IGIntegerArray object that contains a variable-sized array of path operators and operands. The format is a 32-bit operator followed by 0 to 3 IGPDFFixedPoint values, depending on the operator. Opcodes are codes for moveto, lineto, curveto, rect, or closepath operators; operands are IGPDFFixedPoint values.

NOTE: Returns "raw" path data. If you want the points in page coordinates, concatenate the path data points with the PDE Element matrix obtained from IIGPDEElement.GetMatrix.


PaintOp

Group: Property

Description:

The fill and stroke attributes of a path.

Property Summary:

Access
Read/Write
Data type
enumIGPDEPathOpFlags
Default value
N/A


SetData

Group: Method

Description:

Sets new path data for a path element.

Declaration:

SetData (Data As IGIntegerArray)

Parameters:

Data
IGIntegerArray object, which is a variable-sized array of path operators and operands. The format is a 32-bit operator followed by 0 to 3 IGPDFFixedPoint values, depending on the operator. Operators are codes for moveto, lineto, curveto, rect, or closepath operators and must be one of enumIGPDEPathElementType. Operands are IGPDFFixedPoint values.

Return Value:

N/A


IGPDEPlace

Type: Object

Description:

The PDE place object is an element that marks a place on a page in a PDF file. In a PDF file, a place is represented by the MP or DP Marked Content operators.

Marked content is useful for adding structure information to a PDF file. For instance, a drawing program may want to mark a point with information, such as the start of a path of a certain type. Marked content provides a way to retain this information in the PDF file. A DP operator functions the same as the MP operator and, in addition, allows a property list dictionary to be associated with a place.

Interface:

IIGPDEPlace extends IIGPDEElement

Class Members:

GetDictionary
Method
Gets marked Content dictionary for a place.
GetMCTag
Method
Gets Marked Content tag for a place.
IsDictionaryInline
Property
True if the dictionary is inline, false otherwise.
SetDictionary
Method
Sets the Marked Content dictionary for a place.
SetMCTag
Method
Sets Marked Content tag for a place.


GetDictionary

Group: Method

Description:

Gets marked Content dictionary for a place. NULL if the place has no Marked Content dictionary.

Declaration:

GetDictionary ()As IIGPDFBasObj

Return Value:

IIGPDFBasObj object.


GetMCTag

Group: Method

Description:

Gets Marked Content tag for a place.

Declaration:

GetMCTag() As IGPDFAtom

Return Value:

IGPDFAtom object.


IsDictionaryInline

Group: Property

Description:

True if the dictionary is inline, False otherwise. Undefined if the place has no Marked Content dictionary.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


SetDictionary

Group: Method

Description:

Sets the Marked Content dictionary for a place.

Declaration:

SetDictionary (Dictionary As IIGPDFBasObj, IsInline As Boolean)

Parameters:

Dictionary
Marked Content dictionary for a place.
IsInline
If True, the dictionary is emitted inline.

Return Value:

N/A


SetMCTag

Group: Method

Description:

Sets Marked Content tag for a place.

Declaration:

SetMCTag(MCTag As IGPDFAtom)

Parameters:

MCTag
Marked Content tag for a place.

Return Value:

N/A


IGPDEPostScript

Type: Object

Description:

The PDE PostScript object is an element representing in-line or XObject pass-through PostScript object. XObject PostScripts are listed in page XObject resources.

Interface:

IIGPDEPostScript extends IIGPDEElement

Class Members:

GetAttributes
Method
Gets postscript attributes.
GetData
Method
Gets all or part of the image data.
GetDataStream
Method
Gets a stream for the data.
SetData
Method
Sets the data for the postscript.
SetDataStream
Method
Sets a stream for the data.


GetAttributes

Group: Method

Description:

Gets postscript attributes.

Declaration:

GetAttributes() As IGPDEPSAttrs

Return Value:

IGPDEPSAttrs object.


GetData

Group: Method

Description:

Gets all or part of the image data.

Declaration:

GetData(Offset As Long) As IGIntegerArray

Parameters:

Offset
Offset into the source data at which to start filling buffer

Return Value:

IGIntegerArray object.


GetDataStream

Group: Method

Description:

Gets a stream for the data. The data in the stream is decoded (no filters).

Declaration:

GetDataStream() As IGPDFStream

Return Value:

IGPDFStream object.


SetData

Group: Method

Description:

Sets the data for the postscript.

Declaration:

SetData(Buffer As IGIntegerArray)

Parameters:

Buffer
Contains the data.

Return Value:

N/A


SetDataStream

Group: Method

Description:

Sets a stream for the data. The data must be un-encoded (no filters).

Declaration:

SetDataStream(Stream As IGPDFStream)

Parameters:

Stream
Stream for the data.

Return Value:

N/A


IGPDEShading

Type: Object

Description:

The PDE shading object is an element that represents smooth shading.

Interface:

IIGPDEShading extends IIGPDEElement

Class Members:

GetDictionary
method
Gets dictionary for a shading.


GetDictionary

Group: Method

Description:

Gets dictionary for a shading.

Declaration:

GetDictionary ()As IIGPDFBasObj

Return Value:

IIGPDFBasObj interface.


IGPDESoftMask

Type: Object

Description:

The PDE soft mask object is an object for creating and manipulating a soft mask in a PDF file.

Interface:

IIGPDESoftMask extends IIGPDEElement

Class Members:

GetBackdropColor
Method
Gets the array of color values of the backdrop color.
GetForm
Method
Acquires the form that defines the soft mask.
GetName
Method
Gets the soft mask name.
SetBackdropColor
Method
Sets the backdrop color values.
SetForm
Method
Sets the form that defines the soft mask.


GetBackdropColor

Group: Method

Description:

Gets the array of color values of the backdrop color.

Declaration:

GetBackdropColor () As IGIntegerArray

Return Value:

IGIntegerArray array of color values.


GetForm

Group: Method

Description:

Acquires the form that defines the soft mask.

Declaration:

GetForm(Matrix As IGPDFFixedMatrix) As IGPDEForm

Parameters:

Matrix
Defining the transformation from coordinate space to user space.

Return Value:

IGPDEForm, the XObject form of the soft mask.


GetName

Group: Method

Description:

Gets the soft mask name.

Declaration:

GetName() As IGPDFAtom

Return Value:

IGPDFAtom object.


SetBackdropColor

Group: Method

Description:

Sets the backdrop color values.

Declaration:

SetBackdropColor (ColorValues As IGIntegerArray)

Parameters:

ColorValues
Array of color values.

Return Value:

N/A


SetForm

Group: Method

Description:

Sets the form that defines the soft mask.

Declaration:

SetForm(Form As IGPDEForm)

Parameters:

Form
The form XObject.

Return Value:

N/A


IGPDEText

Type: Object

Description:

The PDE text object is an element representing text. It is a container for text as show strings or as individual characters. Each sub-element may have different graphics state properties. However, the same clip applies to all sub-elements of a Text. Also, the char path of a Text can be used to represent a clip.

Interface:

IIGPDEText extends IIGPDEElement

Class Members:

CharCount
Property
The number of text runs (show strings) in the text object.
RunCharCount
Property
The number of characters in the specified text run.
RunCharOffset
Property
The character offset of the first character of the specified text run.
RunsCount
Property
The number of text runs (show strings) in the text object.
Add
Method
Adds a character or a text run to a PDE Text object.
AddItem
Method
Adds a text item to a text element at a given index position.
GetAdvance
Method
Gets the advance width of a character or a text element.
GetBBox
Method
Gets the bounding box of a character or a text run.
GetByteCount
Method
Gets the number of bytes occupied by the character code or text run.
GetFont
Method
Gets the font for a text character or element.
GetGState
Method
Gets the graphics state of a character or a text run.
GetItem
Method
Obtains a text item from a text element at a given index position.
GetMatrix
Method
Returns the matrix of a character or a text element.
GetQuad
Method
Gets the quad bounding the specified text run or character.
GetRunForChar
Method
Gets the index of the text run that contains the nth character in a text object.
GetState
Method
Gets the text state of a character or a text element.
GetStrokeMatrix
Method
Gets the stroke matrix of a character or a text run.
GetText
Method
Gets the text for a text run or character.
IsAtPoint
Method
Tests whether a point is on specified text.
IsAtRect
Method
Tests whether any part of a rectangle is on the specified text.
Remove
Method
Removes characters or text runs from a text object.
RemoveItems
Method
Removes contiguous text items from a text element starting at a given index position.
ReplaceChars
Method
Replaces characters in a text object.
RunSetFont
Method
Sets the font of a text run.
RunSetGState
Method
Sets the graphics state of a text run.
RunSetMatrix
Method
Sets the matrix of a text run.
RunSetState
Method
Sets the text state of a text run.
RunSetStrokeMatrix
Method
Sets the stroke matrix of a text run.
SplitRunAt
Method
Splits a text run into two text runs.


Add

Group: Method

Description:

Adds a character or a text run to a PDE Text object.

Declaration:

Add (Flags As enumIGPDETextFlags, Index As Long, Text As String,
Font As IGPDEFont, GState As IGPDEGraphicState, TState As
IGPDETextState, TextMatrix As IGPDFFixedMatrix, StrokeMatrix As
IGPDFFixedMatrix)

Parameters:

Flags
enumIGPDETextFlag flag that specifies what kind of text to add. Must be either:
IG_PDE_TEXT_CHAR - for a text character
IG_PDE_TEXT_RUN - for a text run
Index
Index after which to add character or text run.
Text
String with characters to add.
NOTE: Passing NULL for text can invalidate the text object but will not raise an error. Callers must not pass NULL for this parameter.
Font
Font for the element.
GState
The graphics state for the element.
TState
The text state for the element.
TextMatrix
The matrix for the element.
StrokeMatrix
The matrix for the line width when stroking text. May be NULL.

Return Value:

N/A


AddItem

Group: Method

Description:

Adds a text item to a text element at a given index position.

Declaration:

AddItem (Index As Long, TextItem As IGPDETextItem)

Parameters:

Index
Index of the text item.
TextItem
The text item to add.

Return Value:

N/A


CharCount

Group: Property

Description:

The number of characters in the text object.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


GetAdvance

Group: Method

Description:

Gets the advance width of a character or a text element. Advance width is returned in either character space or user space. The advance width is the amount by which the current point advances when the character is drawn.

Advance width may be horizontal or vertical, depending on the writing style. Thus the return value has both a horizontal and vertical component.

Declaration:

GetAdvance (Flags As enumIGPDETextFlags, Index As Long) As
IGPDFFixedPoint

Parameters:

Flags
enumIGPDETextFlag value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
In addition, set the IG_PDE_TEXT_PAGE_SPACE flag to obtain the advance width in user space. If it is not set, the advance width is in character space.
If this flag is not set, this method returns a value that is independent of any sizes, matrices, or scaling, simply adding up the font's raw glyph widths, supplemented only by unscaled character and word spacing.
Index
Index of the character or text run in the text.

Return Value:

IGPDFFixedPoint object indicating the advance width.


GetBBox

Group: Method

Description:

Gets the bounding box of a character or a text run.

Declaration:

GetBBox (Flags As enumIGPDETextFlags, Index As Long) As
IGPDFFixedRect

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

IGPDFFixedRect object, which is the bounding box of specified character or text run.


GetByteCount

Group: Method

Description:

Gets the number of bytes occupied by the character code or text run.

Declaration:

GetByteCount (Flags As enumIGPDETextFlags, Index As Long) As
Long

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

Number of bytes occupied by the text run or character.


GetFont

Group: Method

Description:

Gets the font for a text character or element.

Declaration:

GetFont (Flags As enumIGPDETextFlags, Index As Long) As
IGPDEFont

Parameters:

Flags
Specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

IGPDEFont object.


GetGState

Group: Method

Description:

Gets the graphics state of a character or a text run.

Declaration:

GetGState (Flags As enumIGPDETextFlags, Index As Long) As
IGPDEGraphicState

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

IGPDEGraphicState object, which is the graphics state of specified character or text run


GetItem

Group: Method

Description:

Obtains a text item from a text element at a given index position.

Declaration:

GetItem (Index As Long) As IGPDETextItem

Parameters:

Index
Index of the text item in the text object.

Return Value:

IGPDETextItem object.


GetMatrix

Group: Method

Description:

Returns the matrix of a character or a text element.

Declaration:

GetMatrix (Flags As enumIGPDETextFlags, Index As Long) As
IGPDFFixedMatrix

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

IGPDFFixedMatrix object that holds the matrix of specified character or text run.


GetQuad

Group: Method

Description:

Gets the quad bounding the specified text run or character.

The advance portion of the quad is based on the left side bearing and advance width.

Declaration:

GetQuad (Flags As enumIGPDETextFlags, Index As Long) As
IGPDFFixedQuad

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
In addition, if the IG_PDE_TEXT_GET_BOUNDS flag is set, this method uses the font descriptor's FontBBox, which is the smallest rectangle that encloses all characters in the font. The advance portion is based on the x-coordinates of the left and right sides of FontBBox and the advance width.
Index
Index of the character or text run in the text object.

Return Value:

IGPDFFixedQuad object that bounds the specified character or text run.


GetRunForChar

Group: Method

Description:

Gets the index of the text run that contains the nth character in a text object.

Declaration:

GetRunForChar (CharIndex As Long) As Long

Parameters:

CharIndex
Number of the character to find in the text object.

Return Value:

Index of the text run with the specified character index in the text object.


GetState

Group: Method

Description:

Gets the text state of a character or a text element.

Declaration:

GetState (Flags As enumIGPDETextFlags, Index As Long) As
IGPDETextState

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

IGPDETextState object, which is the text state of the specified character or text run.


GetStrokeMatrix

Group: Method

Description:

Gets the stroke matrix of a character or a text run.

Declaration:

GetStrokeMatrix (Flags As enumIGPDETextFlags, Index As Long) As
IGPDFFixedMatrix

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

IGPDFFixedMatrix object that that holds the stroke matrix of specified character or text run. This matrix is the transformation for line widths when stroking. The h and v values of the matrix are ignored.


GetText

Group: Method

Description:

Gets the text for a text run or character.

Declaration:

GetText (Flags As enumIGPDETextFlags, Index As Long) As String

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.

Return Value:

String


IsAtPoint

Group: Method

Description:

Tests whether a point is on specified text. Checks if the point is in a bounding box for the text.

Declaration:

IsAtPoint (Flags As enumIGPDETextFlags, Index As Long,
FixedPoint As IGPDFFixedPoint) As Boolean

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.
FixedPoint
A point, specified in user space coordinates.

Return Value:

True if the point is on the text, False otherwise.


IsAtRect

Group: Method

Description:

Tests whether any part of a rectangle is on the specified text.

Declaration:

IsAtRect (Flags As enumIGPDETextFlags, Index As Long, FixedRect
As IGPDFFixedRect) As Boolean

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.
FixedRect
A rectangle, specified in user space coordinates.

Return Value:

True if the text is on the rectangle, False otherwise.


Remove

Group: Method

Description:

Removes characters or text runs from a text object.

Declaration:

Remove (Flags As enumIGPDETextFlags, Index As Long, Count As
Long)

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.
Count
Number of characters or text runs to remove.

Return Value:

None.


RemoveItems

Group: Method

Description:

Removes contiguous text items from a text element starting at a given index position.

Declaration:

RemoveItems (Index As Long, Count As Long)

Parameters:

Index
Index of the first text item in pdeText to remove.
Count
The number of text items to remove.

Return Value:

None.


ReplaceChars

Group: Method

Description:

Replaces characters in a text object.

This method does not change the number of characters in the text object-extra characters are ignored.

Declaration:

ReplaceChars (Flags As enumIGPDETextFlags, Index As Long, Text
As String)

Parameters:

Flags
enumIGPDETextFlags value that specifies whether index refers to the character offset from the beginning of the text object or the index of the text run in the text object. Must be either:
  • IG_PDE_TEXT_CHAR - for a text character
  • IG_PDE_TEXT_RUN - for a text run
Index
Index of the character or text run in the text object.
Text
Replacement text.

Return Value:

None.


RunCharCount

Group: Property

Description:

The number of characters in the specified text run.

Declaration:

RunCharCount (RunIndex As Long) As Long

Property Summary:

Index
[0 to RunsCount-1]
Access
Read-only
Data type
Long
Default value
N/A


RunCharOffset

Group: Property

Description:

The character offset of the first character of the specified text run.

Property Summary:

Index
[0 to RunsCount-1]
Access
Read-only
Data type
Long
Default value
N/A


RunsCount

Group: Property

Description:

The number of text runs (show strings) in the text object.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


RunSetFont

Group: Method

Description:

Sets the font of a text run.

Declaration:

RunSetFont (RunIndex As Long, Font As IGPDEFont)

Parameters:

RunIndex
Index of the text run.
Font
Font set for the text run.

Return Value:

N/A


RunSetGState

Group: Method

Description:

Sets the graphics state of a text run.

Declaration:

RunSetGState (RunIndex As Long, GState As IGPDEGraphicState)

Parameters:

RunIndex
Index of the text run.
GState
IGPDEGraphicState with graphics state to set.

Return Value:

N/A


RunSetMatrix

Group: Method

Description:

Sets the matrix of a text run.

Declaration:

RunSetMatrix (RunIndex As Long, Matrix As IGPDFFixedMatrix)

Parameters:

RunIndex
Index of the text run.
Matrix
IGPDFFixedMatrix with matrix to set.

Return Value:

N/A


RunSetState

Group: Method

Description:

Sets the text state of a text run.

Declaration:

RunSetState (RunIndex As Long, State As IGPDETextState)

Parameters:

RunIndex
Index of the text run.
State
IGPDETextState with state to set.

Return Value:

N/A


RunSetStrokeMatrix

Group: Method

Description:

Sets the stroke matrix of a text run.

Declaration:

RunSetStrokeMatrix (RunIndex As Long, Matrix As
IGPDFFixedMatrix)

Parameters:

RunIndex
Index of the text run.
Matrix
IGPDFFixedMatrix with store matrix to set.

Return Value:

N/A


SplitRunAt

Group: Method

Description:

Splits a text run into two text runs.

Declaration:

SplitRunAt (SplitLoc As Long)

Parameters:

SplitLoc
Split location, relative to the text object. The first text run is from character index 0 up to nSplitLoc. The second text run is from nSplitLoc + 1 to the end of the run.

Return Value:

N/A


IGPDETextItem

Type: Object

Description:

The PDE text item object is a PDE element representing a text object.

Interface:

IIGPDETextItem extends IIGPDEElement

Class Members:

TextLength
Property
The text length for a text item, in bytes.
CopyText
Method
Copies the text from a text item element.
GetFont
Method
Gets the font for a text item.
GetTIGState
Method
Gets the graphics state for a text item.
GetTIMatrix
Method
Gets the text matrix for a character in a text item.
GetState
Method
Gets the text state of a text item.
RemoveChars
Method
Removes contiguous characters from a text item.
ReplaceChars
Method
Replaces characters in a text item.
ReplaceText
Method
Replaces all of the text in a text item.
SetFont
Method
Sets a font for a text item.
SetTIGState
Method
Sets the graphics state of a text item.
SetTIMatrix
Method
Sets the text matrix for a text item.
SetState
Method
Sets the text state of a text item.


CopyText

Group: Method

Description:

Copies the text from a text item element.

Declaration:

CopyText () As String

Return Value:

Text string


GetFont

Group: Method

Description:

Gets the font for a text item.

Declaration:

GetFont() As IGPDEFont

Return Value:

IGPDEFont object.


GetTIGState

Group: Method

Description:

Gets the graphics state for a text item.

Declaration:

GetTIGState() As IGPDEGraphicState

Return Value:

IGPDEGraphicState object.


GetTIMatrix

Group: Method

Description:

Gets the text matrix for a character in a text item.

Declaration:

GetTIMatrix(CharOffset As Long) As IGPDFFixedMatrix

Parameters:

CharOffset
The offset of the character whose text matrix is obtained.

Return Value:

IGPDFFixedMatrix object.


GetState

Group: Method

Description:

Gets the text state of a text item.

Declaration:

GetState() As IGPDETextState

Return Value:

IGPDETextState object.


RemoveChars

Group: Method

Description:

Removes contiguous characters from a text item.

Declaration:

RemoveChars(CharOffset As Long, Count As Long)

Parameters:

CharOffset
Offset of the first character to remove.
Count
The number of characters to remove.

Return Value:

N/A


ReplaceChars

Group: Method

Description:

Replaces characters in a text item.

This method does not change the number of characters in the text item-extra characters are ignored.

Declaration:

ReplaceChars(CharIndex As Long, Text As String)

Parameters:

CharOffset
Index position of the characters to replace.
Text
Replacement text.

Return Value:

N/A


ReplaceText

Group: Method

Description:

Replaces all of the text in a text item.

Declaration:

ReplaceText(Text As String)

Parameters:

Text
Replacement text.

Return Value:

N/A


SetFont

Group: Method

Description:

Sets a font for a text item.

Declaration:

SetFont(Font As IGPDEFont)

Parameters:

Font
Font set for a text item.

Return Value:

N/A


SetTIGState

Group: Method

Description:

Sets the graphics state of a text item.

Declaration:

SetTIGState(GState As IGPDEGraphicState)

Parameters:

GState
The graphics state information to set

Return Value:

N/A


SetTIMatrix

Group: Method

Description:

Sets the text matrix for a text item.

Declaration:

SetTIMatrix(Matrix As IGPDFMatrix)

Parameters:

Matrix
The new text matrix of the text item.

Return Value:

N/A


SetState

Group: Method

Description:

Sets the text state of a text item.

Declaration:

SetState(TState As IGPDETextState)

Parameters:

TState
With new text state of the text item

Return Value:

N/A


TextLength

Group: Property

Description:

The text length for a text item, in bytes.

Property Summary:

Access
Read-only
Data type
Long
Default value
N/A


IGPDEXGroup

Type: Object

Description:

The PDE XGroup object is a transparency (XGroup) resource.

Interface:

IIGPDEXGroup extends IIGPDEElement

Class Members:

Isolated
Property
The XGroup isolated boolean value.
Knockout
Property
The knockout boolean value of the transparency group.
GetColorSpace
Method
Acquires the color space of the transparency group.
SetColorSpace
Method
Sets the color space for the XGroup.


GetColorSpace

Group: Method

Description:

Acquires the color space of the transparency group.

Declaration:

GetColorSpace() As IGPDEColorSpace

Return Value:

IGPDEColorSpace object.


Isolated

Group: Property

Description:

The XGroup isolated boolean value. Corresponds to the /I key within the XGroup's dictionary.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
N/A


Knockout

Group: Property

Description:

The knockout boolean value of the transparency group.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
N/A


SetColorSpace

Group: Method

Description:

Sets the color space for the XGroup.

Declaration:

SetColorSpace(ColorSpace As IGPDEColorSpace)

Parameters:

ColorSpace
The color space to associate with the XGroup.

Return Value:

N/A


IGPDEXObject

Type: Object

Description:

PDE XObject object. XObject - an element representing an arbitrary XObject.

Interface:

IIGPDEXObject extends IIGPDEElement


IIGPDEElement

Type: Interface

Description:

PDE element interface. Base interface for the elements of a page display list (PDE content) and for clip objects. The general PDE element methods allow you to get and set general element properties.

Interface:

IIGPDEElement extends IIGPDEObject

Class Members:

Type
Property
Type of the element.
HasGState
Property
True if the element has a graphics state; False otherwise.
Clone
Method
Makes a copy of an element.
GetBBox
Method
Gets the bounding box for an element, specified in user space coordinates.
GetClip
Method
Gets the current clip for an element.
GetGState
Method
Gets the graphics state information for an element.
GetMatrix
Method
Gets the transformation matrix for an element.
GetOCMDictionary
Method
Returns a Dictionary (OCMD object), which is associated with this Element.
IsAtPoint
Method
Tests whether a point is on an element.
IsAtRect
Method
Tests whether any part of a rectangle is on an element.
SetClip
Method
Sets the current clip for an element.
SetGState
Method
Sets the graphics state information for an element.
SetMatrix
Method
Sets the transformation matrix for an element.
Type
Method
Returns some 32bit integer that is unique for all Element objects.


Clone

Group: Method

Description:

Makes a copy of an element.

Declaration:

Clone (Flags As enumIGPDEElementCopyFlags) As IIGPDEElement

Parameters:

Flags
Bit field of enumIGPDEElementCopyFlags.

Return Value:

A copy of the current element.


GetBBox

Group: Method

Description:

Gets the bounding box for an element, specified in user space coordinates.

The bounding box is guaranteed to encompass the element, but is not guaranteed to be the smallest box that could contain the element. For example, for an arc, the bounding box encloses the Bezier control points-not just the curve itself.

Declaration:

GetBBox() As IGPDFFixedRect

Return Value:

IGPDFFixedRect object.


GetClip

Group: Method

Description:

Gets the current clip for an element.

NOTE: A clip may be shared by many elements. Use care when modifying a clip. Copy it first if you want to modify the clip for a specific element.

Declaration:

GetClip() As IGPDEClip

Return Value:

IGPDEClip object.


GetGState

Group: Method

Description:

Gets the graphics state information for an element.

This property is only valid for PDE Form, PDE Image, PDE Path and PDE Shading elements.

Declaration:

GetGState() As IGPDEGraphicState

Return Value:

IGPDEGraphicState object.


GetMatrix

Group: Method

Description:

Gets the transformation matrix for an element.

This matrix provides the transformation from user space to device space for the element. If there is no cm operator (concatmatrix) in the page stream, the matrix is the identity matrix.

For text object, it specifies the identity matrix.

Writing is not supported for PDE Container, a PDE Group, a PDE Place or a PDE Text.

Declaration:

GetMatrix() As IGPDFFixedMatrix

Return Value:

IGPDFFixedMatrix object.


GetOCMDictionary

Group: Method

Description:

Returns a Dictionary (OCMD object), which is associated with this Element. If no Dictionary is associated, returns NULL.

Declaration:

HRESULT GetOCMDictionary(
    [out,retval] IIGPDFDictionary** ppPDFDictionary);

Parameters:

ppPDFDictionary
The returned dictionary.

Return Value:

Associated Dictionary, or NULL if no Dictionary is associated.


HasGState

Group: Property

Description:

True if the element has a graphics state; False otherwise.

Property Summary:

Access
Read-only
Data type
Boolean
Default value
N/A


IsAtPoint

Group: Method

Description:

Tests whether a point is on an element.

If the current element is a Text or Image, it uses the bounding box of the element to make the check. If the current element is a Path and it is stroked, it checks if the point is on the path. If the current element is a Path and it is filled, it checks if the point is in the fill area, taking into consideration whether it is filled using the non-zero winding number rule or the even-odd rule.

Declaration:

IsAtPoint (FixedPoint As IGPDFFixedPoint) As Boolean

Parameters:

FixedPoint
A point, specified in user space coordinates

Return Value:

True if the point is on the element, False otherwise.


IsAtRect

Group: Method

Description:

Tests whether any part of a rectangle is on an element.

If the current element is a PDE Text or PDE Image, it uses the bounding box of the PDE Element to make the check. If the current element is a PDE Path and it is stroked, it checks if the rectangle is on the path.

If the current element is a PDE Path and it is filled, it checks if the rectangle is in the fill area, taking into consideration whether it is filled using the non-zero winding number rule or the even-odd rule.

Declaration:

IsAtRect (FixedRect As IGPDFFixedRect) As Boolean

Parameters:

FixedRect
A rectangle, specified in user space coordinates.

Return Value:

True if any part of the rectangle is on the element, False - otherwise.


SetClip

Group: Method

Description:

Sets the current clip for an element.

NOTE: A clip may be shared by many elements. Use care when modifying a clip. Copy it first if you want to modify the clip for a specific element.

Declaration:

SetClip(Clip As IGPDEClip)

Parameters:

Clip
The clip for an element

Return Value:

N/A


SetGState

Group: Method

Description:

Sets the graphics state information for an element.

This method is only valid for PDE Form, PDE Image, PDE Path and PDE Shading elements.

Declaration:

SetGState(GState As IGPDEGraphicState)

Parameters:

GState
The graphics state information for an element

Return Value:

N/A


SetMatrix

Group: Method

Description:

Sets the transformation matrix for an element.

This matrix provides the transformation from user space to device space for the element. If there is no cm operator (concatmatrix) in the page stream, the matrix is the identity matrix.

For text object, it specifies the identity matrix.

Writing is not supported for PDE Container, a PDE Group, a PDE Place or a PDE Text.

Declaration:

SetMatrix(Matrix As IGPDFFixedMatrix)

Parameters:

Matrix
The transformation matrix for an element

Return Value:

N/A


Type

Group: Property

Description:

Type of the element.

Property Summary:

Access
Read-only
Data type
enumIGPDEType.
Default value
N/A


UniqueID

Group: Method

Description:

Returns some 32bit integer that is unique for all Element objects. In other words, it is guaranteed that there cannot be two Element objects with the same UniqueIds.

Can be used for Element objects' identification.

Declaration:

IIGPDEElement.UniqueId
(propget)

Return Value:

An unique identifier of this Element Object.


IIGPDEObject

Type: Interface

Description:

PDE object interface. Base interface for all the PDE objects.

Interface:

IIGPDEObject

Class Members:

Type
Property
Type of the object.


Type

Group: Property

Description:

Type of the object.

Property Summary:

Access
Read-only
Data type
enumIGPDEType
Default value
N/A


Subsidiary Types / ActiveX Objects

Simple structure types that are used for creating, attributing and manipulating general and editing objects.

The following table contains the objects and their descriptions supported by the ImageGear PDF component:

IGPDEColorData
Fill in one of the following members of this union, then pass it to PDE ColorSpace creation routine. Please see section 7.10 of the PDF Reference Manual for information on color spaces.
IGPDEColorDataCalGray
CalGray color space.
IGPDEColorDataCalRGB
CalRGB color space.
IGPDEColorDataDeviceN
DeviceN color space.
IGPDEColorDataICCBased
ICC based color space.
IGPDEColorDataIndexed
Indexed color space.
IGPDEColorDataLab
L*a*b* color space.
IGPDEColorDataSeparation
Separation color space
IGPDEColorRange
Color range.
IGPDEColorSpec
Color specification.
IGPDEColorValue
Color value.
IGPDEContentAttrs
Attributes of a PDE Content object.
IGPDEDash
Dash specification, as described in Table 4.8 in the PDF Reference. See Section 4.3.2 for more information on line dash patterns.
IGPDEFilterArray
Filter information for streams. Array of FilterSpec elements. Usually consists of 2 filter elements: text encoding and image compression.
IGPDEFilterSpec
Filter element in a filter array.
IGPDEFontAttrs
Attributes of a PDE Font and a PDF SysFont.
IGPDEFontCreateFromSysFontParams
Parameters for PDE font creation.
IGPDEFontInfo
PDE Font information.
IGPDEGraphicState
Attributes of a PDE Element or a PDE Text sub-element.
IGPDEImageAttrs
Attributes of a PDE Image object.
IGPDEPSAttrs
Attributes of a PDE PS object.
IGPDETextState
Attributes of a PDE Text element.
IGPDEXYZColor
XYZ color.
IGPDFFixedMatrix
Matrix containing fixed numbers.
IGPDFFixedPoint
Point (in two-dimensional space) represented by two fixed numbers.
IGPDFFixedQuad
Quadrilateral represented by four fixed points (one at each corner). A quadrilateral differs from a rectangle in that the latter must always have horizontal and vertical sides, and opposite sides must be parallel.
IGPDFFixedRect
A rectangle represented by the coordinates of its four sides. A rectangle differs from a quadrilateral in that the former must always have horizontal and vertical sides, and opposite sides must be parallel.
IGPDFPrintOptions
Used to control printing.
IGPDFSysFontPlatData
PDF SysFont platform specific data.


IGPDEColorData

Type: Object

Description:

Fill in one of the following members of this union then pass this data to PDE color space creation routine. Please see section 7.10 of the PDF Reference Manual for information on color spaces.

Interface:

IIGPDEColorData extends IIGObject

Class Members:

CalGray
Property
CalGray color data.
CalRGB
Property
CalRGB color data.
DeviceN
Property
DeviceN color data.
ICCBased
Property
ICC based color data.
Indexed
Property
Indexed color data.
Lab
Property
L*a*b* color data.
PatternBased
Property
Pattern based color data.
Separation
Property
Separation color data.
Type
Property
Type of the color data.


CalGray

Group: Property

Description:

CalGray color data.

Property Summary:

Access
Read only
Data type
IGPDEColorDataCalGray
Default value
N/A


CalRGB

Group: Property

Description:

CalRGB color data.

Property Summary:

Access
Read only
Data type
IGPDEColorDataCalRGB
Default value
N/A


DeviceN

Group: Property

Description:

DeviceN color data.

Property Summary:

Access
Read only
Data type
IGPDEColorDataDeviceN
Default value
N/A


ICCBased

Group: Property

Description:

ICC based color data.

Property Summary:

Access
Read only
Data type
IGPDEColorDataICCBased
Default value
N/A


Indexed

Group: Property

Description:

Indexed color data.

Property Summary:

Access
Read only
Data type
IGPDEColorDataIndexed
Default value
N/A


Lab

Group: Property

Description:

L*a*b* color data.

Property Summary:

Access
Read only
Data type
IGPDEColorDataLab
Default value
N/A


PatternBased

Group: Property

Description:

Pattern based color data.

Property Summary:

Access
Read/Write
Data type
IGPDEColorSpace
Default value
Null


Separation

Group: Property

Description:

Separation color data.

Property Summary:

Access
Read only
Data type
IGPDEColorDataSeparation
Default value
N/A


Type

Group: Property

Description:

Type of the color data.

Property Summary:

Access
Read/Write
Data type
enumIGPDEColorData
Default value
IG_UNKNOWN


IGPDEColorDataCalGray

Type: Object

Description:

Describes a CalGray color space

Default calGray = {{0, 0, 0}, {0, 0, 0}, 1};

Interface:

IIGPDEColorDataCalGray extends IIGObject

Class Members:

BlackPoint
Property
Black point.
Gamma
Property
Gamma value.
WhitePoint
Property
White point.


BlackPoint

Group: Property

Description:

Black point.

Property Summary:

Access
Read/Write
Data type
IGPDEXYZColor
Default value
N/A


Gamma

Group: Property

Description:

Gamma value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
1


WhitePoint

Group: Property

Description:

White point.

Property Summary:

Access
Read/Write
Data type
IGPDEXYZColor
Default value
N/A


IGPDEColorDataCalRGB

Type: Object

Description:

Describes a CalRGB color space.

Default calRGB = {{0, 0, 0}, {0, 0, 0}, 1, 1, 1, {1, 0, 0, 0, 1, 0, 0, 0, 1}};

Interface:

IIGPDEColorDataCalRGB extends IIGObject

Class Members:

BlackPoint
Property
Black point.
BlueGamma
Property
Blue gamma value.
GreenGamma
Property
Green gamma value.
Matrix
Property
Matrix.
RedGamma
Property
Red gamma value.
WhitePoint
Property
White point.


BlueGamma

Group: Property

Description:

Blue gamma value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
1


GreenGamma

Group: Property

Description:

Green gamma value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
1


Matrix

Group: Property

Description:

Matrix.

Property Summary:

Access
Read/Write
Data type
IGDataArray containing Double values.
Default value
{1, 0, 0, 0, 1, 0, 0, 0, 1}


RedGamma

Group: Property

Description:

Red gamma value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
1


IGPDEColorDataDeviceN

Type: Object

Description:

DeviceN color space.

Interface:

IIGPDEColorDataDeviceN extends IIGObject

Class Members:

AltColorSpace
Property
Alternative colorspace.
Names
Property
Names of colorants.
TintTransform
Property
The tintTransform dictionary or function.


AltColorSpace

Group: Property

Description:

Alternative colorspace.

Property Summary:

Access
Read/Write
Data type
IGPDEColorSpace
Default value
Null


Names

Group: Property

Description:

Names of colorants.

Property Summary:

Access
Read/Write
Data type
IGPDFAtomArray
Default value
N/A


TintTransform

Group: Property

Description:

The tintTransform dictionary or function. See Section 4.5.5 in the PDF Reference for more information.

Property Summary:

Access
Read/Write
Data type
IIGPDFBasObj
Default value
Null


IGPDEColorDataICCBased

Type: Object

Description:

ICC based color space.

Interface:

IIGPDEColorDataICCBased extends IIGObject

Class Members:

AltColorSpace
Property
Alternate ColorSpace (optional).
CompsCount
Property
Number of color components (1, 3, or 4).
ICCStream
Property
Stream containing ICC Profile.


AltColorSpace

Group: Property

Description:

Alternate ColorSpace (optional).

Property Summary:

Access
Read/Write
Data type
IGPDEColorSpace
Default value
Null


CompsCount

Group: Property

Description:

Number of color components (1, 3, or 4).

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


ICCStream

Group: Property

Description:

Stream containing ICC Profile.

Property Summary:

Access
Read/Write
Data type
IGPDFStream
Default value
Null


IGPDEColorDataIndexed

Type: Object

Description:

Indexed color space.

Interface:

IIGPDEColorDataIndexed extends IIGObject

Class Members:

BaseColorSpace
Property
Base colorspace.
HiVal
Property
Highest color value.
LookUp
Property
Indexed color lookup data.


BaseColorSpace

Group: Property

Description:

Base colorspace.

Property Summary:

Access
Read/Write
Data type
IGPDEColorSpace
Default value
Null


HiVal

Group: Property

Description:

Highest color value.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


LookUp

Group: Property

Description:

Indexed color lookup data.

Property Summary:

Access
Read/Write
Data type
IGIntegerArray
Default value
N/A


IGPDEColorDataLab

Type: Object

Description:

Describes a L*a*b* color space.

Default lab = {{0, 0, 0}, {0, 0, 0}, {-100, 100}, {-100, 100}};

Interface:

IIGPDEColorDataLab extends IIGObject

Class Members:

BlackPoint
Property
Black point.
RangeA
Property
Color range A.
RangeB
Property
Color range B.
WhitePoint
Property
White point.


RangeA

Group: Property

Description:

Color range A.

Property Summary:

Access
Read/Write
Data type
IGPDEColorRange
Default value
N/A


RangeB

Group: Property

Description:

Color range B.

Property Summary:

Access
Read/Write
Data type
IGPDEColorRange
Default value
N/A


IGPDEColorDataSeparation

Type: Object

Description:

Separation color space

Interface:

IIGPDEColorDataSeparation extends IIGObject

Class Members:

AltColorSpace
Property
Alternative colorspace.
Name
Property
Name of separation or colorant.
TintTransform
Property
The tintTransform dictionary or function.


Name

Group: Property

Description:

Name of separation or colorant.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


IGPDEColorRange

Type: Object

Description:

Contains color range.

Interface:

IIGPDEColorRange extends IIGObject

Class Members:

Max
Property
Max value.
Min
Property
Min value.


Max

Group: Property

Description:

Max value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
0


Min

Group: Property

Description:

Min value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
0


IGPDEColorSpec

Type: Object

Description:

Describes color specification.

Interface:

IIGPDEColorSpec extends IIGObject

Class Members:

Space
Property
The specified color space.
Value
Property
The color value.


Space

Group: Property

Description:

The specified color space.

Property Summary:

Access
Read/Write
Data type
IGPDEColorSpace
Default value
N/A


Value

Group: Property

Description:

The color value.

Property Summary:

Access
Read/Write
Data type
IGPDEColorValue
Default value
N/A


IGPDEColorValue

Type: Object

Description:

Describes color value.

Interface:

IIGPDEColorValue extends IIGObject

Class Members:

Color
Property
Color value components.
ColorObj
Property
Parameter for color spaces whose color values do not have numeric values, such as the Pattern and Separation color spaces.
ColorObj2
Property
For DeviceN color space.


Color

Group: Property

Description:

Color value components. For instance, a Gray color space has 1 component, an RGB color space has 3 components, a CMYK has 4 components, and so on.

Declaration:

Color (Index As Long) As Long

Property Summary:

Index
[0 to 6]
Access
Read/Write
Data type
Long
Default value
N/A


ColorObj

Group: Property

Description:

Parameter for color spaces whose color values do not have numeric values, such as the Pattern and Separation color spaces.

Property Summary:

Access
Read/Write
Data type
IIGPDEObject
Default value
N/A


ColorObj2

Group: Property

Description:

For DeviceN color space.

Property Summary:

Access
Read/Write
Data type
IIGPDEObject
Default value
N/A


IGPDEContentAttrs

Type: Object

Description:

Attributes of a PDE Content object.

Interface:

IIGPDEContentAttrs extends IIGObject

Class Members:

BBox
Property
Bounding box of the content object.
CacheDevice
Property
If flags has IG_PDE_SET_CACHE_DEVICE set, the first 6 cache device values contain the operands for the d1 (setcachdevice) page operator. If flags has IG_PDE_SET_CHAR_WIDTH set, cacheDevice contains 2 charwidth values.
Flags
Property
Content flags.
FormType
Property
Only used if the content contains a Form XObject. Corresponds to FormType key in the XObject Form attributes dictionary.
Matrix
Property
Transformation matrix for the content object.
XUID
Property
The form's XUID, an ID that uniquely identifies the form.


BBox

Group: Property

Description:

Bounding box of the content object. Only used if the content contains a Form. Corresponds to BBox key in the XObject Form attributes dictionary.

Property Summary:

Access
Read/Write
Data type
IGPDFFixedRect
Default value
N/A


CacheDevice

Group: Property

Description:

If flags has IG_PDE_SET_CACHE_DEVICE set, the first 6 cache device values contain the operands for the d1 (setcachdevice) page operator. If flags has IG_PDE_SET_CHAR_WIDTH set, cacheDevice contains 2 charwidth values.

Property Summary:

Access
Read/Write
Data type
IGIntegerArray
Default value
{0, 0, 0, 0, 0, 0, 0, 0}


Flags

Group: Property

Description:

Content flags.

Property Summary:

Access
Read/Write
Data type
enumIGPDEContentFlags
Default value
0


FormType

Group: Property

Description:

Only used if the content contains a Form XObject. Corresponds to FormType key in the XObject Form attributes dictionary.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Matrix

Group: Property

Description:

Transformation matrix for the content object. Only used if the content contains a Form. Corresponds to Matrix key in the XObject Form attributes dictionary.

Property Summary:

Access
Read/Write
Data type
IGPDFFixedMatrix
Default value
N/A


XUID

Group: Property

Description:

Only used if the content contains a Form. The form's XUID, an ID that uniquely identifies the form. Corresponds to XUID key in the XObject Form attributes dictionary.

Property Summary:

Access
Read/Write
Data type
IIGPDFBasObj
Default value
Null


IGPDEDash

Type: Object

Description:

Describes dash specification, as described in Table 4.8 in the PDF Reference. See Section 4.3.2 for more information on line dash patterns.

Interface:

IIGPDEDash extends IIGObject

Class Members:

Dashes
Property
Dash array, which specifies distances in user space for the length of dashes and gaps.
DashPhase
Property
Dash phase.


Dashes

Group: Property

Description:

Dash array, which specifies distances in user space for the length of dashes and gaps.

Property Summary:

Access
Read/Write
Data type
IGIntegerArray
Default value
N/A


DashPhase

Group: Property

Description:

Dash phase. Phase is a number that specifies a distance in user space into the dash pattern at which to begin marking the path.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


IGPDEFilterArray

Type: Object

Description:

Array of filter specifications usually containing two or less filters: encoding and/or compression.

Interface:

IIGPDEFilterArray extends IIGObject

Class Members:

Count
Property
Number of filters in the array.
Spec
Property
Accesses filter specification with specified Index.
AddSpec
Method
Adds new filter specification to the filters array.


AddSpec

Group: Method

Description:

Adds new filter specification to the filters array.

Declaration:

AddSpec (Spec As IGPDEFIlterSpec)

Parameters:

Spec
Filter specification to add.

Return Value:

N/A


Count

Group: Property

Description:

Number of filters in the array.

Property Summary:

Access
Read-only
Data type
Long
Default value
0


Spec

Group: Property

Description:

Accesses filter specification with specified Index.

Declaration:

Spec (Index As Long) As IGPDEFilterSpec

Property Summary:

Index
[0 to Count-1]
Access
Read-only
Data type
IGPDEFilterSpec
Default value
N/A


IGPDEFilterSpec

Type: Object

Description:

Filter element in a filter array.

Interface:

IIGPDEFilterSpec extends IIGObject

Class Members:

DecodeParams
Property
Parameters used by the decoding filters specified with the Filter key.
EncodeParams
Property
Parameters used when encoding the stream.
Name
Property
Filter name.


DecodeParams

Group: Property

Description:

Parameters used by the decoding filters specified with the Filter key. Corresponds to the DecodeParms key in the stream dictionary. Must be set to NULL if AT_PDE_FILTERSPEC is specified but no decode parameters are specified. This can be done by zeroing the unused decode params. Required decode params for DCTDecode are Columns, Rows, and Colors.

Property Summary:

Access
Read/Write
Data type
IIGPDFBasObj
Default value
Null


EncodeParams

Group: Property

Description:

Parameters used when encoding the stream. Required for DCTDecode filter; optional for other filters. Must be set to NULL if AT_PDE_FILTERSPEC is specified but no encode parameters are specified. This can be done by zeroing the unused encode params.

Property Summary:

Access
Read/Write
Data type
IIGPDFBasObj
Default value
Null


Name

Group: Property

Description:

Filter name. Supported filters are: ASCIIHexDecode, ASCII85Decode, LZWDecode, DCTDecode, CCITTFaxDecode, RunLengthDecode, and FlateDecode.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


IGPDEFontAttrs

Type: Object

Description:

Attributes for IGPDEFont and IGPDFSysFont.

Interface:

IIGPDEFontAttrs extends IIGObject

Class Members:

Ascent
Property
Maximum ascender height.
AvgWidth
Property
Average character width.
BBox
Property
Font bounding box in 1000 EM units.
CantEmbed
Property
A non-zero value means the font cannot be embedded.
CapHeight
Property
Capital height.
CharSet
Property
An atom for "Roman" or Null.
CIDFontType
Property
Atom representing the CID font type: CIDFontType0 or CIDFontType2.
DeltaEncoding
Property
The name of the base encoding
Descent
Property
Maximum descender depth.
Encoding
Property
An atom for font encoding.
Flags
Property
Desired font flags, one or more values of enumIGPDFFontFlags.
ItalicAngle
Property
Italic angle in degrees, if any.
Lang
Property
Atom representing the ISO 639 language code.
Leading
Property
Additional leading between lines.
MaxWidth
Property
Additional leading between lines.
MissingWidth
Property
Width of missing character.
Name
Property
An atom for font name
Ordering
Property
Atom representing the CIDFont's Ordering information, for example, "1".
PackageType
Property
Package type, one of enumIGPDFSysFontPackageType.
PlatformName
Property
The platform name.
Protection
Property
Allows setting one of the following bits to disable font embedding:
PSName
Property
Atom representing the PostScript name of a TrueType font.
Registry
Property
Atom representing the CIDFont's Registry information, as in "Adobe-Japan".
StemH
Property
Horizontal stem width.
StemV
Property
Vertical stem width.
Supplement
Property
The SystemSupplement field from the CIDFont.
Type
Property
An atom for font type, corresponding to the Subtype key in a font dictionary.
WritingMode
Property
Writing mode.
XHeight
Property
X height.


Ascent

Group: Property

Description:

Maximum ascender height.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


AvgWidth

Group: Property

Description:

Average character width.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


BBox

Group: Property

Description:

Font bounding box in 1000 EM units.

Property Summary:

Access
Read only
Data type
IGPDFFixedRect
Default value
N/A


CantEmbed

Group: Property

Description:

A non-zero value means the font cannot be embedded.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


CapHeight

Group: Property

Description:

Capital height.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


CharSet

Group: Property

Description:

An atom for "Roman" or Null. If "Roman," the characters must be a subset of the Adobe Standard Roman Character Set.

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


CIDFontType

Group: Property

Description:

Atom representing the CID font type: CIDFontType0 or CIDFontType2.

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


DeltaEncoding

Group: Property

Description:

The name of the base encoding; that is, the BaseEncoding entry in an encoding dictionary (see section 5.5.5 of the PDF Reference). The Differences entry of the encoding dictionary describes differences (deltas) from the base encoding.

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


Descent

Group: Property

Description:

Maximum descender depth.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


Encoding

Group: Property

Description:

An atom for font encoding. May be MacRomanEncoding, WinAnsiEncoding, or Null. In the case of Null, call IGPDFSysFont.GetEncoding to get more information about the encoding.

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


Flags

Group: Property

Description:

Desired font flags, one or more values of enumIGPDFFontFlags.

Property Summary:

Access
Read/Write
Data type
enumIGPDFFontFlags
Default value
IG_PDF_SYSFONT_UNKNOWN


ItalicAngle

Group: Property

Description:

Italic angle in degrees, if any.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


Lang

Group: Property

Description:

Atom representing the ISO 639 language code. These are available from http://www.iso.ch.

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


Leading

Group: Property

Description:

Additional leading between lines.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


MaxWidth

Group: Property

Description:

Additional leading between lines.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


MissingWidth

Group: Property

Description:

Width of missing character.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


Name

Group: Property

Description:

An atom for font name, as in "CourierStd". Corresponds to the BaseFont key in the font dictionary of a PDF file (see Section 5.6.3 in the PDF Reference).

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


Ordering

Group: Property

Description:

Atom representing the CIDFont's Ordering information, for example, "1".

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


PackageType

Group: Property

Description:

Package type, one of enumIGPDFSysFontPackageType.

Property Summary:

Access
Read/Write
Data type
enumIGPDFSysFontPackageType
Default value
IG_PDF_SYSFONT_UNKNOWN


PlatformName

Group: Property

Description:

The platform name.

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


Protection

Group: Property

Description:

Allows setting one of the following bits to disable font embedding:

  • IG_PDE_FONT_NO_EMBEDDING - font should not be embedded.
  • IG_PDE_FONT_NO_EDITABLE_EMBEDDING - font should not be embedded for editing purposes.

Property Summary:

Access
Read/Write
Data type
enumIGPDEFontProtection
Default value
IG_PDE_FONT_NO_EMBEDDING


PSName

Group: Property

Description:

Atom representing the PostScript name of a TrueType font.

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


Registry

Group: Property

Description:

Atom representing the CIDFont's Registry information, as in "Adobe-Japan".

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


StemH

Group: Property

Description:

Horizontal stem width.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


StemV

Group: Property

Description:

Vertical stem width.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


Supplement

Group: Property

Description:

The SystemSupplement field from the CIDFont.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Type

Group: Property

Description:

An atom for font type, corresponding to the Subtype key in a font dictionary. May be "Type1", "TrueType", "MMType1", or "Type0."

Property Summary:

Access
Read only
Data type
IGPDFAtom
Default value
N/A


WritingMode

Group: Property

Description:

Writing mode. Must be one of:

  • 0 for horizontal writing
  • 1 for vertical writing

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


XHeight

Group: Property

Description:

X height.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


IGPDEFontCreateFromSysFontParams

Group: Object

Description:

Data structure used with PDE Font creation.

Interface:

IIGPDEFontCreateFromSysFontParams extends IIGObject

Class Members:

CodePage
Property
Used to select a specific code page supported by the font.
Encoding
Property
Used to specify which encoding to use with a CID font.
Flags
Property
A bit mask of the enumIGPDEFontCreateFlags.
MMDesignVec
Property
Multiple master font design vector.
SnapshotName
Property
The name of a multiple master snapshot.


CodePage

Group: Property

Description:

Used to select a specific code page supported by the font. When a non-zero code page is supplied, embedding must be turned on and the IG_PDE_FONT_ENCODE_BY_GID flag set.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Encoding

Group: Property

Description:

Used to specify which encoding to use with a CID font. Pass NULL to use the platform default.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


Flags

Group: Property

Description:

A bit mask of the enumIGPDEFontCreateFlags.

Property Summary:

Access
Read/Write
Data type
enumIGPDEFontCreateFlags
Default value
0


MMDesignVec

Group: Property

Description:

Multiple master font design vector.

Property Summary:

Access
Read/Write
Data type
IGIntegerArray, array of fixed values
Default value
N/A


SnapshotName

Group: Property

Description:

The name of a multiple master snapshot. See PDF Reference for more information on snapshots.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


IGPDEFontInfo

Group: Object

Description:

PDE font information.

Interface:

IIGPDEFontInfo extends IIGObject

Class Members:

CharSet
Property
Character set.
Encoding
Property
Font encoding.
Name
Property
Font name.
Type
Property
Font type.
WritingMode
Property
Writing mode: 0 = horizontal; 1 = vertical.


CharSet

Group: Property

Description:

Character set. If "Roman," the characters must be a subset of the Adobe Standard Roman Character Set.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


Encoding

Group: Property

Description:

Font encoding.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


Name

Group: Property

Description:

Font name.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


Type

Group: Property

Description:

Font type.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


WritingMode

Group: Property

Description:

Writing mode: 0 = horizontal; 1 = vertical.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
0


IGPDEGraphicState

Group: Object

Description:

Attributes of a PDE element or a PDE text sub-element.

Interface:

IIGPDEGraphicState extends IIGObject

Class Members:

Dash
Property
Dash specification.
FillColorSpec
Property
Fill color specification.
Flatness
Property
Line flatness, corresponding to the i (setflat) operator.
LineCap
Property
Line cap style, corresponding to the J (setlinecap) operator.
LineJoin
Property
Line join style, corresponding to the j (setlinejoin) operator.
LineWidth
Property
Line width, corresponding to the w (setlinewidth) operator.
MiterLimit
Property
Miter limit, corresponding to the M (setmiterlimit) operator.
RenderIntent
Property
A color rendering intent, corresponding to the Intent key in the image dictionary.
StrokeColorSpec
Property
Stroke color specification.
WasSetFlags
Property
Indicates if an attribute has been set.


Dash

Group: Property

Description:

Dash specification.

Property Summary:

Access
Read/Write
Data type
IGPDEDash
Default value
DeviceGray


FillColorSpec

Group: Property

Description:

Fill color specification.

Property Summary:

Access
Read/Write
Data type
IGPDEColorSpec
Default value
DeviceGray


Flatness

Group: Property

Description:

Line flatness, corresponding to the i (setflat) operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
IG_PDF_FIXED_ZERO


LineCap

Group: Property

Description:

Line cap style, corresponding to the J (setlinecap) operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


LineJoin

Group: Property

Description:

Line join style, corresponding to the j (setlinejoin) operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


LineWidth

Group: Property

Description:

Line width, corresponding to the w (setlinewidth) operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
IG_PDF_FIXED_ONE


MiterLimit

Group: Property

Description:

Miter limit, corresponding to the M (setmiterlimit) operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
IG_PDF_FIXED_TEN


RenderIntent

Group: Property

Description:

A color rendering intent, corresponding to the Intent key in the image dictionary.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


StrokeColorSpec

Group: Property

Description:

Stroke color specification.

Property Summary:

Access
Read/Write
Data type
IGPDEColorSpec
Default value
DeviceGray


WasSetFlags

Group: Property

Description:

Indicates if an attribute has been set.

NOTE: Support for these flags is not complete. For compatibility, you should set them, but do not depend on reading their values back. The intended use is with XObject Forms to indicate whether the value is inherited or explicitly set.

Property Summary:

Access
Read/Write
Data type
enumIGPDEGraphicStateWasSetFlags
Default value
0


IGPDEImageAttrs

Group: Object

Description:

Attributes of a PDE Image object.

Interface:

IIGPDEImageAttrs extends IIGObject

Class Members:

BitsPerComponent
Property
Number of bits used to represent each color component in the image, corresponding to the BitsPerComponent key in the image dictionary.
Decode
Property
An array of numbers specifying the mapping from sample values in the image to values appropriate for the current color space.
Flags
Property
Indicates image attributes.
Height
Property
Height of the image, corresponding to the Height key in the image dictionary.
Intent
Property
Color rendering intent, corresponding to the Intent key in the image dictionary.
Width
Property
Width of the image, corresponding to the Width key in the image dictionary.


BitsPerComponent

Group: Property

Description:

Number of bits used to represent each color component in the image, corresponding to the BitsPerComponent key in the image dictionary.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Decode

Group: Property

Description:

An array of numbers specifying the mapping from sample values in the image to values appropriate for the current color space. These values correspond to the Decode key in the image dictionary.

Property Summary:

Access
Read/Write
Data type
IGIntegerArray
Default value
{0, 0, 0, 0, 0, 0, 0, 0}


Flags

Group: Property

Description:

Indicates image attributes.

Property Summary:

Access
Read/Write
Data type
enumIGPDEImageAttrFlags
Default value
0


Height

Group: Property

Description:

Height of the image, corresponding to the Height key in the image dictionary.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Intent

Group: Property

Description:

Color rendering intent, corresponding to the Intent key in the image dictionary.

Property Summary:

Access
Read/Write
Data type
IGPDFAtom
Default value
N/A


Width

Group: Property

Description:

Width of the image, corresponding to the Width key in the image dictionary.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


IGPDEPSAttrs

Group: Object

Description:

Attributes of a PDE PostScript object.

Interface:

IIGPDEPSAttrs extends IIGObject

Class Members:

Flags
Property
Flags for PostScript.


Flags

Group: Property

Description:

Flags for PostScript.

Property Summary:

Access
Read/Write
Data type
enumIGPDEPSAttrFlags
Default value
IG_PDE_PS_INLINE


IGPDETextState

Group: Object

Description:

Attributes of a PDE text element.

Interface:

IIGPDETextState extends IIGObject

Class Members:

CharSpacing
Property
Character spacing was set, corresponding to the Tc operator.
FontSize
Property
Font size.
RenderMode
Property
Text rendering mode, corresponding to the Tr operator.
Scale
Property
Scale in percents.
TextRise
Property
Specifies the distance, in text space units that are not scaled, to move the baseline up or down from its default location.
WasSetFlags
Property
Indicates if an attribute has been set.
WordSpacing
Property
Word spacing, corresponding to the Tw operator.


CharSpacing

Group: Property

Description:

Character spacing was set, corresponding to the Tc operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


FontSize

Group: Property

Description:

Font size.

Property Summary:

Access
Read/Write
Data type
Long
Default value
1


RenderMode

Group: Property

Description:

Text rendering mode, corresponding to the Tr operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Scale

Group: Property

Description:

Scale in percents.

Property Summary:

Access
Read/Write
Data type
Long
Default value
100


TextRise

Group: Property

Description:

Specifies the distance, in text space units that are not scaled, to move the baseline up or down from its default location. See Section 5.2.6 in the PDF Reference.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


WordSpacing

Group: Property

Description:

Word spacing, corresponding to the Tw operator.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


IGPDEXYZColor

Group: Object

Description:

XYZ color data.

Interface:

IIGPDEXYZColor extends IIGObject

Class Members:

X
Property
X value.
Y
Property
Y value.
Z
Property
Z value.


X

Group: Property

Description:

X value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
0


Y

Group: Property

Description:

Y value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
0


Z

Group: Property

Description:

Z value.

Property Summary:

Access
Read/Write
Data type
Double
Default value
0


IGPDFFixedMatrix

Group: Object

Description:

Matrix containing fixed numbers.

Interface:

IIGPDFFixedMatrix extends IIGObject

Class Members:

A
Property
A value.
B
Property
B value.
C
Property
C value.
D
Property
D value.
H
Property
H value.
V
Property
V value.


A

Group: Property

Description:

A value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


B

Group: Property

Description:

B value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


C

Group: Property

Description:

C value

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


D

Group: Property

Description:

D value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


H

Group: Property

Description:

H value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


V

Group: Property

Description:

V value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


IGPDFFixedPoint

Group: Object

Description:

Point (in two-dimensional space) represented by two fixed numbers.

Interface:

IIGPDFFixedPoint extends IIGObject

Class Members:

H
Property
Horizontal value.
V
Property
Vertical value.


H

Group: Property

Description:

Horizontal value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


V

Group: Property

Description:

Vertical value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


IGPDFFixedQuad

Group: Object

Description:

Quadrilateral represented by four fixed points (one at each corner). A quadrilateral differs from a rectangle in that the latter must always have horizontal and vertical sides, and opposite sides must be parallel.

Interface:

IIGPDFFixedQuad extends IIGObject

Class Members:

BottomLeft
Property
Bottom Left value.
BottomRight
Property
Bottom Right value.
TopLeft
Property
Top Left value.
TopRight
Property
Top Right value.


BottomLeft

Group: Property

Description:

Bottom Left value.

Property Summary:

Access
Read only
Data type
IGPDFFixedPoint
Default value
N/A


BottomRight

Group: Property

Description:

Bottom Right value.

Property Summary:

Access
Read only
Data type
IGPDFFixedPoint
Default value
N/A


TopLeft

Group: Property

Description:

Top Left value.

Property Summary:

Access
Read only
Data type
IGPDFFixedPoint
Default value
N/A


TopRight

Group: Property

Description:

Top Right value.

Property Summary:

Access
Read only
Data type
IGPDFFixedPoint
Default value
N/A


IGPDFFixedRect

Group: Object

Description:

A rectangle represented by the coordinates of its four sides. A rectangle differs from a quadrilateral in that the former must always have horizontal and vertical sides, and opposite sides must be parallel.

Interface:

IIGPDFFixedRect extends IIGObject

Class Members:

Bottom
Property
Bottom value.
Left
Property
Left value.
Right
Property
Right value.
Top
Property
Top value.


Bottom

Group: Property

Description:

Bottom value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Left

Group: Property

Description:

Left value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Right

Group: Property

Description:

Right value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


Top

Group: Property

Description:

Top value.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


IGPDFPrintOptions

Group: Object

Description:

Print options that control PDF printing.

To print set printing method to printer, and fill in inFileName, outFileName, deviceName, driverName, portName, dpi, nCopies, startPage, endPage, psLevel, shrinkToFit, binaryOK, emitHalftones.

Interface:

IIGPDFPrintOptions

Class Members:

BinaryOK
Property
True turns on binary data, False turns it off. Applies to PostScript printer.
DeviceName
Property
Name of device to print to.
DevMode
Property
Allows you to pass a DEVMODE structure in if you have one.
DoOPP
Property
True uses OverPrint Preview, False does not. Applies to printer.
DriverName
Property
Name of driver.
EmitHalftones
Property
True turns on emit half-tones, False turns it off. Applies to PostScript printer.
EndPage
Property
Page to finish printing on. Applies to printer.
InFileName
Property
Used for the Windows DOCINFO structure.
Method
Property
One of enumIGPDFPrintMethod values.
OutFileName
Property
Used for the Windows DOCINFO structure
PaperHeight
Property
Height of paper in points.
PaperWidth
Property
Width of paper in points. Applies to printer.
PortName
Property
Name of Port.
PrintAnnots
Property
True turns on printing annotations, False turns it off. Applies to printer.
Reverse
Property
True reverses print order, False does regular order. Applies to printer.
ShrinkToFit
Property
True turns on shrink to fit, False turns it off. Applies to PostScript printer.
StartPage
Property
Page to start printing with, 0-based. Applies to printer.
TransQuality
Property
Transparency flattening quality control. 1 is fastest; 5 is best. Applies to printer.


BinaryOK

Group: Property

Description:

True - turns on binary data, False turns it off. Applies to PostScript printer.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
False


DeviceName

Group: Property

Description:

Name of device to print to. Available devices can be found in the Windows Registry at HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Devices.

Applies to printer.

Property Summary:

Access
Read/Write
Data type
String
Default value
""


DevMode

Group: Property

Description:

Optional - allows you to pass a DEVMODE structure in if you have one. If you do not pass in your own DEVMODE structure, the new one will be created by calling OpenPrinter(), DocumentProperties(), and ClosePrinter().

We never call SetPrinter() and have no facility to offer the features provided by SetPrinter() (e.g., pause/resume, deleting jobs, changing printer status, etc.). DocumentProperties() is called only in the case where the client doesn't provide a DEVMODE.

NOTE: If you provide your own DEVMODE, you will certainly want to call DocumentProperties() to populate it and/or display the print dialog.

Property Summary:

Access
Read/Write
Data type
Long
Default value
None


DoOPP

Group: Property

Description:

True uses OverPrint Preview, False does not. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
False


DriverName

Group: Property

Description:

Name of driver. For example, "winspool". See registry key for DeviceName. Applies to printer.

Property Summary:

Access
Read/Write
Data type
String
Default value
""


EmitHalftones

Group: Property

Description:

True turns on emit half-tones, False turns it off. Applies to PostScript printer.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
False


EndPage

Group: Property

Description:

Page to finish printing on. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


InFileName

Group: Property

Description:

Used for the Windows DOCINFO structure - lpszDocName that points to a null-terminated string that specifies the name of the document. Applies to printer.

Property Summary:

Access
Read/Write
Data type
String
Default value
""


Method

Group: Property

Description:

One of enumIGPDFPrintMethod values.

IG_PRINT_TO_PRINTER - Output to either a PostScript printer or a non-PostScript printer.

Property Summary:

Access
Read/Write
Data type
enumIGPDFPrintMethod
Default value
IG_PRINT_TO_PRINTER


OutFileName

Group: Property

Description:

Used for the Windows DOCINFO structure - lpszOutput. It points to a string that specifies the name of an output file. If the string is empty, the output will be sent to the device identified by DeviceName, DriverName, and PortName. Applies to printer.

Property Summary:

Access
Read/Write
Data type
String
Default value
""


PaperHeight

Group: Property

Description:

Height of paper in points. The default value is 792. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
792


PaperWidth

Group: Property

Description:

Width of paper in points. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Integer
Default value
612


PortName

Group: Property

Description:

Name of Port. See registry key for DeviceName. Applies to printer.

Property Summary:

Access
Read/Write
Data type
String
Default value
""


PrintAnnots

Group: Property

Description:

True turns on printing annotations, False turns it off. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
False


Reverse

Group: Property

Description:

True reverses print order, False does regular order. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
False


ShrinkToFit

Group: Property

Description:

True turns on shrink to fit, False turns it off. Applies to PostScript printer.

Property Summary:

Access
Read/Write
Data type
Boolean
Default value
False


StartPage

Group: Property

Description:

Page to start printing with, 0-based. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Long
Default value
0


TransQuality

Group: Property

Description:

Transparency flattening quality control. 1 is fastest; 5 is best. Applies to printer.

Property Summary:

Access
Read/Write
Data type
Long
Default value
3


IGPDFSysFontPlatData

Group: Object

Description:

SysFont platform specific data.

Interface:

IIGPDFSysFontPlatData extends IIGObject

Class Members:

FontAttrs
Property
Windows font attributes.


FontAttrs

Group: Property

Description:

Windows font attributes.

Property Summary:

Access
Read/Write
Data type
IFontDisp
Default value
N/A


Enumerations

This section provides the info about ImageGear PDF component enumerations:

enumIGPDEColorData
Type of IGPDEColorData object.
enumIGPDEContentFlags
Bit field for IGPDEContentAttrs.
enumIGPDEElementCopyFlags
Bitfield for PDE element copy.
enumIGPDEFontCreateFlags
Flags for PDE font creation routine.
enumIGPDEFontCreateNeedFlags
Flags for PDE Font CreateNeedFlags.
enumIGPDEFontProtection
Setting for disabling font embedding.
enumIGPDEGraphicStateWasSetFlags
Describes the graphics state that was set.
enumIGPDEImageAttrFlags
Flags for AT_PDE_IMAGEATTRS/IGPDEImageAttrs.
enumIGPDEImageDataFlags
Image Data Flags.
enumIGPDEInsertElement
Used for inserting a PDE element into the content.
enumIGPDEPathElementType
Describes path segment operators in PDE path elements.
enumIGPDEPathOpFlags
Flags for paint operators in a PDE path.
enumIGPDEPSAttrFlags
Flags for IGPDEPSAttrs.
enumIGPDESoftMaskCreateFlags
Flags for use with SoftMask create.
enumIGPDETextFlags
Flags used in the text API.
enumIGPDEType
Types of the editing objects.
enumIGPDEXGroupCreateFlags
Used to specify the type of transparency group to create.
enumIGPDFBasicType
Basic PDF objects.
enumIGPDFBookmarkFlags
Represents PDF bookmark flags.
enumIGPDFCodePages
Code page character-mapping constants.
enumIGPDFCompressions
PDF compressions for raster images.
enumIGPDFDestinationType
Represents the types of PDF object destination.
enumIGPDFFixedValues
PDF Fixed value.
enumIGPDFFontFlags
Constants that indicate a font's attributes (fixed width, roman or symbolic, sans serif, and so forth).
enumIGPDFInsertFlags
PDF insert flags.
enumIGPDFObjType
Types of the simple objects created with IGPDFCtl.CreateObject.
enumIGPDFPageNumber
PageNumber specification.
enumIGPDFPageRange
The types of PDF pages range.
enumIGPDFPermReqObj
Enumerated data type used to describe the target object of a permission request.
enumIGPDFPermReqOpr
Enumerated data type used to describe the target operation of a permissions request.
enumIGPDFPermReqStatus
An enumerated data type that provides the status of PDF Doc-related permissions methods.
enumIGPDFPermsFlags
Flags that describe permissions wanted and granted for a document.
enumIGPDFPreflightProfile
Specifies the types of the supported preflight profiles supported by ImageGear.
enumIGPDFPrintMethod
Used for IGPDFPrintOptions.Method.
enumIGPDFRevision
Specifies /R revision value.
enumIGPDFSecurityInfoFlags
Flags used to specify various information about the Acrobat viewer's security and permissions.
enumIGPDFStdSecurityMethod
Specifies standard security algorithms.
enumIGPDFStreamType
Specifies type of the registered stream event, used in IGPDFCtl.RegisterStreamEvent.
enumIGPDFSysFontMatchFlags
Font matching flags for SysFont find routine.
enumIGPDFSysFontPackageType
Flags for packageType of AT_PDE_FONTATTRS/IGPDEFontAttrs.
enumIGPDFTextEncoding
PDF text encodings.
enumIGPDFWordFinderVersion
WordFinder algorithm version.
enumIGPDFWordFlags
Context flags.


enumIGPDEColorData

Group: Enumeration

Description:

Type of IGPDEColorData object.

Values:

IG_UNKNOWN
0
Undefined object
IG_CALGRAY
1
IGPDEColorDataCalGray object
IG_CALRGB
2
IGPDEColorDataCalRGB object
IG_LAB
3
IGPDEColorDataLab object
IG_ICCBASED
4
IGPDEColorDataICCBased object
IG_INDEXED
5
IGPDEColorDataIndexed object
IG_SEPARATION
6
IGPDEColorDataSeparation object
IG_DEVICEN
7
IGPDEColorDataDeviceN object


enumIGPDEContentFlags

Group: Enumeration

Description:

Bit field for IGPDEContentAttrs.

Values:

IG_PDE_NOT_SET
0
Content flag is not set.
IG_PDE_SET_CACHE_DEVICE
0x0001
if set, cacheDevice contains 6 cache device values
IG_PDE_SET_CHAR_WIDTH
0x0002
if set, cacheDevice contains 2 charwidth values
IG_PDE_FORM_MATRIX
0x0004
if set, formMatrix contains a valid matrix


enumIGPDEElementCopyFlags

Group: Enumeration

Description:

Bitfield for PDE element copy.

Values:

IG_PDE_ELEMENT_COPY_FOR_CLIP
0x0001
Copied element does not need gstate or clip
IG_PDE_ELEMENT_COPY_CLIPPING
0x0002
Acquire the clip path and put it in the copied object


enumIGPDEFontCreateFlags

Group: Enumeration

Description:

Flags for PDE font creation routine. If you want to subset a font, set both the IG_PDE_FONT_CREATE_EMBEDDED and IG_PDE_FONT_WILL_SUBSET flags.

Values:

IG_PDE_FONT_CREATE_NOT_ALLOWED
-1
Creation is not allowed. Usually returns by SysFont's "getCreateFlags" when the combination of SysFont and SysEncoding is not allowed.
IG_PDE_FONT_CREATE_EMBEDDED
0x0001
Embed the font. Create an embedded font. By itself, this will not subset the font.
IG_PDE_FONT_WILL_SUBSET
0x0002
Subset the font. If you want to subset a font, set both the IG_PDE_FONT_CREATE_EMBEDDED and IG_PDE_FONT_WILL_SUBSET flags. You must call "subsetNow" to actually subset the font. Both embedding and sub-setting a font creates a CFF font.
IG_PDE_FONT_DO_NOT_EMBED
0x0004
Do not embed the font. You cannot set both this and the IG_PDE_FONT_WILL_SUBSET flags. Nor can you set IG_PDE_FONT_CREATE_EMBEDDED.
IG_PDE_FONT_ENCODE_BY_GID
0x0008
Create a CIDFont with identity (GID) encoding.
IG_PDE_FONT_DEFER_WIDTHS
0x0010
Wait to get widths until later (affects Type0 fonts only).
IG_PDE_FONT_CREATE_SUBSET
0x0002
Subset the font. If you want to subset a font, set both the IG_PDE_FONT_CREATE_EMBEDDED and IG_PDE_FONT_WILL_SUBSET flags. You must call "subsetNow" to actually subset the font. Both embedding and sub-setting a font creates a CFF font.
IG_PDE_FONT_CREATE_GID_OVERRIDE
0x0020
The library will convert cp to gid with identity embedded
IG_PDE_FONT_CREATE_TO_UNICODE
0x0040
Create ToUnicode cmap
IG_PDE_FONT_CREATE_ALL_WIDTHS
0x0080
Supply entire widths table (affects Type0 fonts only)


enumIGPDEFontCreateNeedFlags

Group: Enumeration

Description:

Flags for PDE Font CreateNeedFlags.

Values:

IG_PDE_FONT_CREATE_NEED_WIDTHS
0x00010000
Need to create width
IG_PDE_FONT_CREATE_NEED_TO_UNICODE
0x00020000
Need to create ToUnicode stream
IG_PDE_FONT_CREATE_NEED_EMBED
0x00040000
Need to embed it


enumIGPDEFontProtection

Group: Enumeration

Description:

Setting for disabling font embedding.

Values:

IG_PDE_FONT_NO_EMBEDDING
0x00000001
Flags for protection of IGPDEFontAttrs - embedding is not allowed.
IG_PDE_FONT_NO_EDITABLE_EMBEDDING
0x00000002
Flags for protection of IGPDEFontAttrs - editable embedding is not allowed.


enumIGPDEGraphicStateWasSetFlags

Group: Enumeration

Description:

Structure describing the graphics state that was set.

Values:

IG_PDE_FILL_CSPACE_WAS_SET
0x0001
A fill color space was set, corresponding to the cs (setcolorspace) operator.
IG_PDE_FILL_CVALUE_WAS_SET
0x0002
A color fill value was set, corresponding to the sc (setcolor) operator.
IG_PDE_STROKE_CSPACE_WAS_SET
0x0004
A color space stroke value was set, corresponding to the CS (setcolorspace) operator.
IG_PDE_STROKE_CVALUE_WAS_SET
0x0008
A color stroke value was set, corresponding to the SC (setcolor) operator.
IG_PDE_DASH_WAS_SET
0x0010
A dash specification was set, corresponding to the d (setdash) operator.
IG_PDE_LINE_WIDTH_WAS_SET
0x0020
The line width was set, corresponding to the w (setlinewidth) operator.
IG_PDE_MITER_LIMIT_WAS_SET
0x0040
The miter limit was set, corresponding to the M (setmiterlimit) operator.
IG_PDE_FLATNESS_WAS_SET
0x0080
Line flatness was set, corresponding to the i (setflat) operator.
IG_PDE_LINE_CAP_WAS_SET
0x0100
Line cap style was set, corresponding to the J (setlinecap) operator.
IG_PDE_LINE_JOIN_WAS_SET
0x0200
Line join style was set, corresponding to the j (setlinejoin) operator.
IG_PDE_RENDER_INTENT_WAS_SET
0x0400
A color rendering intent was set, corresponding to the Intent key in the image dictionary.
IG_PDE_EXT_GSTATE_WAS_SET
0x0800
An extended graphics state was set, corresponding to the gs operator.


enumIGPDEImageAttrFlags

Group: Enumeration

Description:

Flags for AT_PDE_IMAGEATTRS/IGPDEImageAttrs. See Section 4.8.4 in the PDF Reference for more information on image attributes.

Values:

IG_PDE_IMAGE_EXTERNAL
0x0001
Image is an XObject
IG_PDE_IMAGE_MASK
0x0002
Image is an imagemask
IG_PDE_IMAGE_INTERPOLATE
0x0004
Interpolate is true
IG_PDE_IMAGE_HAVE_DECODE
0x0008
We have a decode array
IG_PDE_IMAGE_INDEXED
0x0010
Uses an indexed color space
IG_PDE_IMAGE_MASKED_BY_POSITION
0x0020
Image has a Mask key containing an ImageMask stream
IG_PDE_IMAGE_MASKED_BY_COLOR
0x0040
Image has a Mask key containing an array of color values


enumIGPDEImageDataFlags

Group: Enumeration

Description:

Image Data Flags.

Values:

AT_PDE_IMAGE_DATA_NOT_ENCODED
0x0000
Indicates filter is active; data is not encoded.
AT_PDE_IMAGE_ENCODED_DATA
0x0001
Indicates filter is active; data is encoded.


enumIGPDEInsertElement

Group: Enumeration

Description:

Used for inserting a PDE element into the content.

Values:

IG_PDE_BEFORE_FIRST
((LONG) -1)
Specifies position before the first element. Usually used to insert first content element.
IG_PDE_AFTER_LAST
(IG_PDF_FIXED_MAX - 1)
Specifies the last element position. Usually used to insert last content element.


enumIGPDEPathElementType

Group: Enumeration

Description:

Constant values that describe path segment operators in PDE path elements.

Values:

IG_PDE_MOVE_TO
0
Designates m (moveto) operator, which moves the current point.
IG_PDE_LINE_TO
1
Designates l (lineto) operator, which appends a straight line segment from the current point.
IG_PDE_CURVE_TO
2
Designates c (curveto) operator, which appends a Bézier curve to the path.
IG_PDE_CURVE_TO_V
3
Designates v (curveto) operator, which appends a Bézier curve to the current path when the first control point coincides with initial point on the curve.
IG_PDE_CURVE_TO_Y
4
Designates y (curveto) operator, which appends a Bézier curve to the current path when the second control point coincides with final point on the curve.
IG_PDE_RECT
5
Designates re operator, which adds a rectangle to the current path.
IG_PDE_CLOSE_PATH
6
Designates h (closepath) operator, which closes the current subpath.


enumIGPDEPathOpFlags

Group: Enumeration

Description:

Flags for paint operators in a PDE path.

Values:

IG_PDE_INVISIBLE
0x00
Path is neither stroked nor filled, so it is invisible.
IG_PDE_STROKE
0x01
Stroke the path, as with the S (stroke) operator.
IG_PDE_FILL
0x02
Fills the path, using the nonzero winding number rule to determine the region to fill, as with the f (fill) operator.
IG_PDE_EO_FILL
0x04
Fills the path, using the even-odd rule to determine the region to fill, as with the f* (eofill) operator.


enumIGPDEPSAttrFlags

Group: Enumeration

Description:

Flags for IGPDEPSAttrs.

Values:

IG_PDE_PS_INLINE
0
Inline PostScript


enumIGPDESoftMaskCreateFlags

Group: Enumeration

Description:

Flags for use with SoftMask create.

Values:

IG_PDE_SOFTMASK_TYPE_LUMINOSITY
0x0001
Specifies how the mask is to be computed.
IG_PDE_SOFTMASK_TYPE_ALPHA
0x0002
Specifies how the mask is to be computed.


enumIGPDETextFlags

Group: Enumeration

Description:

Flags used in the text API.

Values:

IG_PDE_TEXT_RUN
0x0001
Specifies an action for the run
IG_PDE_TEXT_CHAR
0x0002
Specifies an action for single character
IG_PDE_TEXT_PAGE_SPACE
0x0004
Specifies user space
IG_PDE_TEXT_GET_BOUNDS
0x0008
Specifies using the font descriptor's FontBBox


enumIGPDEType

Group: Enumeration

Description:

Types of the editing objects.

Values:

IG_PDE_CONTENT
0
Content
IG_PDE_TEXT
1
Text
IG_PDE_PATH
2
Path
IG_PDE_IMAGE
3
Image
IG_PDE_FORM
4
Form
IG_PDE_POSTSCRIPT
5
PostScript
IG_PDE_XOBJECT
6
XObject
IG_PDE_CLIP
7
Clip
IG_PDE_FONT
8
Font
IG_PDE_COLORSPACE
9
ColorSpace
IG_PDE_GSTATE
10
Graphic State
IG_PDE_PLACE
11
Place
IG_PDE_CONTAINER
12
Container
IG_PDF_SYSFONT
13
System Font
IG_PDE_PATTERN
14
Pattern
IG_PDE_DEVICENCOLORS
15
Device N Colors
IG_PDE_SHADING
16
Shading
IG_PDE_GROUP
17
Group
IG_PDE_UNKNOWN
18
Unknown
IG_PDE_BEGIN_CONTAINER
19
Begin Container
IG_PDE_END_CONTAINER
20
End Container
IG_PDE_BEGIN_GROUP
21
Begin Group
IG_PDE_END_GROUP
22
End Group
IG_PDE_XGROUP
23
XGroup
IG_PDE_SOFTMASK
24
SoftMask
IG_PDF_SYSENCODING
25
System Encoding
IG_PDE_DOC
26
Document
IG_PDE_PAGE
27
Page
IG_PDE_READER
28
Reader
IG_PDE_WRITER
29
Writer
IG_PDE_TEXTITEM
30
Text Item
IG_PDE_LASTTYPE
31
Last Type


enumIGPDEXGroupCreateFlags

Group: Enumeration

Description:

Enumerated data type used to specify the type of transparency group to create.

Values:

IG_PDE_XGROUP_TYPE_TRANSPARENCY
0x0001
Creates a transparency XGroup object.


enumIGPDFBasicType

Group: Enumeration

Description:

Basic PDF objects.

Values:

IG_PDF_BASIC_NULL
0
Null object
IG_PDF_BASIC_INT
1
Integer object
IG_PDF_BASIC_FIXED
2
Fixed (real) object
IG_PDF_BASIC_BOOL
3
Boolean object
IG_PDF_BASIC_NAME
4
Name object
IG_PDF_BASIC_STRING
5
String object
IG_PDF_BASIC_DICT
6
Dictionary object
IG_PDF_BASIC_ARRAY
7
Array object
IG_PDF_BASIC_STREAM
8
Stream object


enumIGPDFBookmarkFlags

Group: Enumeration

Description:

Represents PDF bookmark flags.

Values:

IG_PDF_BOOKMARK_FONT_ITALIC
1
Italic font
IG_PDF_BOOKMARK_FONT_BOLD
2
Bold font


enumIGPDFCharSet

Group: Enumeration

Description:

Used by IGPDFFont.GetCharSet to return font's character encoding type.

Declaration:

enum enumIGPDFCharSet
{
    /** The font does not use Adobe Standard Encoding.*/
    IG_PDF_CHARSET_UNKNOWN = 0,
    /** The font uses Adobe Standard encoding. This is
        determined by the "Uses Adobe Standard
        Encoding" bit in the font descriptor.
    */
    IG_PDF_CHARSET_ROMAN = 1,
    // Currently unused.
    IG_PDF_CHARSET_EXPERT = 2,
    // Last element in the enumeration
    IG_PDF_CHARSET_LAST
};

Values:

IG_PDF_CHARSET_UNKNOWN
0
The font does not use Adobe Standard Encoding.
IG_PDF_CHARSET_ROMAN
1
The font uses Adobe Standard encoding. This is determined by the "Uses Adobe Standard Encoding" bit in the font descriptor.
IG_PDF_CHARSET_EXPERT
2
Currently unused.
IG_PDF_CHARSET_LAST
Last element in the enumeration


enumIGPDFCodePages

Group: Enumeration

Description:

Code page character-mapping constants.

Values:

IG_PDF_CODEPAGE_WIN_EAST_EUROPEAN_ROMAN
1250
Windows code pages
IG_PDF_CODEPAGE_WIN_CYRILLIC
1251
Windows code pages
IG_PDF_CODEPAGE_WIN_GREEK
1253
Windows code pages
IG_PDF_CODEPAGE_WIN_TURKISH
1254
Windows code pages
IG_PDF_CODEPAGE_WIN_HEBREW
1255
Windows code pages
IG_PDF_CODEPAGE_WIN_ARABIC
1256
Windows code pages
IG_PDF_CODEPAGE_WIN_BALTIC
1257
Windows code pages
IG_PDF_CODEPAGE_MAC_CENTRAL_EUROPEAN
-9994
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_CROATIAN
-9993
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_ROMANIAN
-9992
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_CYRILLIC
-9991
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_UKRAINIAN
-9990
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_GREEK
-9989
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_TURKISH
-9988
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_HEBREW
-9987
Macintosh pseudo code pages
IG_PDF_CODEPAGE_MAC_ARABIC
-9986
Macintosh pseudo code pages


enumIGPDFCompressions

Group: Enumeration

Description:

PDF compressions for raster images.

Values:

IG_PDF_COMPRESSION_NONE
0
No compression
IG_PDF_COMPRESSION_CCITT_G3
1
CCITT G3 compression
IG_PDF_COMPRESSION_CCITT_G4
2
CCITT G4 compression
IG_PDF_COMPRESSION_CCITT_G32D
3
CCITT G32D compression
IG_PDF_COMPRESSION_JPEG
4
JPEG compression
IG_PDF_COMPRESSION_LZW
5
LZW compression
IG_PDF_COMPRESSION_RLE
6
RLE compression
IG_PDF_COMPRESSION_DEFLATE
7
Deflate compression


enumIGPDFDestinationType

Group: Enumeration

Description:

Represents the types of PDF object destination.

Values:

IG_PDF_DEST_INVALID
0
Invalid destination
IG_PDF_DEST_EXPLICIT
1
Explicit destination
IG_PDF_DEST_NAMED
2
Named destination


enumIGPDFFixedValues

Group: Enumeration

Description:

PDF Fixed value. A variety of predefined fixed-point constants.

Values:

IG_PDF_FIXED_ZERO
((LONG) 0x00000000L)
0
IG_PDF_FIXED_HUNDREDTH
((LONG) 0x0000028FL)
1/100
IG_PDF_FIXED_SIXTEENTH
((LONG) 0x00001000L)
1/16
IG_PDF_FIXED_TWELFTH
((LONG) 0x00001555L)
1/12
IG_PDF_FIXED_TENTH
((LONG) 0x00001999L)
1/10
IG_PDF_FIXED_EIGHTH
((LONG) 0x00002000L)
1/8
IG_PDF_FIXED_QUARTER
((LONG) 0x00004000L)
1/4
IG_PDF_FIXED_THIRD
((LONG) 0x00005555L)
1/3
IG_PDF_FIXED_HALF
((LONG) 0x00008000L)
1/2
IG_PDF_FIXED_TWOTHIRDS
((LONG) 0x0000AAAAL)
2/3
IG_PDF_FIXED_THREEQUARTERS
((LONG) 0x0000C000L)
3/4
IG_PDF_FIXED_PI4
((LONG) 0x0000c910L)
PI/4
IG_PDF_FIXED_SEVENEIGHTS
((LONG) 0x0000E000L)
7/8
IG_PDF_FIXED_ONE1
((LONG) 0x0000ffffL)
-1
IG_PDF_FIXED_ONE
((LONG) 0x00010000L)
1
IG_PDF_FIXED_PI2
((LONG) 0x00019220L)
PI/2
IG_PDF_FIXED_GOLDEN
((LONG) 0x00019e37L)
Golden
IG_PDF_FIXED_TEN
((LONG) 0x000A0000L)
10
IG_PDF_FIXED_MAX
((LONG) 0x7FFFFFFF)
Max fixed-point value
IG_PDF_FIXED_MIN
((LONG) 0x80000000)
Min fixed-point value
IG_PDF_FIXED_NEGATIVE_INFINITY
((LONG) IG_PDF_FIXED_MAX)
Negative fixed-point infinity
IG_PDF_FIXED_POSITIVE_INFINITY
((LONG) IG_PDF_FIXED_MIN)
Positive fixed-point infinity


enumIGPDFFontFlags

Group: Enumeration

Description:

Font flags. Constants that indicate a font's attributes (fixed width, roman or symbolic, sans serif, and so forth).

Values:

IG_PDF_FIXED_WIDTH
0x00000001
All glyphs in the font are the same width.
IG_PDF_SERIF
0x00000002
The font is a serif font.
IG_PDF_PI
0x00000004
The font is a symbolic (pi) font.
IG_PDF_SCRIPT
0x00000008
The font is a script font.
IG_PDF_STD_ENCODING
0x00000020
The font uses standard encoding.
IG_PDF_ITALIC
0x00000040
The font is an italic font.
IG_PDF_ALL_CAP
0x00010000
The font is an all-caps font.
IG_PDF_SMALL_CAP
0x00020000
The font is a small caps font.
IG_PDF_FORCE_BOLD
0x00040000
Force bold characters to draw bold even at small point sizes.


enumIGPDFInsertFlags

Group: Enumeration

Description:

PDF insert flags.

Values:

IG_PDF_INSERT_ALL
4096 (&H1000)
Insert all.
IG_PDF_INSERT_BOOKMARKS
1
Insert bookmarks only.
IG_PDF_INSERT_THREADS
2
Insert threads only.


enumIGPDFObjType

Group: Enumeration

Description:

Types of the simple objects created with IGPDFCtl.CreateObject.

Values:

IG_PDF_ATOM
0
IGPDFAtom object
IG_PDF_STREAM
1
IGPDFStream object
IG_PDF_FIXEDPOINT
2
IGPDFFixedPoint object
IG_PDF_FIXEDMATRIX
3
IGPDFFixedMatrix object
IG_PDF_FIXEDRECT
4
IGPDFFixedRect object
IG_PDF_FIXEDQUAD
5
IGPDFFixedQuad object
IG_PDE_FONTATTRS
6
IGPDEFontAttrs object
IG_PDE_COLORVALUE
7
IGPDEColorValue object
IG_PDE_COLORSPEC
8
IGPDEColorSpec object
IG_PDE_DASH
9
IGPDEDash object
IG_PDE_GRAPHICSTATE
10
IGPDEGraphicState object
IG_PDE_TEXTSTATE
11
IGPDETextState object
IG_PDF_SYSFONTPLATDATA
12
IGPDFSysFontPlatData object
IG_PDE_FONTINFO
13
IGPDEFontInfo object
IG_PDE_FONTCREATEFROMSYSFONTPARAMS
14
IGPDEFontCreateFromSysFontParams object
IG_PDE_COLORRANGE
15
IGPDEColorRange object
IG_PDE_XYZCOLOR
16
IGPDEXYZColor object
IG_PDE_COLORDATA_CALGRAY
17
IGPDEColorDataCalGray object
IG_PDE_COLORDATA_CALRGB
18
IGPDEColorCalRGB object
IG_PDE_COLORDATA_LAB
19
IGPDEColorDataLab object
IG_PDE_COLORDATA_ICCBASED
20
IGPDEColorDataICCBased object
IG_PDE_COLORDATA_INDEXED
21
IGPDEColorDataIndexed object
IG_PDE_COLORDATA_SEPARATION
22
IGPDEColorDataSeparation object
IG_PDE_COLORDATA_DEVICEN
23
IGPDEColorDataDeviceN object
IG_PDE_COLORDATA
24
IGPDEColorData object
IG_PDE_PSATTRS
25
IGPDEPSAttrs object
IG_PDE_IMAGEATTRS
26
IGPDEImageAttrs object
IG_PDE_FILTERARRAY
27
IGPDEFilterArray object
IG_PDE_FILTERSPEC
28
IGPDEFilterSpec object
IG_PDE_CONTENTATTRS
29
IGPDEContentAttrs object


enumIGPDFPageNumber

Group: Enumeration

Description:

PageNumber specification.

Values:

IG_PDF_BEFORE_FIRST_PAGE
-1
Specifies position before the first page. Usually used to insert first document page.
IG_PDF_LAST_PAGE
-2
Specifies the last page position. Usually used to insert last document page.


enumIGPDFPageRange

Group: Enumeration

Description:

The types of PDF pages range.

Values:

IG_PDF_ALL_PAGES
-3 (&HFFFFFFFD)
All pages.
IG_PDF_EVEN_PAGES
-5 (&HFFFFFFFB)
Even pages only.
IG_PDF_ODD_PAGES
-4 (&HFFFFFFFC)
Odd pages only.


enumIGPDFPermReqObj

Group: Enumeration

Description:

Enumerated data type used to describe the target object of a permission request.

Values:

IG_PDF_PERM_REQ_OBJ_DOC
1
Document
IG_PDF_PERM_REQ_OBJ_PAGE
2
Page
IG_PDF_PERM_REQ_OBJ_LINK
3
Link
IG_PDF_PERM_REQ_OBJ_BOOKMARK
4
Bookmark
IG_PDF_PERM_REQ_OBJ_THUMBNAIL
5
Thumbnail
IG_PDF_PERM_REQ_OBJ_ANNOT
6
Annotation
IG_PDF_PERM_REQ_OBJ_FORM
7
Form
IG_PDF_PERM_REQ_OBJ_SIGNATURE
8
Signature
IG_PDF_PERM_REQ_OBJ_LAST
9
Used to for checking cache size


enumIGPDFPermReqOpr

Group: Enumeration

Description:

Enumerated data type used to describe the target operation of a permissions request.

Values:

IG_PDF_PERM_REQ_OPR_ALL
1
Check all operations
IG_PDF_PERM_REQ_OPR_CREATE
2
Generic operation
IG_PDF_PERM_REQ_OPR_DELETE
3
Delete
IG_PDF_PERM_REQ_OPR_MODIFY
4
IG_PDF_PERM_REQ_OPR_COPY
5
IG_PDF_PERM_REQ_OPR_ACCESSIBLE
6
For Accessibility use
IG_PDF_PERM_REQ_OPR_SELECT
7
For doc or page, selecting (not copying) text or graphics
IG_PDF_PERM_REQ_OPR_OPEN
8
For document open
IG_PDF_PERM_REQ_OPR_SECURE
9
For doc to changing security settings
IG_PDF_PERM_REQ_OPR_PRINT_HIGH
10
For doc, Regular printing
IG_PDF_PERM_REQ_OPR_PRINT_LOW
11
For doc, low quality printing
IG_PDF_PERM_REQ_OPR_FILL_IN
12
Form fill-in or Sign existing field
IG_PDF_PERM_REQ_OPR_ROTATE
13
Rotate
IG_PDF_PERM_REQ_OPR_CROP
14
Crop
IG_PDF_PERM_REQ_OPR_SUMMARIZE
15
For summarize notes
IG_PDF_PERM_REQ_OPR_INSERT
16
Insert
IG_PDF_PERM_REQ_OPR_REPLACE
17
for page
IG_PDF_PERM_REQ_OPR_REORDER
18
for page
IG_PDF_PERM_REQ_OPR_FULL_SAVE
19
For doc
IG_PDF_PERM_REQ_OPR_IMPORT
20
For notes & Image
IG_PDF_PERM_REQ_OPR_EXPORT
21
For notes. ExportPS should check print
IG_PDF_PERM_REQ_OPR_ANY
22
Used for checking to see if any operation is allowed
IG_PDF_PERM_REQ_OPR_UNKNOWNOPR
23
Used for error checking
IG_PDF_PERM_REQ_OPR_SUBMIT_STANDALONE
24
Submit forms outside of the browser
IG_PDF_PERM_REQ_OPR_SPAWN_TEMPLATE
25
Allows form to spawn template page
IG_PDF_PERM_REQ_OPR_LAST
26
This should be always the last item


enumIGPDFPermReqStatus

Group: Enumeration

Description:

An enumerated data type that provides the status of PDF Doc-related permissions methods.

Values:

IG_PDF_PERM_REQ_DENIED
-1
Request was denied.
IG_PDF_PERM_REQ_GRANTED
0
Request was granted.
IG_PDF_PERM_REQ_UNKNOWN_OBJECT
1
The object is unknown.
IG_PDF_PERM_REQ_UNKNOWN_OPERATION
2
The operation is unknown.
IG_PDF_PERM_REQ_OPERATION_NA
3
The operation is not applicable for the specified object.
IG_PDF_PERM_REQ_PENDING
4
The handler doesn't have enough info to answer at this point. Try again later


enumIGPDFPermsFlags

Group: Enumeration

Description:

Flags that describe permissions wanted and granted for a document. Not all permissions will be granted, if the document is protected or if the document is newer version than the application knows about.

Values:

IG_PDF_PERM_OPEN
0x01
The user is permitted to open and decrypt the document.
IG_PDF_PERM_SECURE
0x02
The user is permitted to change the document's security settings.
IG_PDF_PERM_PRINT
0x04
The user is permitted to print the document. Page Setup access is unaffected by this permission, since that affects Acrobat's preferences - not the document's. In the Document Security dialog, this corresponds to the Printing entry.
IG_PDF_PERM_EDIT
0x08
The user is permitted to edit the document more than adding or modifying text notes (see also IG_PDF_PERM_EDIT_NOTES). In the Document Security dialog, this corresponds to the Changing the Document entry.
IG_PDF_PERM_COPY
0x10
The user is permitted to copy information from the document to the clipboard. In the Document Security dialog, this corresponds to the Content Copying or Extraction entry.
IG_PDF_PERM_EDIT_NOTES
0x20
The user is permitted to add, modify, and delete text notes (see also IG_PDF_PERM_EDIT). In the Document Security dialog, this corresponds to the Authoring Comments and Form Fields entry.
IG_PDF_PERM_SAVE_AS
0x40
The user is permitted to perform a "Save As..." If both IG_PDF_PERM_EDIT and IG_PDF_PERM_EDIT_NOTES are disallowed, "Save" will be disabled but "Save As..." is enabled. The "Save As..." menu item is not necessarily disabled even if the user is not permitted to perform a "Save As...".
NOTE: Not settable by clients.
IG_PDF_PERM_EXT
0x80
This permissions flag is currently not in use; it is reserved for future use.
IG_PDF_PRIV_PERM_FILL_AND_SIGN
0x100
Override other enumIGPDFPermsFlags bits. It allows user to fill-in or sign existing form or signature fields.
IG_PDF_PRIV_PERM_ACCESSIBLE
0x200
Override IG_PDF_PERM_COPY to enable Accessibility API. If a document is saved in Rev2 format (Acrobat 4.0 compatible), only IG_PDF_PERM_COPY bit is checked to determine Accessibility API state.
IG_PDF_PRIV_PERM_DOC_ASSEMBLY
0x400
Override various IG_PDF_PERM_EDIT bit and allow the following operations; page insert/delete/rotate and create bookmark and thumbnail.
IG_PDF_PRIV_PERM_HIGH_PRINT
0x800
This bit is supplement to IG_PDF_PERM_PRINT. If it is clear (disabled) only low quality printing (Print As Image) is allowed. Under UNIX platforms, where "Print As Image" doesn't exist, printing is disabled.
IG_PDF_PERM_OWNER
0x8000
The user is permitted to perform all operations, regardless of the permissions specified by the document. Unless this permission is set, the document's permissions will be reset to those in the document after a full save.
IG_PDF_PRIV_PERM_FORM_SUBMIT
0x10000
Should be set if user can submit forms outside of the browser. This bit is supplement to IG_PDF_PRIV_PERM_FILL_AND_SIGN.
IG_PDF_PRIV_PERM_FORM_SPAWN_TEMPL
0x20000
Should be set if user can spawn template pages. This bit will allow page template spawning even if IG_PDF_PERM_EDIT and IG_PDF_PERM_EDIT_NOTES are clear.
IG_PDF_PERM_ALL
0xFFFFFFFF
IG_PDF_PERM_SETTABLE
IG_PDF_PERM_PRINT + IG_PDF_PERM_EDIT + IG_PDF_PERM_COPY + IG_PDF_PERM_EDIT_NOTES
The OR of all operations that can be set by the user in the Standard Security dialog (IG_PDF_PERM_PRINT + IG_PDF_PERM_EDIT + IG_PDF_PERM_COPY + IG_PDF_PERM_EDIT_NOTES)
IG_PDF_PERM_USER
IG_PDF_PERM_ALL - IG_PDF_PERM_OPEN - IG_PDF_PERM_SECURE
All permissions.


enumIGPDFPreflightProfile

Group: Enumeration

Description:

This enumeration specifies the types of the supported preflight profiles supported by ImageGear.

Values:

IG_PDF_PREFLIGHT_PROFILE_PDFA_1A_2005
Profile for PDF/A-1a standard, revision 2005.
IG_PDF_PREFLIGHT_PROFILE_PDFA_1B_2005
Profile for PDF/A-1b, revision 2005.
IG_PDF_PREFLIGHT_PROFILE_PDFX_3_2003
Profile for PDF/X-3, revision 2003.


enumIGPDFPreflightReportCodes

Group: Enumeration

Description:

This enumeration defines PDF preflight error codes describing incompliance with the specified profile.

Values:

IG_PDF_PREFLIGHT_SUCCESS = 0
Document or Page is compliant with the specified preflight profile. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_DOCUMENT
Document is not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_PAGE
Page is not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FILE_STRUCTURE
File structure is not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FILE_HEADER
File header is not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FILE_TRAILER
File trailer is not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FILTERS
Document contains non-compliant filters. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_EMBEDDED_FILES
Embedded files are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_OPTIONAL_CONTENT
Optional content is not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_GRAPHICS
Graphics are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_COLOR_SPACES
Color spaces are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_ICC_COLOR_SPACES
Not compliant ICCBased color spaces. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_DEVICE_COLOR_SPACES
Not compliant uncalibrated color spaces. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_SPECIAL_COLOR_SPACES
Not compliant Separation/DeviceN color spaces. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_IMAGES
Images are not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FORMS
Form XObjects are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_POSTSCRIPT
PostScript XObjects are not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_EXTGSTATE
Extended graphics state is not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FONTS
Fonts are not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_COMPOSITE_FONTS
Composite fonts are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_CID_FONTS
CIDFonts are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_NOT_EMBEDDED_FONTS
Not embedded font programs are not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FONTS_SUBSETS
Fonts subsets are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_CHAR_ENCODINGS
Character encodings are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_UCHAR_MAPS
Unicode character maps are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_TRANSPARENCY
Transparency is not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_ANNOTATIONS
Annotations are not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_MULT_ANNOTATIONS
Multimedia annotations are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_ANNOTATIONS_DICT
Annotation dictionaries are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_ACTIONS
Actions are not compliant. Reported by PDF/A and PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_TRIGGER_EVENTS
Trigger events are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_METADATA
Metadata is not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_DOCINFO
Mismatch between document information dictionary and XMP metadata. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_IDENTIFICATION_SCHEMA
PDF/A identification schema is missing or incompliant with namespace URI <http://www.aiim.org/pdfa/ns/id>. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_LOGICAL_STRUCTURE
Logical structure is not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_TAGGED_PDF
Document doesn't conform to the Tagged PDF conventions. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_ARTIFACTS
Artifacts are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_INTERACTIVE_FORMS
Interactive forms are not compliant. Reported by PDF/A compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_COLOR_DATA
Color data is not compliant. Reported by PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_CHAR_PRINTING_CONDITION
Characterized printing condition is not compliant. Reported by PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FILE_SPEC
File specifications are not compliant. Reported by PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_TRAPPING
Trapping is not compliant. Reported by PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_FILE_IDENTIFICATION
PDF file identification is not compliant. Reported by PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_BOUNDING_BOXES
Bounding boxes are not compliant. Reported by PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_ENCRYPTION
Encryption is not compliant. Reported by PDF/X compliance verifier.
IG_PDF_PREFLIGHT_INCOMPLIANT_VIEW_PREFERENCES
Viewer preferences are not compliant. Reported by PDF/X compliance verifier.


enumIGPDFPrintMethod

Group: Enumeration

Description:

Printing method, used for IGPDFPrintOptions.Method.

Values:

IG_PRINT_TO_PRINTER
0
Output to printer


enumIGPDFRevision

Group: Enumeration

Description:

Specifies /R revision value.

Values:

IG_PDF_REVISION_2
2
Support by Acrobat 3.0 and up.
IG_PDF_REVISION_3
3
Support by Acrobat 5.0 and up.
IG_PDF_REVISION_4
4
Support by Acrobat 6.0 and up.


enumIGPDFSecurityInfoFlags

Group: Enumeration

Description:

Flags used to specify various information about the Acrobat viewer's security and permissions.

Values:

IG_PDF_INFO_HAS_USER_PW
IG_PDF_PERM_OPEN
The document has a user password.
IG_PDF_INFO_HAS_OWNER_PW
IG_PDF_PERM_SECURE
The document has an owner password.
IG_PDF_INFO_CAN_PRINT
IG_PDF_PERM_PRINT
The document can be printed.
IG_PDF_INFO_CAN_EDIT
IG_PDF_PERM_EDIT
The document can be modified, for example by adding notes, links, or bookmarks.
IG_PDF_INFO_CAN_COPY
IG_PDF_PERM_COPY
The document text and graphics can be copied to the clipboard.


enumIGPDFStdSecurityMethod

Group: Enumeration

Description:

Specifies standard security algorithms.

Values:

IG_PDF_STD_SECURITY_METHOD_RC4_V2
2
RC4 algorithm for encryption.
IG_PDF_STD_SECURITY_METHOD_AES_V1
5
AES algorithm for encryption with a zero initialized iv.
IG_PDF_STD_SECURITY_METHOD_AES_V2
6
AES algorithm for encryption with a random initialized iv.


enumIGPDFStreamType

Group: Enumeration

Description:

Specifies type of the registered stream event, used in IGPDFCtl.RegisterStreamEvent.

Values:

IG_STREAM_READ
0
Using to register StreamRead event for read-only from Stream.
IG_STREAM_WRITE
1
Using to register StreamWrite event for writing to Stream.


enumIGPDFSysFontMatchFlags

Group: Enumeration

Description:

Font matching flags for SysFont find routine.

Values:

IG_PDF_SYSFONT_MATCH_NAME_AND_CHARSET
0x0001
Match the font name and character set.
IG_PDF_SYSFONT_MATCH_FONT_TYPE
0x0002
Match the font type
IG_PDF_SYSFONT_MATCH_WRITING_MODE
0x0004
Match the writing mode, that is, horizontal or vertical.


enumIGPDFSysFontPackageType

Group: Enumeration

Description:

Flags for packageType of AT_PDE_FONTATTRS/IGPDEFontAttrs.

Values:

IG_PDF_SYSFONT_UNKNOWN
0
Unknown
IG_PDF_SYSFONT_TYPE1
1
Type1
IG_PDF_SYSFONT_TRUETYPE
2
TrueType
IG_PDF_SYSFONT_CID
3
CID
IG_PDF_SYSFONT_ATC
4
ATC
IG_PDF_SYSFONT_OCF
5
OCF
IG_PDF_SYSFONT_OPENTYPE_CFF
6
OpenType CFF
IG_PDF_SYSFONT_OPENTYPE_CID
7
OpenType CID
IG_PDF_SYSFONT_OPENTYPE_TT
8
OpenType TT


enumIGPDFTextEncoding

Group: Enumeration

Description:

PDF text encodings.

Values:

IG_PDF_ENCODING_NONE
0
No encoding
IG_PDF_ENCODING_ASCII_85
1
ASCII 85 encoding
IG_PDF_ENCODING_ASCII_HEX
2
ASCII HEX encoding


enumIGPDFWordFinderVersion

Group: Enumeration

Description:

WordFinder algorithm version.

Values:

IG_PDF_WF_LATEST_VERSION
0
The latest available version.
IG_PDF_WF_VERSION_2
2
Version used for Acrobat 3.x, 4.x.
IG_PDF_WF_VERSION_3
3
Available in Acrobat 5.0 without Accessibility enabled. Includes some improved word piecing algorithms.
IG_PDF_WF_VERSION_4
4
For Acrobat 5.0 with Accessibility enabled. Includes advanced word ordering algorithms in addition to improved word piecing algorithms.


enumIGPDFWordFlags

Group: Enumeration

Description:

Context flags.

Values:

IG_PDF_ORDER
0x2
Use PDF order for text enumeration
IG_PDF_XY_SORT
0x4
Use XY order for text enumeration


ImageGear Processing Component API Reference

ImageGear Processing Component API Reference

ImageGear Processing component is responsible for the image processing functionality. It exposes the following objects:

IGColorTemperature
Represents a pair of color temperature and tint.
IGComponentInfo
Options for the contrast functions.
IGContrastOptions
Contains options for the contrast functions.
IGMatrix
Two-dimensional matrix.
IGProcessingCtl
ImageGear Processing Control
IGPseudoColorLimitsOptions
Options for the IGProcessingCtl .PseudoColorWithLimits method.
IGResizeOptions
Options for the IGProcessingCtl .ResizeImage, IGProcessingCtl .GenerateThumbnail methods.
IGResizePreserveBWOptions
Value for the IGProcessingCtl .Interpolation property equal IG_INTERPOLATION_PRESERVE_WHITE or IG_INTERPOLATION_PRESERVE_BLACK.
IGResizeScaleToGrayOptions
Value for the IGProcessingCtl .Interpolation property equal IG_INTERPOLATION_GRAYSCALE

The following interfaces that don't have corresponding objects are defined in ImageGear Processing component:

IIGProcessing
ImageGear Processing Interface

The following enumerations are used in ImageGear Processing component:

enumIGAlphaChannelType
Bit depths for an alpha channel.
enumIGBitonalReductModes
Types of bitonal color reduction
enumIGBlendModes
Types of blending of two images
enumIGContrastModes
Types of contrast adjustment
enumIGConvolutionResults
Types of convolution result
enumIGEdgeDetectionMethods
These constants define the edge detection methods available.
enumIGEdgeMapMethods
Types of edge map operation
enumIGFlipModes
Types of flipping
enumIGFrameModes
Modes of drawing of a frame
enumIGIllumninant
Lists standard illuminants.
enumIGInterpolations
Types of interpolation
enumIGPromotionModes
Modes of color promotion
enumIGResizeModes
Modes of image resizing
enumIGRotationModes
Modes of image rotation
enumIGRotationValues
Angles of image rotation by a multiple of 90 degrees
enumIGWhiteBalancePreset
Lists constants for preset white balance values.

Below is an alphabetized reference of ImageGear Core objects and interfaces and their API (properties, methods, and events).


IGColorTemperature

Type: Object

Description:

Represents a pair of color temperature and tint.

Interface:

IIGColorTemperature

Class Members:

Name
Type
Description
Temperature
property
Gets/sets color temperature.
Tint
property
Gets/sets the tint.
ConvertToXY
method
Converts color temperature object to XY coordinates of the corresponding white point.
InitializeFromPreset
method
Initializes color temperature object from a preset value.
InitializeFromXY
method
Initializes IGColorTemperature object from XY coordinates of white point.


ConvertToXY

Group: Method

Description:

Converts color temperature object to XY coordinates of the corresponding white point.

Declaration:

ConvertToXY() As IGDoublePoint

Return Value:

Returns coordinates of the calculated white point.

See Also:

IGDoublePoint


InitializeFromPreset

Group: Method

Description:

Initializes color temperature object from a preset value, such as Daylight, Tungsten, etc.

Declaration:

InitializeFromPreset(
    PresetValue As enumIGWhiteBalancePreset
    )

Parameters:

PresetValue
Preset white balance identifier

See Also:

enumIGWhiteBalancePreset


InitializeFromXY

Group: Method

Description:

Initializes color temperature object from XY coordinates of white point.

Declaration:

InitializeFromXY(
    WhiteXY As IGDoublePoint)

Parameters:

WhiteXY
Coordinates of a white point

See Also:

IGDoublePoint


Temperature

Group: Property

Description:

Gets/sets color temperature. Setting a greater temperature for an image results in more yellow color, lower temperature results in more blue color. Useful range for Temperature is between 2000 and 10000.

Property Summary:

Data Type:
Double
Default Value:
5500
Access:
Read/Write
Settings:
2000...10000
Bits Per Pixel:
N/A
Sample:
None


Tint

Group: Property

Description:

Represents color tint. Setting a greater tint value for an image results in a more magenta color, lower tint values result in greener color. Useful range for Tint is between -50 and 50.

Property Summary:

Data Type:
Double
Default Value:
0
Access:
Read/Write
Settings:
-50..50
Bits Per Pixel:
N/A
Sample:
None


IGContrastOptions

Group: Object

Description:

This object contains options for the contrast functions.

Interface:

IIGContrastOptions

Class Members:

Channel
property
This property provides the color channel for the contrast functions.
Mode
property
This property provides the mode for the contrast functions.


Channel

Group: Property

Description:

This property contains the different color components (channels).

Property Summary:

Data Type:
enumIGColorChannels
Default Value:
IG_COLOR_COMP_ALL
Access:
Read/Write
Settings:
Any value of enumIGColorChannels
Bits Per Pixel:
N/A
Sample:
IP_FX


Mode

Group: Property

Description:

This property contains the mode for the contrast functions.

Property Summary:

Data Type:
enumIGContrastModes
Default Value:
IG_CONTRAST_PALETTE
Access:
Read/Write
Settings:
Any value of enumIGContrastModes
Bits Per Pixel:
N/A
Sample:
IP_FX


IGMatrix

Group: Object

Description:

Two-dimensional matrix used as convolution kernel in the Convolve method.

Interface:

IIGMatrix

Class Members:

Height
property
The height of the matrix.
Values
property
Values of the matrix.
Width
property
The width of the matrix.


Height

Group: Property

Description:

This property contains the height of the matrix.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0..16
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Values

Group: Property

Description:

This property contains the values of the matrix.

Property Summary:

Data Type:
IGIntegerArray
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Width

Group: Property

Description:

This property contains the width of the matrix.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0..16
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


IGProcessingCtl

Group: Control

Description:

The Processing ImageGear component, created explicitly by application developer using IDE/language capabilities.

Interface:

IIGProcessingCtl extends IIGGProcessing

Class Members:

BackColor
property
This property provides the background color.
ComponentInfo
property
Provides access to the IGComponentInfo object for IGProcessingCtl. The IGComponentInfo object identifies the particular version of IGProcessingCtl installed in the computer.
ComponentInterface
property
Provides access to the IIGComponent interface for IGProcessingCtl. Used in IGCoreCtl . AssociateComponent call.
ContrastOptions
property
This property contains options for the contrast functions.
ConvolutionMatrix
property
Two-dimensional matrix used as convolution kernel in the Convolve method.
ImageChannels
property
This property stores image channels.
Interpolation
property
This property contains interpolation method.
LUT
property
This property contains Look Up Table.
PseudoColorLimitsOptions
property
This property contains options for the IGProcessingCtl.PseudoColorWithLimits method.
ReductionPalette
property
This property contains a color palette for the IGProcessingCtl.ReduceWithOctree method.
ResizeOptions
property
This property contains options the resize methods.
AdjustContrast
method
This method allows the brightness and contrast of the image to be adjusted.
AddTilt
method
This method adds a specified plane to the input image to correct for a tilt in the image luminance.
Blend
method
This method blends two images.
BlendWithAlpha
method
This method blends two images, using both their pixel data, their alpha channel data (if they have any), and a background image.
BlendWithLUT
method
This method blends two images using Look-Up Tables (LUTs) to determine the strength of each pixel's contribution.
BuildCameraToneLUT
method
Builds tone correction LUT for adjustment of digital camera raw images.
BuildSRGBGammaLUT
method
Builds the LUT for conversion from "linear sRGB" to the standard sRGB colorspace.
CalculateCameraToSRGBMatrix
method
Calculates matrix for conversion from digital camera colorspace to linear sRGB colorspace.
CalculateCameraWhitePoint
method
Calculates white point corresponding to neutral color in digital camera colorspace.
Close
method
Applies closing effect to provided raster page using the specified structure element.
CombineImageChannels
method
This method takes two to four 8-bit (8-bit gray level) images as input, and creates from them a single new 24-bit or 32-bit image.
ConvertDIBToRuns
method
This method converts image bitmap from standard DIB format to AccuSoft ImageGear compression.
ConvertRunsToDIB
method
This method converts image bitmap from AccuSoft's ImageGear compression to standard uncompressed DIB format.
ConvertToColorSpace
method
This method converts an image from one internal format to another.
ConvertToColorSpaceWithMatrix
method
Converts image to new colorspace using a conversion matrix.
ConvertToGray
method
This method converts an image to a grayscale image.
Convolve
method
This method convolves the 8-bit gray level or 24-bit image using a user-defined convolution kernel.
Crop
method
This method crops an image to the image rectangle.
Decrypt
method
This method decodes an encoded image.
Deskew
method
This method automatically detects the angle of a 1-bit image and rotates it so that it is straight.
Despeckle
method
This method is used for a 1-bit image to help reduce the amount of noise in the image.
DetectAreaWithThreshold
method
Detects an area of pixels using a specified point and threshold.
DetectRedeyeArea
method
Detects an area of pixels using a specified point and threshold, using a red-eye detection algorithm.
Dilate
method
Applies dilation effect to provided raster page using the specified structure element.
DrawFrame
method
This method adds a frame to an image.
Encrypt
method
This method scrambles an image bitmap.
EnhanceLocal
method
This method enhances an image using the local standard deviation and mean.
EqualizeContrast
method
This method automatically adjusts the contrast of an image so that each range of possible intensities has about the same number of pixels in it.
Erode
method
Applies erosion effect to provided raster page using the specified structure element.
FilterEdgeDetection
method
This method performs the edge detection operation specified by the Method argument.
FilterEdgeMap
method
This method performs the image processing operation specified by the Method argument.
FilterWithGaussianBlur
method
This method smoothes the images using Gaussian transform.
FilterWithMedian
method
This method performs a median filter.
FilterWithUnsharpMask
method
This method performs an unsharp masking filter.
FindSkewAngle
method
This method determines the skew angle of an image.
FindTilt
method
This method computes the least-squares best fit plane for an image.
FlattenLayers
method
Renders all the visible layers into the raster composition DIB.
Flip
method
This method flips an image.
GenerateAlpha
method
This method creates an alpha channel.
GenerateThumbnail
method
This method creates a resized copy of the original image.
GeomDespeckle
method
This method is used to reduce speckle noise from an image by using the Crimmins algorithm.
GetHueValue
method
This method converts an RGB value to a hue value.
InvertContrast
method
This method inverts every color to its complement in an image.
Merge
method
This method is used to merge one image into another.
Open
method
Applies opening effect to provided raster page using the specified structure element.
Perspective
method
Provides a perspective-like effect on the IGPage.
Promote
method
This method promotes a 1, 4, or 8-bit image to 24 bits or 32 bits, or a 1 or 4-bit image to 8 bits, or a 1-bit image to 4 bits.
PseudoColorWithLimits
method
This method colors all pixels in an 8-bit gray level image whose values are outside the specified range
PseudoColorWithSmallGrads
method
This method colors an 8-bit gray level image such that small gradients are exposed.
ReduceToBitonal
method
This method reduces an image from 24, 8, or 4 bpp to 1 bpp.
ReduceWithBayer
method
This method reduces an image to a fewer number of Bits Per Pixel, using a Bayer dithering algorithm.
ReduceWithDiffuse
method
This method reduces an image to a fewer number of Bits Per Pixel, using a Diffuse dithering algorithm.
ReduceWithHalftone
method
This method reduces a color or grayscale image to a 1 bit per pixel image suitable for use in half-toning.
ReduceWithMedianCut
method
This method reduces an image by dividing it into the specified number of equal-sized squares.
ReduceWithOctree
method
This method reduces a 24-bit or 8-bit image to an 8-bit or 4-bit image, having the specified number of colors.
ReduceWithPopularity
method
This method reduces a 24-bit image to an 8-bit image while retaining its most popular, or prevalent, colors.
RemoveRedeye
method
Removes red-eye from the IGPage.
RemoveTilt
method
This method computes the best-fit plane for an image, and then subtracts that plane from the image to produce the output.
ResizeImage
method
This method changes the dimensions of an image.
Rotate
method
This method rotates an image about its center by the specified angle.
Rotate90k
method
This method rotates an image clockwise about its center by a multiple of 90 degrees.
RotateEx
method
This method rotates an image about its center by the specified angle.
SeparateImageChannels
method
This method is the reverse of IGProcessingCtl.CombineImageChannels.
Sharpen
method
This method causes the dark side of a contrast edge to become darker and the light side lighter.
Smooth
method
This method makes an image look softer and slightly out of focus.
StretchContrast
method
This method automatically adjusts the contrast of an image so that at least one pixel is completely black and one pixel is completely white.
SwapBytes16Gray
method
This method swaps the 2 bytes of each 16-bit pixel in the image.
SwapRedAndBlue
method
This method reverses the color sequence in the pixels of an image.
TabulateHistogram
method
This method produces a histogram of the pixel values occurring in an image.
TransformWithLUT
method
This method transforms the pixel values of an image using a LUT.
TransformWithLUTs
method
Transforms the pixel values of the IGPage, using an array of look up tables.


AddTilt

Group: Method

Description:

This method adds a specified plane to the input image to correct for a tilt in the image luminance. The plane has X and Y zero crossing at the center of the input image with dSlopeX and dSlopeY as specified in the arguments.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

AddTilt(pPage As IGPage, slopeX As Double, slopeY As Double);

Parameters:

pPage
IGPage object to which the tilt is added.
slopeX
Specify the slope of the plane in X direction, in units per pixel.
slopeY
Specify the slope of the plane in X direction, in units per pixel.

Return value:

N/A

Bits Per Pixel:

8, 16, or 32bit grayscale images with one channel

Sample:

Image Processing and Effects


AdjustContrast

Group: Method

Description:

This method allows the brightness and contrast of the image to be adjusted. Brightness and contrast are linear controls that affect the intensity of the image pixels. These controls are similar to the Brightness and Contrast controls on a typical television set.

Contrast is a multiplier and Brightness is an additive value. A Contrast of 2.0 will cause each pixel to take on twice the intensity that it originally had while 0.5 will divide each by 2. A Brightness value of 20.0 will cause each pixel's intensity to be increased by 20 and a -20 will decrease or darken each by 20. Pixel values are clipped to the 0 to 255 range. Once clipped the data is lost and can not be regenerated. A Brightness of 0.0 and a Contrast of 1.0 will cause no change to the image. A -1.0 Contrast with a Brightness of 0.0 can be used to invert the intensity range.

For 8-bit grayscale images there are 2 methods that can be used to adjust the contrast. The adjustment can be made to the actual pixel value or to the palette. Use ContrastOptions.Mode to determine which. For 4-bit and 8i images the contrast can only be applied to the palette and ContrastOptions.Mode is ignored. For 24-bit images the contrast can only be applied to the pixel values themselves since there is no palette.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

AdjustContrast (ByVal pPage As IGPage, ByVal Contrast As Double,
ByVal Brightness As Double, ByVal Gamma As Double)

Parameters:

pPage
Reference to IGPage object to which the contrast adjustment is applied.
Contrast
The range should be from -(2^bpc) to (2^bpc) to adjust the contrast, bpc being equal to the bits per channel. Here are two examples of how this works:
  • A normal RGB image, 8bpc, would be -(2^8) to (2^8), or -256 to 256.
  • A 4 bit indexed image, 4bpc, would be -(2^4) to (2^4), or -16 to 16.
Brightness
The range should be from -(2^bpc)+1 to (2^bpc)-1 to adjust the brightness, bpc being equal to the bits per channel. Here are two examples of how this works:
  • A normal RGB image, 8bpc, would be -(2^8)+1 to (2^8)-1, or -255 to 255.
  • A 4 bit indexed image, 4bpc, would be -(2^4)+1 to (2^4)-1, or -15 to 15.
Gamma
Greater than 0.0. Usual range: 0.75 to 3.0

Return value:

N/A

Bits Per Pixel:

All

Sample:

Image Processing and Effects.


BackColor

Group: Property

Description:

This property provides the background color for the following methods Rotate, ResizeImage, GenerateThumbnail, DrawFrame.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Blend

Group: Method

Description:

This method will blend the image from srcPage into dstPage. srcPercent specifies the percent of each image to be used in the result. The image in dstPage is destroyed and is replaced with the resulting blend. The percentage ranges from 0 to 100. A zero results in 0% dstPage and 100% srcPage. A value of 50% results in an image which is created ½ of each image. A value of 100% creates an image that is 100% srcPage and 0% dstPage. The images must be the same width, height, and bit depth. colorChannel lets you specify that only one color of a 24-bit image is to be blended in.

This method takes into account the ROI settings of dstPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Blend (ByVal dstPage As IGPage, ByVal srcPage As IGPage, ByVal
srcPercent As Double, ByVal colorChannel As enumIGColorChannels)

Parameters:

dstPage
Reference to IGPage object to be blended into.
srcPage
Reference to IGPage object to blend in, must be same size and bit depth.
srcPercent
Percent of srcPage image to be in the blend (the percent of dstPage image will be 100.0 minus this). 0 means all of dstPage image; 50 means half and half, and 100 means all of srcPage image. The range of values is 0.0 to 100.0.
colorChannel
A constant such as IG_COLOR_COMP_R, _G, _B, or _RGB, specifying which color(s) to blend.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 8-bit gray level and 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BlendWithAlpha

Group: Method

Description:

This method blends two images, using both their pixel data, their alpha channel data (if they have any), and a background image. The changes are made to the pixel data of Page1. All three images: Page1, Page2, and backPage must have the same width and height.

Two parameters index1 and index2 are used to specify index of alpha channel to be taken in blending.

The images page1 and page2 will be blended equally, and any areas that are not covered by either image will show through to the background image. If Page1 has a lower bit depth than Page2, it will automatically be promoted to the bit depth so that the resultant image has the higher bit depth.

Below are the possible settings for Mode. With each setting, there is a brief description of what this blend mode will do, and also the formula that is used for calculating the new pixel values of Page1, where. Please use the following key for the formulas:

I1 = Page1

I2 = Page2

Back = backPage

A1 = alpha channel of the first image

A2 = alpha channel of the second image

IG_BLEND_OVER: Blend first image over the second image:

I1 = (Back*(1-A1)*(1-A2)) + (I1*A1) + (I2*(1-A1)*A2)

IG_BLEND_IN: Blend the first image into the second image

I1 = (Back*(1-A1)*(1-A2)) + (I1*A1*A2) + (I2*(1-A1)*A2)

IG_HELD_OUT: The first image is held out by the second image.

I1 = (Back*(1-A1)*(1-A2)) + (I1*A1*(1-A2)) + (I2*A2)

IG_BLEND_LINEAR: The first and second images are combined in a linear fashion.

I1 = ((Back*(1-A1)*(1-A2)) + (I1*A1) + (I2*A2)/(1+A2*A1)

This method takes into account the ROI settings of Page1 object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

BlendWithAlpha (ByVal Page1 As IGPage, ByVal index1 As Long,
ByVal Page2 As IGPage, ByVal index2 As Long, ByVal backPage As
IGPage, ByVal Mode As enumIGBlendModes)

Parameters:

Page1
Reference to IGPage object of first image.
index1
Specifies an index of alpha channel in Page1 image.
Page2
Reference to IGPage object of second image.
index2
Specifies an index of alpha channel in Page2 image.
backPage
Reference to IGPage object of background image.
Mode
Specifies which type of blending should be used.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BlendWithLUT

Group: Method

Description:

This method blends two images using Look-Up Tables (LUTs) to determine the strength of each pixel's contribution. The pixel values from dstPage are used as the indexes into the LUTs. Both srcPage and dstPage must be the same bit depth and dimensions. The image in dstPage is destroyed and is replaced with the resulting blend.

For 24-bit images, each channel (R, G, or B) of the dstPage image are processed through their own LUT. For 8-bit images, the lpLUT_red is used and the other two are ignored (you can pass in NULL for these). Each LUT that is to be used must point to an 8-bit LUT that has at least enough entries to process the images being passed in. A 24-bit blend requires 3 LUTs, each having 256 entries. (All three pointers can point to the same LUT.) An 8-bit gray level blend requires a single LUT (lpLUT_red) of 256 entries.

Each entry into the LUT determines the percentage of the blend on a pixel-by-pixel basis. Pixel values of the dstPage image are used as indexes into the array. The LUTs should be initialized with values from 0 to 100, where:

0 = 0 % dstPage, 100% srcPage

50 = 50% of dstPage and 50% of srcPage

100 = 100% dstPage and 0 % srcPage

For 8-bit images, the value of each pixel in dstPage is used as the index into the LUT. For 24-bit images, it is the intensity (R+G+B)/3 that is used.

This method takes into account the ROI settings of dstPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

BlendWithLUT (ByVal dstPage As IGPage, ByVal srcPage As IGPage,
ByVal colorChannel As enumIGColorChannels)

Parameters:

dstPage
Reference to IGPage object to be blended into.
srcPage
Reference to IGPage object to blend in, must be same size and bit depth.
colorChannel
A constant such as IG_COLOR_COMP_R, _G, _B, or _RGB, specifying which color(s) to blend.

Return value: N/A

Bits Per Pixel: 8-bit gray level and 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


BuildCameraToneLUT

Group: Method

Description:

Builds tone correction LUT for adjustment of camera raw images.

The LUT moves image's black point by 2^16 / 1000 * Shadows, and adjusts white point according to Exposure parameter. Exposure parameter is measured in f/stops and works similar to modifying the camera exposure.

The LUT must be allocated before calling this function. As of this writing, only the folowing type of LUT is supported: both input and output is 16 bit and unsigned.

Declaration:

BuildCameraToneLUT (
Shadows As Double,
Exposure As Double,
ToneLUT As IGLUT
    );

Parameters:

Shadows
Amount by which to move the black point
Exposure
Exposure compensation, in f/stops
ToneLUT
LUT to fill

See Also:

IGLUT


BuildSRGBGammaLUT

Group: Method

Description:

Builds sRGB Gamma LUT, for conversion from "linear sRGB" to the standard sRGB colorspace.

By "linear sRGB colorspace" we assume a linear (Gamma = 1.0) RGB colorspace that uses sRGB primaries and reference white.

The LUT must be allocated before calling this function. As of this writing, only the folowing type of LUT is supported: both input and output is 16 bit and unsigned.

Declaration:

BuildSRGBGammaLUT (
GammaLUT As IGLUT
    );

Parameters:

GammaLUT
Returns sRGB Gamma LUT

See Also:

CalculateCameraToSRGBMatrix

IGLUT


CalculateCameraToSRGBMatrix

Group: Method

Description:

Calculates matrix for convesion from digital camera colorspace to linear sRGB colorspace, based on two known color matrices corresponding to different light conditions, and a white point. By "linear sRGB colorspace" we assume a linear (Gamma = 1.0) RGB colorspace that uses sRGB primaries and reference white. This colorspace can be converted to sRGB by applying sRGB gamma correction function.

If only one color matrix is known, pass null (Nothing) to XYZToCam2.

Dimensions of XYZToCam1 and XYZToCam2 must be equal to (n, 3), where n is channel count of native camera colorspace (3 or 4). Result matrix dimensions are (3, n).

Declaration:

CalculateCameraToSRGBMatrix (
    XYZToCam1 As IGDoubleMatrix,
    Illuminant1 As enumIGIlluminant,
    XYZToCam2 As IGDoubleMatrix,
    Illuminant2 As enumIGIlluminant,
    WhiteXY As IGDoublePoint
    ) As IGDoubleMatrix

Parameters:

XYZToCam1
XYZ to camera matrix under Illuminant 1
Illuminant1
Illuminant 1
XYZToCam
XYZ to camera matrix under Illuminant 2
Illuminant2
Illuminant 2
WhiteXY
XY coordinates of camera white point

Return value:

Conversion matrix.

See also:

BuildSRGBGammaLUT

IGDoubleMatrix

enumIGIllumninant

IGDoublePoint


CalculateCameraWhitePoint

Group: Method

Description:

Calculates white point corresponding to neutral color in camera colorspace based on two known color matrices corresponding to different light conditions.

If only one color matrix is known, pass null (Nothing) to XYZToCam2.

Dimensions of XYZToCam1 and XYZToCam2 must be equal to (n, 3); length of NeutralColor array must be equal to n, where n is channel count of native camera colorspace (3 or 4).

Declaration:

CalculateCameraWhitePoint (
    XYZToCam1 As IGDoubleMatrix,
    Illuminant1 As enumIGIlluminant,
    XYZToCam2 As IGDoubleMatrix,
    Illuminant2 As enumIGIlluminant,
    NeutralColor As IGDataArray
    ) As IGDoublePoint

Parameters:

XYZToCam1
XYZ to camera matrix under Illuminant 1
Illuminant1
Illuminant 1
XYZToCam2
XYZ to camera matrix under Illuminant 2
Illuminant2
Illuminant 2
NeutralColor
Array of Double containing normalized coordinates of a neutral color

Return value:

Returns the calculated white point coordinates.

See also:

IGDoubleMatrix

enumIGIllumninant

IGDoublePoint

IGDataArray


Close

Group: Method

Description:

This method applies closing effect to provided raster page using the specified structure element. This method is applicable to any grayscale image (image with [Gy] color space).

Declaration:

Sub Close(pPage As IGPage, Matrix As IGMatrix)

Parameters:

pPage
IGPage raster page to apply effect to.
Matrix
IGMatrix specifying a structuring element for the operation.

Return Value:

N/A

Bits Per Pixel:

1-bit and 8-bit grayscale

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


CombineImageChannels

Group: Method

Description:

This method takes two to four 8-bit (8-bit gray level) images as input, and creates from them a single new 24-bit or 32-bit image. For each pixel location, the pixel values are fetched from the input images, and stored in the 24-bit or 32-bit image according to the scheme chosen by argument srcColorSpace.

Declaration:

BlendWithLUT (ByVal pPage As IGPage, srcColorSpace As
enumIGColorSpaces, ByVal dstColorSpace As enumIGColorSpaces)

Parameters:

pPage
Reference to IGPage object to store the created 24- bit image.
srcColorSpace
A constant such as IG_COLOR_SPACE_RGB describing how the channels are to be merged.
dstColorSpace
tells what color space output image should have. There are 2 possible values now: RGB and CMYK.

Return value: N/A

Bits Per Pixel: 8-bit gray level images as input, 24 and 32-bit as output

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGProcessingCtl. The IGComponentInfo object identifies the particular version of IGProcessingCtl installed in the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGProcessingCtl. Used in IGCoreCtl . AssociateComponent call.

Property Summary:

Data Type:
IIGComponent
Default Value:
N/A
Access:
Read-only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


ContrastOptions

Group: Property

Description:

This property contains options for the contrast functions.

Property Summary:

Data Type:
IGContrastOptions
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


ConvertDIBToRuns

Group: Method

Description:

Call this method for a 1-bit image to convert its image bitmap from standard DIB format, to AccuSoft ImageGear compression. This compression format is efficient and will provide higher performance and larger image handling.

Declaration:

ConvertDIBToRuns (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object to which the conversion is applied.

Return value: N/A

Bits Per Pixel: 1

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ConvertRunsToDIB

Group: Method

Description:

Call this function for a 1-bit image to convert its image bitmap from AccuSoft's ImageGear compression to standard uncompressed DIB format. (Note that in the resulting standard DIB image bitmap, the 1-bit pixels are "packed" 8 to a byte, however no compression scheme is used.) This function will return an error if the image bitmap is not in "runs" format when it is called.

Declaration:

ConvertRunsToDIB (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object to which the conversion is applied.

Return value: N/A

Bits Per Pixel: 1

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ConvertToColorSpace

Group: Method

Description:

This method converts an image from one internal format to another depending on the parameter, newColorSpace.

Currently only two conversions are possible: from RGB 24 bpp to CMYK 32 bpp and reverse.

Declaration:

ConvertToColorSpace (ByVal pPage As IGPage, newColorSpace As
enumIGColorSpaces)

Parameters:

pPage
Reference to IGPage object to which the conversion is applied.
newColorSpace
The identifier of destination color space where to convert.

Return value: N/A

Bits Per Pixel: 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ConvertToColorSpaceWithMatrix

Group: Method

Description:

Converts image to new colorspace using a conversion matrix. Destination pixels are calculated as Dst = M * Src, where M is conversion matrix. Number of channels after conversion will be equal to first dimension of the conversionMatrix. Second dimension of conversionMatrix should be equal to number of channels in the source image.

Currently only RGB is supported as the destination colorspace.

Declaration:

ConvertToColorSpaceWithMatrix(
    ByVal pPage As IGPage,
    newColorSpace As enumIGColorSpaces,
    conversionMatrix As IGDoubleMatrix
    );

Parameters:

pPage
Reference to IGPage object to which the conversion is applied.
newColorSpace
Color space to convert to
conversionMatrix
Conversion matrix


ConvertToGray

Group: Method

Description:

This method converts an image to a grayscale image.

Declaration:

ConvertToGray (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object to which the conversion is applied.

Return value: N/A

Bits Per Pixel: 1, 4, 8i, 9-16-bit gray level, 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ConvolutionMatrix

Group: Property

Description:

Two-dimensional matrix used as convolution kernel in the Convolve method.

Property Summary:

Data Type:
IGMatrix
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Convolve

Group: Method

Description:

This method convolves the 8-bit gray level or 24-bit image using a user-defined convolution kernel. The AddToOrigin argument determines whether the result of the convolution is added to the pixel values, or if it replaces the pixel values:

if AddToOrigin = TRUE, then pixel = pixel + result_of_convolution

if AddToOrigin = FALSE, then pixel = result_of_convolution

The result of each convolution is multiplied by the normalizer, Normalizer. For kernels that sum to zero, the normalizer is usually set to 1.0. When the sum is not zero, the normalizer's value will depend on the goal of convolution. In a non-weighted averaging convolution the kernel elements are often all ones. In this case the normalizer would be equal to 1/(sum of kernel). Remember that the normalizer is multiplied by the sum of the convolution and not divided into it.

The result of the convolution is an 8-bit image. resMode determines the type of the format of this new image:

    • IG_CONV_RESULT_RAW - the result is stored as is.
    • IG_CONV_RESULT_ABS - the absolute value of the signed result is stored.
    • IG_CONV_RESULT_8BIT_SIGNED - the result is stored as 8-bit signed values. The MSB is used for the sign.
    • IG_CONV_RESULT_SIGN_CENTERED - the result is stored as 8-bit signed, but 0 is equal to 0x7F. Positive numbers are from 0x7E to 0x00. Negative numbers are from 0x80 to 0xFF. This is used for images that are to be used as background tiles or watermarks.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

Convolve (ByVal pPage As IGPage, ByVal Normalizer As Double,
ByVal  colorChannel As enumIGColorChannels, ByVal resMode As
enumIGConvolutionResults, ByVal AddToOrigin As Boolean)

Parameters:

pPage
Reference to IGPage object to which the convolution is applied.
Normalizer
Contains the value of the normalizer of the kernel.
colorChannel
Constant such as IG_COLOR_COMP_R, _G, _B, or _RGB.
resMode
Constant such as IG_CONV_RESULT_8BIT_SIGNED.
AddToOrigin
Tells whether to add the result of the convolution to the pixel values.

Return value: N/A

Bits Per Pixel: 8-bit gray level, 9-16-bit gray level, 24, and 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Crop

Group: Method

Description:

This method crops an image to the image rectangle. Only pixels that fall on or inside the rectangle specified by Left, Top, Width, Height will be kept in the resulting image. The dimensions of the resulting image are then same as the rectangle. The removed parts of the image are discarded.

This method also allows you to check and process alpha images associated with the main image. You should set the global control parameter IP.ALPHA_PROCESSING_ENABLE, telling whether this function should check and process associated alpha images. If this parameter is True (default), the function checks HiGear for the presence of associated alpha images and apply the same operation on them. If this parameter is False, only the main HiGear image is processed (backward compatible behavior).

Declaration:

Crop (ByVal pPage As IGPage, ByVal Left As Long, ByVal Top As
Long, ByVal Width As Long, ByVal Height As Long)

Parameters:

pPage
Reference to IGPage object to which crop is applied.
Left
X coordinate of the crop rectangle.
Top
Y coordinate of the crop rectangle.
Width
The width of the crop rectangle.
Height
The height of the crop rectangle.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Decrypt

Group: Method

Description:

This method works on a DIB, not on a file. It decodes an image or a rectangular portion thereof, that was encrypted using the Encrypt method. You must supply the password that was used in the call to Encrypt.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

Decrypt (ByVal pPage As IGPage, ByVal password As String)

Parameters:

pPage
Reference to IGPage object to decrypt.
password
The password that was used in the call to Encrypt.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Deskew

Group: Method

Description:

This method automatically detects the angle of the 1-bit document referenced by pPage, and rotates it so that it is straight. (de-skews it.) If RotationMode is set to IG_ROTATE_EXPAND, the size of image width or height will be enlarged as necessary to accommodate the document when it has been rotated. Otherwise, any areas of the document that now fall outside the borders of the original width and height of the image, will be cropped.

This method also allows you to check and process alpha images associated with the main image. You should set the global control parameter IP.ALPHA_PROCESSING_ENABLE, telling whether this function should check and process associated alpha images. If this parameter is True (default), the function checks HiGear for the presence of associated alpha images and apply the same operation on them. If this parameter is False, only the main HiGear image is processed (backward compatible behavior).

Declaration:

Deskew (ByVal pPage As IGPage, ByVal RotationMode As
enumIGRotationModes)

Parameters:

pPage
Reference to IGPage object to de-skew.
RotationMode
Either IG_ROTATE_CLIP or IG_ROTATE_EXPAND.

Return value: N/A

Bits Per Pixel: 1

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Despeckle

Group: Method

Description:

Despeckle is used for a 1-bit image to help reduce the amount of noise in the image. Single pixels and pixel spurs on letters and graphics are removed while leaving the solid areas alone.

The despeckle operation performs a 3x3 median filter on the image. For each 3x3 neighborhood of pixels in the original image, a single pixel is produced in the output image. In this case the output is the median of the 9 values in the 3x3 neighborhood.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

Despeckle (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object to despecle.

Return value: N/A

Bits Per Pixel: 1

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DetectAreaWithThreshold

Group: Method

Description:

Detects an area of pixels using a specified starting location within the image and a threshold. As the threshold is increased, the detected area will accept greater variation in pixel color and become larger. The detected area is saved as the ROI of the page.

Declaration:

Sub DetectAreaWithThreshold(Page As IGPage, XPos As Long, YPos
As Long, Threshold As Double)

Parameters:

Page
Reference to IGPage object on which the detection is performed.
XPos
X coordinate of starting point to search outward from
YPos
Y coordinate of starting point to search outward from
Threshold
Area threshold (in the range from 0 to 1.0)

Return Value:

N/A

Bits Per Pixel:

All except indexed

Sample:

Image Processing and Effects

See Also:

IGPage


DetectRedeyeArea

Group: Method

Description:

Detects an area of pixels using a specified starting location within the image and a threshold, using a red-eye detection algorithm. As the threshold is increased, the detected area will accept greater variation in pixel color and become larger. The detected area is saved as the ROI of the page.

Declaration:

Sub DetectRedeyeArea(Page As IGPage, XPos As Long, YPos As Long,
Threshold As Double)

Parameters:

Page
Reference to IGPage object on which the detection is performed.
XPos
X coordinate of starting point to search outward from
YPos
Y coordinate of starting point to search outward from
Threshold
Area threshold (in the range from 0 to 1.0)

Return Value:

N/A

Bits Per Pixel:

RGB and CMYK images of any bit depth.

Sample:

Image Processing and Effects

See Also:

IGPage


Dilate

Group: Method

Description:

This method applies dilation effect to provided raster page using the specified structure element. This method is applicable to any grayscale image (image with [Gy] color space).

Declaration:

Sub Dilate(pPage As IGPage, Matrix As IGMatrix)

Parameters:

pPage
IGPage raster page to apply effect to.
Matrix
IGMatrix specifying a structuring element for the operation.

Return Value:

N/A

Bits Per Pixel:

1-bit and 8-bit grayscale

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DrawFrame

Group: Method

Description:

This method adds a frame (block of solid color on all four sides) to an image.

If Mode is set to IG_DRAW_FRAME_EXPAND, the width and the height of the image will be expanded by 2 times the width of the frame. If Mode is set to IG_DRAW_FRAME_OVERWRITE, all four sides of the image will be overwritten by the frame, so that the resulting image has the same width and height as the original image, but the edges of the image are "covered" by the frame.

Declaration:

DrawFrame (pPage As IGPage, frameThickness As Long, Mode As
enumDrawFrame)

Parameters:

pPage
Reference to IGPage object to despecle.
frameThickness
The width of the frame, in pixels
Mode
Tells ImageGear which IG_DRAW_FRAME_ setting to use.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Encrypt

Group: Method

Description:

This method scrambles an image bitmap. Your password is also stored. To later decode the image using IGProcessingCtl . Decrypt, you will need to know the password used in this call.

This method takes into account the ROI settings of IGPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

Encrypt (ByVal pPage As IGPage, ByVal password As String)

Parameters:

pPage
Reference to IGPage object to encrypt.
password
A password string.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


EnhanceLocal

Group: Method

Description:

This method enhances an image using the local standard deviation and mean.

It transforms the input image f(x, y) to a new image g(x, y) based on the following formula,

g(x, y) = A(x, y) * [f(x, y) - m(x, y)] + m(x, y)

where,

A(x, y) = k * M / sigma(x, y), with k being a scaling factor within the range [0, 1], m(x, y) and sigma(x, y) being the local mean and local standard deviation, and M being the global of the input image.

To avoid the problem of spikes caused by too small local standard deviation, a check against the minimum allowed standard deviation is performed. If the local standard deviation is too small, the minimum allowed instead will be used in the calculation.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

EnhanceLocal(pPage As IGPage, winWidth As Long, winHeight As
Long, scaleFactor As Double, minStdDev As Double);

Parameters:

pPage
IGPage object to enhance.
winWidth
Width of the local window.
winHeight
Height of the local window.
scaleFactor
Scaling factor.
minStdDev
Minimum allowed standard deviation.

Return value:

N/A

Bits Per Pixel:

8 bit grayscale images with one channel

Sample:

Image Processing and Effects


EqualizeContrast

Group: Method

Description:

This method automatically adjusts the contrast of the image so that each range of possible intensities has about the same number of pixels in it. Just like IGProcessingCtl . StretchContrast, this will expand the intensity range of the image to fill the entire 0 to 255 range. However, unlike that function this one is non-linear.

This function is often used in x-ray images and in others where the contrast can be very small in the original. IGProcessingCtl .EqualizeContrast will bring out subtle changes in the contrast.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Using EqualizeContrast method you need to set the contrast mode to IG_CONTRAST_PIXEL first:

IGProcessingCtl1.ContrastOptions.mode = IG_CONTRAST_PIXEL
IGProcessingCtl1.EqualizeContrast currentPage
IGPageViewCtl1.UpdateView

Declaration:

EqualizeContrast (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object to which the contrast adjustment is applied.

Return value: N/A

Bits Per Pixel:

    • IG_CONTRAST_PIXEL: 8-bit gray level, 9-16-bit gray level, 24, 32
    • IG_CONTRAST_PALETTE: 8-bit gray level

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Erode

Group: Method

Description:

This method applies erosion effect to provided raster page using the specified structure element. This method is applicable to any grayscale image (image with [Gy] color space).

Declaration:

Sub Erode(pPage As IGPage, Matrix As IGMatrix)

Parameters:

pPage
IGPage raster page to apply effect to.
Matrix
IGMatrix specifying a structuring element for the operation.

Return Value:

N/A

Bits Per Pixel:

1-bit and 8-bit grayscale

Sample:

Image Processing and Effects


FilterEdgeDetection

Group: Method

Description:

This method performs the edge detection operation specified by the Method argument.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

FilterEdgeDetection(pPage As IGPage, Method As
enumIGEdgeDetectionMethods);

Parameters:

pPage
IGPage object to process.
Method
Type of edge detection method to perform (enumIGEdgeDetectionMethods).

Return Value:

N/A

Bits Per Pixel:

8 bit grayscale images with one channel

Sample:

Image Processing and Effects


FilterEdgeMap

Group: Method

Description:

This method performs the image processing operation specified by the Method argument.

An edge map is an image that shows where there are changes in contrast in the original image. Where there are no changes, the resulting image is black. The stronger the contract change, the brighter the resultant image. The different types of edge maps are slight variations of the algorithm used, and produce slightly different results.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

FilterEdgeMap (ByVal pPage As IGPage, ByVal Method As
enumEdgeMaps)

Parameters:

pPage
Reference to IGPage object.
Method
Type of edge map operation to perform.

Return value: N/A

Bits Per Pixel: 8-bit gray level, 9-16-bit gray level, 24, and 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FilterWithGaussianBlur

Group: Method

Description:

This method smoothes the images using Gaussian transform. It makes images look softer and slightly out of focus. A specific feature of Gaussian Blur is that it removes the high-frequency component from the image.

Parameter dblRadius corresponds to the Standard Deviation (Sigma) in Gaussian transform. The value (AT_INT)(Sigma * 3 + 0.5) * 2 + 1 cannot be greater than the smaller of the two image dimensions. Typical values for high-resolution images range from 1.0 to 2.0. Larger values will cause greater softening. On the other hand, smaller values are faster. The width of the area considered for each pixel is approximately 6 * dblRadius.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

FilterWithGaussianBlur (ByVal pPage As IGPage, ByVal dblRadius
As Double)

Parameters:

pPage
Reference to IGPage object to which Gaussian transform is applied.
dblRadius
Defines the neighborhood to be considered for each pixel. The value (AT_INT)(Sigma * 3 + 0.5) * 2 + 1 cannot be greater than the smaller of the two image dimensions.

Return value: N/A

Bits Per Pixel: 8-bit gray level, 9-16-bit gray level, 24, and 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FilterWithMedian

Group: Method

Description:

This method performs a median filter on 8-bit gray level and 24 bit images. A median filter is useful for reducing spike or snow-like noise from an image. The width and height determine the size of each original pixel's neighborhood to use to compute the median output pixels. Most applications will find that 3x3 or 5x5 works best.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

FilterWithMedian (ByVal pPage As IGPage, ByVal neighWidth As
Long, ByVal  neighHeight As Long)

Parameters:

pPage
Reference to IGPage object to which a median filter is applied.
neighWidth
Width of the neighborhood to include in computing each new pixel's value.
neighHeight
Height of the neighborhood.

Return value: N/A

Bits Per Pixel: 8-bit gray level, 9-16-bit gray level, 24, and 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FilterWithUnsharpMask

Group: Method

Description:

Unsharp masking filter is used for image sharpening and edge enhancement. The algorithm works by substracting a smoothed version of the image ("unsharp") from the original image.

Parameter dblRadius can range from 0.1 to 500. Typical values for high-resolution images range from 1.0 to 2.0. Use larger values of dblRadius for thicker edges. The smaller dblRadius value is, the faster is this processing .

Parameter Amount can range from 1 to 500. Typical values for photographic images range from 100 to 200. Use bigger values for greater edge contrast.

Parameter Threshold can range from 1 to 500. Typical values for photographic images are between 0 and 20. Use Threshold to apply sharpening only to those areas where contrast changes significantly. Flat areas will remain unchanged. A proper selection of Threshold allows to ehnance edges on the image while leaving insufficient details, such as noise or grain of the photographic film, unchanged.

Parameter colorChannel specifies the channel to which the transform shall be applied. The default value is IG_COLOR_COMP_ALL: apply transform to all color channels of the image. To run UnsharpMask process on the Intensity channel of the image, convert the image to YUV colorspace, run UnsharpMask filter with colorChannel = IG_COLOR_COMP_YUV_Y, and convert back to original colorspace.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

FilterWithUnsharpMask (ByVal pPage As IGPage, ByVal dblRadius As
Double, ByVal Amount As Long, ByVal Threshold As Long, ByVal
colorChannel As enumColorComp)

Parameters:

pPage
Reference to IGPage object to which an unsharp masking filter is applied.
dblRadius
Defines the neighborhood to be considered for each pixel.
Amount
Amount of sharpening, in percents.
Threshold
Minimal difference between a pixel and its neighbors at which the pixel will be modified.
colorChannel
Color channel to which the transform shall be applied.

Return value: N/A

Bits Per Pixel: 8-bit gray level, 9-16-bit gray level, 24, and 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FindSkewAngle

Group: Method

Description:

This method determines the skew angle of a 1-bit document image.

Declaration:

FindSkewAngle (ByVal pPage As IGPage) As Double

Parameters:

pPage
Reference to IGPage object.

Return value:

Returns the found skew angle.

Bits Per Pixel: 1

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


FindTilt

Group: Method

Description:

This method computes the least-squares best fit plane for an image. The plane will be given by formula f(x, y) = SlopeX * x + SlopeY * y + Piston.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

FindTilt(pPage As IGPage, pSlopeX As Double, pSlopeY As Double,
pPiston As Double);

Parameters:

pPage
IGPage object for which to find tilt.
pSlopeX
Returns the slope in the X direction of the tilt plane.
pSlopeY
Returns the slope in the Y direction of the tilt plane.
pPiston
Returns the piston of the tilt plane.

Return Value:

N/A

Bits Per Pixel:

8, 16, or 32bit grayscale images with one channel

Sample:

Image Processing and Effects


FlattenLayers

Group: Method

Description:

This method renders all the visible layers into the raster composition DIB.

This method can be used to flatten the layered page into the raster page. As a result of this method the raster image specified by Page is regenerated from the layer array composition attached to the same image.

Declaration:

Sub FlattenLayers (Page as IGPage)

Parameters:

Page
Layered IGPage whose layers are flattened.

Return Value:

N/A


Flip

Group: Method

Description:

Flips an image either horizontally or vertically. Flipping horizontally exchanges the right-most pixel column of the image bitmap with the left-most. Flipping vertically exchanges the topmost pixel row (raster) of the image bitmap with the bottom-most. The dimensions of the image do not change.

This method also allows you to check and process alpha images associated with the main image. You should set the global control parameter IP.ALPHA_PROCESSING_ENABLE, telling whether this function should check and process associated alpha images. If this parameter is True (default), the function checks HiGear for the presence of associated alpha images and apply the same operation on them. If this parameter is False, only the main HiGear image is processed (backward compatible behavior).

Declaration:

Flip (ByVal pPage As IGPage, ByVal FlipMode As enumFlip)

Parameters:

pPage
Reference to IGPage object.
FlipMode
IG_FLIP_HORIZONTAL or IG_FLIP_VERTICAL, telling whether to flip horizontally or vertically.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GenerateAlpha

Group: Method

Description:

This method creates an alpha channel, based on the data found in pSrcPage and pBackground. The height and width of pBackground must not be less than the height and width of pSrcPage. Here is the formula by which the alpha channel data is calculated (where I2 stands for second image):

A = (I2 - Back) / (abs(I2 - back) - back);

If pBackground is a 1-bit image, you should set ChannelType to IG_ALPHA_CREATE_1. This data will act as overlay data, where the 2 possible values for each bit of overlay data will determine whether the pixel is displayed or is made transparent, so that whatever is in the background will show through.

If pBackground is an 8-bit image, you should set ChannelType to IG_ALPHA_CREATE_8. This will add 8 bits (with 256 possible values) of alpha data for each pixel of pSrcPage.

Declaration:

GenerateAlpha (ByVal pAlphaPage As IGPage, ByVal pSrcPage As
IGPage, ByVal pBackground As IGPage, ByVal ChannelType As
enumIGAlphaChannelType)

Parameters:

pAlphaPage
Reference to IGPage object that stores the newly created alpha channel.
pSrcPage
Reference to IGPage object that stores an image.
pBackground
Reference to IGPage object that stores a background image.
ChannelType
Tells ImageGear what bit depth the alpha channel should have.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GenerateThumbnail

Group: Method

Description:

This method creates a resized copy of the original image. This new image will be NewWidth by NewHeight.

The ResizeMode parameter is used to determine how the new pixels are to be computed from the original one. ResizeMode = IG_INTERPOLATION_NONE specifies that no interpolation is to be used. In this case, only pixel values that occur in the original image will occur in the new image.

Declaration:

GenerateThumbnail (ByVal dstPage As IGPage, ByVal srcPage As
IGPage, ByVal NewWidth As Long, ByVal NewHeight As Long, ByVal
ResizeMode As enumIGResizeModes)

Parameters:

dstPage
Reference to IGPage object that stores the newly created thumbnail image.
srcPage
Reference to IGPage object that stores an image.
NewWidth
Specifies width of the new image.
NewHeight
Specifies height of the new image.
ResizeMode
Specifies interpolation method to use for computing values of the pixels in the new image.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GeomDespeckle

Group: Method

Description:

This method is used to reduce speckle noise from an image by using the Crimmins algorithm. It reduces the speckle index of an image by sending the image through a geometric filter, which uses the complementary hulling technique. The method has the effect of reducing the undesired speckle noise while preserving the edges of the original image.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

GeomDespeckle(pPage As IGPage, nIterations As Long);

Parameters:

pPage
IGPage object to despeckle.
nIterations
Number of iterations to apply the despeckle filter.

Return value:

N/A

Bits Per Pixel:

8 bit grayscale images with one channel

Sample:

Image Processing and Effects


GetHueValue

Group: Method

Description:

This method converts an RGB value to a hue value.

Declaration:

GetHueValue (ByVal pPixel As IGPixel) As Double

Parameters:

pPixel
Reference to 'IGPixel' object that stores an RGB value.

Return value:

Returns the hue angle (0.0 to 360).

Bits Per Pixel: 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ImageChannels

Group: Property

Description:

This property stores image channels for the IGProcessingCtl . CombineImageChannels and IGProcessingCtl . SeparateImageChannels methods.

Property Summary:

Data Type:
IGObjectCollection
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Interpolation

Group: Property

Description:

This property contains interpolation method for the IGProcessingCtl . ResizeImage, IGProcessingCtl . GenerateThumbnail methods.

Property Summary:

Data Type:
enumIGInterpolations
Default Value:
IG_INTERPOLATION_NONE
Access:
Read/Write
Settings:
Any value of enumIGInterpolations
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


InvertContrast

Group: Method

Description:

This method inverts every color to its complement in an image. For black-and-white images, black will become white and white will become black. For grayscale and color images, every red, green, and blue color intensity value will be complemented: 0 will become 255 (and vice versa), 1 will become 254, and so on. Therefore, in a grayscale image, the darkest grays will become the lightest grays, and vice versa; and in a color image, colors near green will complement to colors near magenta (the complement of green), and so on.

If ContrastOptions .Mode = IG_CONTRAST_PIXEL, the inversion is accomplished by inverting all bits of all pixels within lpRect: bits that are 1 become 0, and bits that are 0 become 1. If ContrastOptions .Mode = IG_CONTRAST_PALETTE, the inversion is accomplished by inverting the bits in the image's palette. (The image bitmap is left unchanged.) Note that specifying IG_CONTRAST_PALETTE inverts the entire image, ignoring any rectangle specified. Note also that for 8-bit indexed color (8i) images, inverting the pixel will produce an error; only IG_CONTRAST_PALETTE makes sense.

If the image is 24-bit, only the pixel bits can be complemented (since there is no palette), so in this case ContrastOptions .Mode is ignored.

In photographic terms, this function produces the "negative" of the image.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

InvertContrast (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object to which the contrast inverting is applied.

Return value: N/A

Bits Per Pixel:

    • IG_CONTRAST_PIXEL: 8-bit gray level, 9-16-bit gray level, 24, 32
    • IG_CONTRAST_PALETTE: 4, 8

Sample: Image Processing and Effects.

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


LUT

Group: Property

Description:

This property contains Look Up Table for the IGProcessingCtl . BlendWithLUT, IGProcessingCtl . TransformWithLUT methods.

Property Summary:

Data Type:
IGPixelArray
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Merge

Group: Method

Description:

This method is used to "place" or merge one image into another. The images do not have to be the same size but do have to be the same bit depth. srcPage is drawn into dstPage. The top left corner of dstPage will be placed at dstLeft, dstTop of dstPage. Any over-hanging pixels of srcPage will be clipped, automatically.

This method takes into account the ROI settings of srcPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

Merge (ByVal dstPage As IGPage, ByVal srcPage As IGPage, ByVal
dstLeft As Long, ByVal dstTop As Long, ByVal Mode As
enumIGMergeModes)

Parameters:

dstPage
Reference to IGPage object.
srcPage
Reference to IGPage object to be merged into dstPage; must have same bit depth as dstPage.
dstLeft
The X coordinate within the destination image at which to place the upper - left corner of the source image.
dstTop
The Y coordinate within the destination image at which to place the upper - left corner of the source image.
Mode
Specifies what type of arithmetic operation (merge method) to perform on all pixels of dstPage that have been intersected with pixels from srcPage.

Return value: N/A

Bits Per Pixel: 1, 8-bit gray level, 24

Sample: Image Processing and Effects.

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Open

Group: Method

Description:

This method applies opening effect to provided raster page using the specified structure element. This method is applicable to any grayscale image (image with [Gy] color space).

Declaration:

Sub Open(pPage As IGPage, Matrix As IGMatrix)

Parameters:

pPage
IGPage raster page to apply effect to.
Matrix
IGMatrix specifying a structuring element for the operation.

Return Value:

N/A

Bits Per Pixel:

1-bit and 8-bit grayscale

Sample: Image Processing and Effects.

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Perspective

Group: Method

Description:

This method provides a perspective-like effect by image corners transformation.

Declaration:

Sub Perspective(pPage As IGPage, X1 As Long, Y1 As Long, X2 As
Long, Y2 As Long, X3 As Long, Y3 As Long, X4 As Long, Y4 As
Long, UseFillColor As Boolean)

Parameters:

pPage
Reference to IGPage object to which the effect is applied.
X1
X coordinate of left top corner
Y1
Y coordinate of left top corner
X2
X coordinate of right top corner
Y2
Y coordinate of right top corner
X3
X coordinate of left bottom corner
Y3
Y coordinate of left bottom corner
X4
X coordinate of right bottom corner
Y4
Y coordinate of right bottom corner
UseFillColor
If TRUE, use fill color; otherwise do not

Return Value:

N/A

Bits Per Pixel:

All except bitonal.

Sample:

See Also:

IGPage


Promote

Group: Method

Description:

This method promotes a 1, 4, or 8-bit image to 24 bits or 32 bits, or a 1 or 4-bit image to 8 bits, or a 1-bit image to 4 bits.

The width and height of the image are not changed. Only the number of Bits Per Pixel are increased. Colors are not changed. The same color is used for each new pixel as was used in the original.

When promoting to 24-bit, levels of gray and white may appear to be slightly colored when displayed. This is due to using a common 8-bit palette to display a 24-bit color image. The actual 24-bit pixel values are correct.

Declaration:

Promote (ByVal pPage As IGPage, ByVal promMode As
enumIGPromotionModes)

Parameters:

pPage
Reference to IGPage object.
promMode
Specifies the promote mode.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 32

Sample: Image Processing and Effects.

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PseudoColorLimitsOptions

Group: Property

Description:

This property contains options for the IGProcessingCtl . PseudoColorWithLimits method.

Property Summary:

Data Type:
IGPseudoColorLimitsOptions
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


PseudoColorWithLimits

Group: Method

Description:

This method colors all pixels in an 8-bit gray level image whose values are outside the range PseudoColorLimitsOptions . MinIndex to PseudoColorLimitsOptions . MaxIndex. Those above the range receive the color pointed to by PseudoColorLimitsOptions . FillColorMax, and those below the range receive the color pointed to by PseudoColorLimitsOptions . FillColorMin. This method can be used to see how much of the image is saturated or unsaturated.

Declaration:

PseudoColorWithLimits (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object.

Return value: N/A

Bits Per Pixel: 8-bit gray level

Sample: Image Processing and Effects.

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PseudoColorWithSmallGrads

Group: Method

Description:

This method colors an 8-bit gray level image such that small gradients are exposed. The greater the value of Slope, the faster the color will change for a given rate of change of the pixel value.

Declaration:

PseudoColorWithSmallGrads (ByVal pPage As IGPage, ByVal Slope As
Long)

Parameters:

pPage
Reference to IGPage object.
Slope
A number from 1 to 255. Higher values increase colors faster.

Return value: N/A

Bits Per Pixel: 8-bit gray level

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceToBitonal

Group: Method

Description:

This method reduces an image from 24, 8, or 4 bpp to 1 bpp. Set Mode to specify how to get the threshold value. If you set Mode to IG_REDUCE_BITONAL_WEIGHTED, you may also set the values of Weight1, Weight2, and Weight3. These "weights" are used to determine how much influence the values of the red, green, or blue pixels will have on the reduction. For example, if Weight1 (red) = 255, Weight2 (green) = 0, Weight3 (blue) = 0, the whole reduction will depend on the value of the red pixels. The green and blue pixel values will have "no weight."

IG_REDUCE_BITONAL_GRAYSCALE gives the most weight to the value of green. This optimizes for the perception of the human eye, in which blue is the hardest color to see, and therefore requires the least weight.

IG_REDUCE_BITONAL_AVE gives equal weight to all three pixel values.

Here are the formulas used by the three different reduction methods:

IG_REDUCE_BITONAL_GRAYSCALE: value = (red*77 + green*151 + blue*28)/256;

IG_REDUCE_BITONAL_AVE: value = (red + green + blue)/3;

IG_REDUCE_BITONAL_WEIGHTED: value = (red*w1 + green*w2 + blue*w3)/(w1 + w2 + w3);

Use the Threshold argument to set the threshold value for converting pixels to black or white. If the value, as calculated by one of the above reduction methods, is less than Threshold, the pixels will be set to black; if it is greater or equal to Threshold, the pixels will be set to white.

Declaration:

ReduceToBitonal (ByVal pPage As IGPage, ByVal Mode As
enumIGBitonalReductModes, ByVal Threshold As Long, ByVal Weight1
As Long, ByVal Weight2 As Long, ByVal Weight3 As Long)

Parameters:

pPage
Reference to IGPage object.
Mode
Specifies what type of reduction to perform.
Threshold
An integer value that specifies what pixel values will be changed to black, and which pixel values will be changed to white. Pixels with values greater than Threshold will be changed to white, and pixels that have values less than Threshold will be changed to black.
Weight1
These values are only used if Mode is set to IG_REDUCE_BITONAL_WEIGHTED. The range of values is 0 - 255. The default values are 255.
Weight2
The range of values is 0 - 255. The default values are 255.
Weight3
The range of values is 0 - 255. The default values are 255.

Return value: N/A

Bits Per Pixel: 4, 8, 24-bit input images; 1-bit output images

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithBayer

Group: Method

Description:

This method reduces an image to a fewer number of Bits Per Pixel, using a Bayer dithering algorithm. The target bit depth is specified by argument destDepth. In general, a color image will be reduced to a fewer number of colors, and a grayscale image will be reduced to a fewer number of shades of gray. Note that setting destDepth = 1 will reduce the image to monochrome or black-and-white.

The input number of Bits Per Pixel must be greater than destDepth, or an error will result.

Declaration:

ReduceWithBayer (ByVal pPage As IGPage, ByVal destDepth As Long)

Parameters:

pPage
Reference to IGPage object.
destDepth
Number of bits per pixel after reduction (4 or 1).

Return value: N/A

Bits Per Pixel: input: 4, 8-bit gray level, 8i, 9-16-bit gray level, 24; output: 4 or 1-bit

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithDiffuse

Group: Method

Description:

This method reduces an image to a fewer number of Bits Per Pixel. The target bit depth is specified by argument destDepth. In general, a color image will be reduced to a fewer number of colors, and a grayscale image will be reduced to a fewer number of shades of gray. Note that setting destDepth = 1 will reduce the image to monochrome or black-and-white.

Threshold sets a threshold value for the target image. Threshold = 128 means that black and white in the target image will be in equal proportion. Threshold greater than 128 would mean more bright than dark, Threshold less than 128 would mean more dark than bright.

The input number of Bits Per Pixel must be greater than destDepth, or an error will result.

Declaration:

ReduceWithDiffuse (ByVal pPage As IGPage, ByVal destDepth As
Long, ByVal Threshold As Long)

Parameters:

pPage
Reference to IGPage object.
destDepth
Number of bits per pixel after reduction (4 or 1).
Threshold
Threshold value for dithering, 0 to 255.

Return value: N/A

Bits Per Pixel:

    • input: 4, 8-bit gray level, 8i, 9-16-bit gray level, 24;
    • output: 1 or 4-bit

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithHalftone

Group: Method

Description:

This method reduces a color or grayscale image to a 1 bit per pixel image suitable for use in half-toning. The resulting image will consist of small squares of varying sizes that will give the appearance of varying shades of gray.

Declaration:

ReduceWithHalftone (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object.

Return value: N/A

Bits Per Pixel:

    • input: 4, 8, 24-bit;
    • output: 1-bit

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithMedianCut

Group: Method

Description:

This method reduces an image by dividing it into maxColors equal-sized squares. The colors of the pixels in each square will be averaged to produce a resulting color. The resulting image will contain only these colors.

Declaration:

ReduceWithMedianCut (ByVal pPage As IGPage, ByVal fastRemap As
Boolean, ByVal maxColors As Long)

Parameters:

pPage
Reference to IGPage object.
fastRemap
Set to True for reduction algorithm optimized for speed. Set to False for algorithm optimized for quality.
maxColors
The maximum number of colors (that is, maximum number of unique pixel values) you want in the resulting image. Must be 16 to 256.

Return value: N/A

Bits Per Pixel:

    • input: 24-bit;
    • output: 8-bit

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithOctree

Group: Method

Description:

This method reduces a 24-bit or 8-bit image to an 8-bit or 4-bit image, having the number of colors specified by maxColors. If you set paletteSize > 0 and supply an address to lpPalette, ImageGear will use your palette. If you set maxColors > 16, then an 8-bit image will always result. Setting maxColors <=16 will result in a 4-bit image. You may not specify less than 8 colors.

The table below demonstrates some sample cases of 8 and 24-bit images being reduced, using the setting of maxColors (middle column). The right-most column shows the number of Bits Per Pixel that the resulting image will have.

Bpp of original image
Number of resulting colors
Bpp of reduced image
24
17-256
8
24
8-16
4
24
16
4
8
17-256
8
8
8-16
4
8
16
*

* Not possible, nMaxColors will be changed to 8.

Declaration:

ReduceWithOctree (ByVal pPage As IGPage, ByVal fastRemap As
Boolean, ByVal maxColors As Long)

Parameters:

pPage
Reference to IGPage object.
fastRemap
Set to True for reduction algorithm optimized for speed. Set to False for algorithm optimized for quality.
maxColors
The maximum number of colors (that is, maximum number of unique pixel values) you want in the resulting image. If you set this to > 16, the resulting image will be an 8-bit. Valid values are 8 - 256. If you pass in a value out of this range, ImageGear will set the value to either 8 or 256.

Return value: N/A

Bits Per Pixel:

    • Input image: 8 or 24;
    • Output image: 4 or 8 bits

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReduceWithPopularity

Group: Method

Description:

This method reduces a 24-bit image to an 8-bit image while retaining its most popular, or prevalent, colors.

Declaration:

ReduceWithPopularity (ByVal pPage As IGPage, ByVal fastRemap As
Boolean, ByVal maxColors As Long)

Parameters:

pPage
Reference to IGPage object.
fastRemap
Set to True for reduction algorithm optimized for speed. Set to False for algorithm optimized for quality.
maxColors
Number of colors to reduce to.

Return value: N/A

Bits Per Pixel:

    • Input: 24-bit;
    • Output: 8i

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ReductionPalette

Group: Property

Description:

This property contains a color palette for the IGProcessingCtl . ReduceWithOctree method.

Property Summary:

Data Type:
IGPalette
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


RemoveRedeye

Group: Method

Description:

Processes the RGB pixel using red-eye removal algorithm.

Declaration:

Sub RemoveRedeye(Page As IGPage, Threshold As Double, Brightness
As Double)

Parameters:

Page
Reference to IGPage object to which the effect is applied.
Threshold
A value in the range 0.5..2 that specifies a part of the red component in the pixel color.
Brightness
Brightness of the pixel after processing. The range is -1...1.

Return Value:

N/A

Bits Per Pixel:

RGB and CMYK images of any bit depth.

Sample:

Image Processing and Effects

See Also:

IGPage


RemoveTilt

Group: Method

Description:

This method computes the best-fit plane for an image, and then subtracts that plane from the image to produce the output. This is very handy for correcting illumination gradients in a poorly digitized image.

If removeMean argument is set to TRUE, then global mean is removed from the image as well.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

RemoveTilt(pPage As IGPage, removeMean As Boolean);

Parameters:

pPage
IGPage object to remove tilt.
removeMean
Remove the mean from the detilted image, giving it zero-mean statistics.

Return value:

N/A

Bits Per Pixel:

8, 16, or 32bit grayscale images with one channel

Sample:

Image Processing and Effects


ResizeCanvas

Group: Method

Description:

This function changes the dimensions of the image referenced by IGPage. The image data in the bitmap is not stretched or compressed, but copied to the specified offset in the new image.

Declaration:

Sub ResizeCanvas(pPage As IGPage, NewWidth As Long, NewHeight As
Long, XPos As Long, YPos As Long, ResizeMode As
enumIGResizeModes)

Parameters:

Page
IGPage image to resize.
NewWidth
Width of the image after resize.
NewHeight
Height of the image after resize.
XPos
X offset at which to put left top corner of the image after resize.
YPos
Y offset at which to put left top corner of the image after resize.
ResizeMode
Specifies whether new dimensions are actual dimensions or percentages.

Return Value:

N/A

Bits Per Pixel:

All

Sample:

Image Processing and Effects


ResizeImage

Group: Method

Description:

This method changes the dimensions of an image, by changing the dimensions of the DIB image bitmap. The image data in the bitmap will be stretched or compressed as necessary, to fit the new dimensions. Use NewWidth and NewHeight to specify the new dimensions.

During re-sizing, new pixel values which previously did not exist in the image, may be introduced due to interpolation. If you want to prevent this, such as to preserve the original number of palette entries used, then set the IGProcessingCtl . Interpolation property to IG_INTERPOLATION_NONE. In this case, only pixel values that occur in the original image will result in the resized image.

If you try to apply some interpolation methods to a 4-bit image, you will receive the error IGE_PROC_INVAL_FOR_BIT_COUNT. If you try to apply some interpolation methods to an 8-bit indexed image you will receive this same error and also IGE_PROC_INVAL_FOR_8BIT_INDEXED.

This method also allows you to check and process alpha images associated with the main image. You should set the global control parameter IP.ALPHA_PROCESSING_ENABLE, telling whether this function should check and process associated alpha images. If this parameter is True (default), the function checks HiGear for the presence of associated alpha images and apply the same operation on them. If this parameter is False, only the main HiGear image is processed (backward compatible behavior).

Declaration:

ResizeImage (ByVal pPage As IGPage, ByVal NewWidth As Long,
ByVal  NewHeight As Long, ByVal ResizeMode As enumIGResizeModes)

Parameters:

pPage
Reference to IGPage object.
NewWidth
Width of the resized image.
NewHeight
Height of the resized image.
ResizeMode
Specifies whether new dimensions are actual dimensions or percentages.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 24, 9-16-bit gray level, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


ResizeOptions

Group: Property

Description:

This property contains options for the IGProcessingCtl . ResizeImage, IGProcessingCtl . GenerateThumbnail methods.

Property Summary:

Data Type:
IGResizeOptions
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Rotate

Group: Method

Description:

This method rotates an image about its center through the angle indicated by Angle. (Angle must be expressed in degrees, such as 45.0 to rotate 45 degrees.) RotateMode is examined to determined whether to clip the image or resize the bitmap. Set the IGProcessingCtl . BackColor property to the color that you would like to display in the background that was previously covered by the image before it was rotated.

This method also allows you to check and process alpha images associated with the main image. You should set the global control parameter IP.ALPHA_PROCESSING_ENABLE, telling whether this function should check and process associated alpha images. If this parameter is True (default), the function checks HiGear for the presence of associated alpha images and apply the same operation on them. If this parameter is False, only the main HiGear image is processed (backward compatible behavior).

Declaration:

Rotate (ByVal pPage As IGPage, ByVal Angle As Double, ByVal
RotationMode As enumIGRotationModes)

Parameters:

pPage
Reference to IGPage object.
Angle
Set to a positive or negative value for angle of rotation.
RotationMode
The value can be either:
  • IG_ROTATE_CLIP - clip the rotated image to keep the image bitmap the same size or
  • IG_ROTATE_EXPAND - expand the size of the bitmap if necessary to retain the entire rotated image.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Rotate90k

Group: Method

Description:

This method rotates an image clockwise about its center. The rotation must be a multiple of 90 degrees. If the rotation is either 90 or 270 degrees, the previous width of the image becomes the new height, and the previous height of the image becomes the new width. IG_ROTATE_0 does nothing and is included for completeness only.

This method also allows you to check and process alpha images associated with the main image. You should set the global control parameter IP.ALPHA_PROCESSING_ENABLE, telling whether this function should check and process associated alpha images. If this parameter is True (default), the function checks HiGear for the presence of associated alpha images and apply the same operation on them. If this parameter is False, only the main HiGear image is processed (backward compatible behavior).

Declaration:

Rotate90k (ByVal pPage As IGPage, ByVal RotationValue As
enumIGRotationValues)

Parameters:

pPage
Reference to IGPage object.
RotationValue
One of IG_ROTATE_0, IG_ROTATE_90, IG_ROTATE_180, or IG_ROTATE_270.

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


RotateEx

Group: Method

Description:

This method rotates an image about its center through the angle indicated by Angle. (Angle must be expressed in degrees, such as 45.0 to rotate 45 degrees.) RotateMode is examined to determined whether to clip the image or resize the bitmap. Set the IGProcessingCtl . BackColor property to the color that you would like to display in the background that was previously covered by the image before it was rotated. The Interpolation parameter controls what type of interpolation, if any, is used for rotation.

This method also allows you to check and process alpha images associated with the main image. You should set the global control parameter IP.ALPHA_PROCESSING_ENABLE, telling whether this function should check and process associated alpha images. If this parameter is True (default), the function checks HiGear for the presence of associated alpha images and apply the same operation on them. If this parameter is False, only the main HiGear image is processed (backward compatible behavior).

For highest quality, bilinear interpolation is recommended, especially if the rotation angle is small (less than 5 degrees) and/or the image will be rotated multiple times (not recommended). Bicubic interpolation can be used to achieve a slightly sharper appearance.

Declaration:

RotateEx (ByVal pPage As IGPage, ByVal Angle As Double, ByVal
RotationMode As enumIGRotationModes, ByVal Interpolation As
enumIGInterpolations)

Parameters:

pPage
Reference to IGPage object.
Angle
Set to a positive or negative value for angle of rotation.
RotationMode
The value can be either:
  • IG_ROTATE_CLIP - clip the rotated image to keep the image bitmap the same size or
  • IG_ROTATE_EXPAND - expand the size of the bitmap if necessary to retain the entire rotated image.
Interpolation
The value can be:
  • IG_INTERPOLATION_NONE - don't use interpolation
  • IG_INTERPOLATION_BILINEAR - use bilinear interpolation
  • IG_INTERPOLATION_BICUBIC - use bicubic interpolation

Return value: N/A

Bits Per Pixel: 1, 4, 8, 9-16-bit gray level, 24, 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SeparateImageChannels

Group: Method

Description:

This method is the reverse of IGProcessingCtl . CombineImageChannels. See the description of that method. Each of the output images created by this function is grayscale. That is, each has a grayscale palette. The pixel values are those obtained from the input 24-bit or 32-bit image. The result of this method is placed to the IGProcessingCtl . ImageChannels property.

Declaration:

SeparateImageChannels (ByVal pPage As IGPage, ByVal
dstColorSpace As enumIGColorSpaces)

Parameters:

pPage
Reference to IGPage object.
dstColorSpace
A constant such as IG_COLOR_SPACE_RGB or IG_COLOR_SPACE_CMYK describing how the individual channels are to be separated or extracted.

Return value: N/A

Bits Per Pixel:

    • Input: 24, 32;
    • Output: 8-bit gray level

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Sharpen

Group: Method

Description:

This method causes the dark side of a contrast edge to become darker and the light side lighter. Areas without contrast are not altered. Factor should be in the range 1 to 5. The higher the value, the more sharpening will be applied.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

Sharpen (ByVal pPage As IGPage, ByVal Factor As Long)

Parameters:

pPage
Reference to IGPage object.
Factor
Factor indicating the degree for increasing image sharpness. Valid range is 1 to 5.

Return value: N/A

Bits Per Pixel: 8-bit gray level, 9-16-bit gray level, 24, and 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


Smooth

Group: Method

Description:

This method makes an image look softer and slightly out of focus. This can be used to reduce the graininess of an image. Factor can range from 1 to 4. Larger values will cause greater softening.

The pixel neighborhood considered by this function is 3x3, 5x5, 7x7, or 9x9 for Factor = 1, 2, 3, or 4 respectively. Therefore a smaller value is faster. Factor = 1 or 2 is recommended.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage . ROI property. By default ROI is set to the entire image.

Declaration:

Smooth (ByVal pPage As IGPage, ByVal Factor As Long)

Parameters:

pPage
Reference to IGPage object.
Factor
Factor indicating degree of decrease to sharpness or increase to smoothness wanted. Valid range is 1 to 4.

Return value: N/A

Bits Per Pixel: 8-bit gray level, 9-16-bit gray level, 24, and 32

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


StretchContrast

Group: Method

Description:

This method automatically adjusts the contrast of an image so that at least one pixel is completely black and one pixel is completely white. This fills the entire range of the pixel intensities. The original pixel intensities are adjusted linearly between the 2 extremes. (If the image already fills the entire range then the image is not altered.)

Images that use the entire range often appear richer and the colors display more vivid.

Declaration:

StretchContrast (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object to which the contrast adjustment is applied.

Return value: N/A

Bits Per Pixel:

    • IG_CONTRAST_PIXEL: 8-bit gray level, 9-16-bit gray level, 24, 32
    • IG_CONTRAST_PALETTE: 8-bit gray level

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SwapBytes16Gray

Group: Method

Description:

This method swaps the 2 bytes of each 16-bit pixel in the image. It can be used to help fix poorly constructed images which have the high and low bytes of each 16-bit grayscale pixel reversed. All pixels in the image are transformed.

Declaration:

SwapBytes16Gray (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object.

Return value: N/A

Bits Per Pixel: 9-16g

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SwapRedAndBlue

Group: Method

Description:

This method reverses the color sequence in the pixels of an image. If the sequence is Blue-Green-Red (the standard sequence for a DIB), it is reversed to Red-Green-Blue. If Red-Green-Blue, each pixel is reversed to Blue-Green-Red. Calling this function is meaningful only for a 24-bit image.

Declaration:

SwapRedAndBlue (ByVal pPage As IGPage)

Parameters:

pPage
Reference to IGPage object.

Return value: N/A

Bits Per Pixel: 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TabulateHistogram

Group: Method

Description:

This method produces a histogram of the pixel values occurring in an image.

If segmIncr = 1, each pixel in the image is examined. The bin corresponding to that pixel value increments. The number of bins must be large enough to hold the entire histogram. If an 8 or 24-bit image, the number of bins must be 256. If a 4-bit or 1-bit image, the number of bins must be 16 or 2 respectively. Note that for a 24-bit image, only a single color channel can be a histogram at one time. Use argument colorChannel to select the channel.

If segmIncr is greater than 1, then rasters of the image are skipped. This can be used to speed up the tabulation when the image is large.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

TabulateHistogram (ByVal pPage As IGPage, ByVal binCount As
Long, ByVal segmIncr As Long, ByVal colorChannel As
enumIGColorChannels) As IGIntegerArray

Parameters:

pPage
Reference to IGPage object.
binCount
Number of bins.
segmIncr
Set = 1 to sample every pixel. Values larger than 1 will skip rasters of the image bitmap.
colorChannel
For 24 bit images selects which channel: IG_COLOR_COMP_R, _G, or _B (IG_COLOR_COMP_RGB not allowed).

Return value:

An integer array that cantains the resulting histogram.

Bits Per Pixel: 1, 4, 8, 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TransformWithLUT

Group: Method

Description:

This method transforms the pixel values of an image using a LUT. The pixels from pPage are used as indices into the LUT. The entry in the LUT at this position is placed into the new image. For 24-bit images, the three channels each have their own LUT.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

TransformWithLUT (ByVal pPage As IGPage, ByVal colorChannel As
enumIGColorChannels)

Parameters:

pPage
Reference to IGPage object.
colorChannel
Specifies which color channel to use, or to use all three.

Return value:

An integer array that cantains the resulting histogram.

Bits Per Pixel: 8-bit gray level, 24

Sample: Image Processing and Effects

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TransformWithLUTs

Group: Method

Description:

Transforms the pixel values of the IGPage, using an array of look up tables. The pixels from IGPage are used as indices into the LUTs. The entry in the LUT at this position is placed into the corresponding channel of the new image.

Number of LUTs must correspond to the number of channels in the image. Input depths of all LUTs must be equal to corresponding channel depths of the image. Channel depths of result image will be equal to output depths of the corresponding LUTs.

This method takes into account the ROI settings of pPage object, that are accessible via the IGPage.ROI property. By default ROI is set to the entire image.

Declaration:

TransformWithLUTs(
   ByVal pPage As IGPage,
   LUTs as IGDataArray
);

Parameters:

pPage
Reference to IGPage object
LUTs
IGDataArray containing elements of type IGLUT

See Also:

IGPage

IGDataArray


IGPseudoColorLimitsOptions

Group: Object

Description:

This object contains options for the IGProcessingCtl . PseudoColorWithLimits method.

Interface:

IIGPseudoColorLimitsOptions

Class Members:

FillColorMax
property
Specifies the color to apply to all pixels above the MaxIndex value.
FillColorMin
property
Specifies the color to apply to all pixels below the MinIndex value.
MaxIndex
property
All pixels above this value are colored.
MinIndex
property
All pixels below this value are colored.


FillColorMax

Group: Property

Description:

Specifies the color to apply to all pixels above the MaxIndex value.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


FillColorMin

Group: Property

Description:

Specifies the color to apply to all pixels below the MinIndex value.

Property Summary:

Data Type:
IGPixel
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


MaxIndex

Group: Property

Description:

All pixels above this value are colored.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0..255
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


MinIndex

Group: Property

Description:

All pixels below this value are colored.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0..255
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


IGResizeOptions

Group: Object

Description:

This property contains options for the IGProcessingCtl . ResizeImage, IGProcessingCtl . GenerateThumbnail methods.

Interface:

IIGResizeOptions

Class Members:

PreserveBW
property
Specifies the value for IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_PRESERVE_WHITE or IG_INTERPOLATION_PRESERVE_BLACK.
ScaleToGray
property
Specifies the value for IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_GRAYSCALE.


PreserveBW

Group: Property

Description:

Specifies the value for IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_PRESERVE_WHITE or IG_INTERPOLATION_PRESERVE_BLACK.

Property Summary:

Data Type:
IGResizePreserveBWOptions
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


ScaleToGray

Group: Property

Description:

Specifies the value for IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_GRAYSCALE.

Property Summary:

Data Type:
IGResizeScaleToGrayOptions
Default Value:
N/A
Access:
Read only
Settings:
Any
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


IGResizePreserveBWOptions

Group: Object

Description:

This object contains value for the IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_PRESERVE_WHITE or IG_INTERPOLATION_PRESERVE_BLACK.

Interface:

IIGResizePreserveBWOptions

Class Members:

Threshold
property
Contains value for the IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_PRESERVE_WHITE or IG_INTERPOLATION_PRESERVE_BLACK.


Threshold

Group: Property

Description:

This property value for the IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_PRESERVE_WHITE or IG_INTERPOLATION_PRESERVE_BLACK.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0..100
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


IGResizeScaleToGrayOptions

Group: Object

Description:

This object contains value for the IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_GRAYSCALE.

Interface:

IIGResizeScaleToGrayOptions

Class Members:

Threshold
property
Contains value for the IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_GRAYSCALE.


Threshold

Group: Property

Description:

This property value for the IGProcessingCtl . Interpolation property equal IG_INTERPOLATION_GRAYSCALE.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
0..100
Bits Per Pixel:
N/A
Sample:
Image Processing and Effects


Processing Component Enumerations

This section represents an alphabetized reference of enumerations defined in ImageGear Processing component:

    • enumIGAlphaChannelType
    • enumIGBitonalReductModes
    • enumIGBlendModes
    • enumIGContrastModes
    • enumIGConvolutionResults
    • enumIGEdgeDetectionMethods
    • enumIGEdgeMapMethods
    • enumIGFlipModes
    • enumIGFrameModes
    • enumIGIllumninant
    • enumIGInterpolations
    • enumIGPromotionModes
    • enumIGResizeModes
    • enumIGRotationModes
    • enumIGRotationValues
    • enumIGWhiteBalancePreset


enumIGAlphaChannelType

Group: Enumeration

Description:

This enumeration specifies what bit depth an alpha channel should have.

Values:

IG_ALPHA_CREATE_1
1 Bit
IG_ALPHA_CREATE_8
8 Bits


enumIGBitonalReductModes

Group: Enumeration

Description:

This enumeration specifies types of bitonal color reduction.

Values:

IG_REDUCE_BITONAL_GRAYSCALE
Grayscale
IG_REDUCE_BITONAL_AVE
AVE
IG_REDUCE_BITONAL_WEIGHTED
Weighted


enumIGBlendModes

Group: Enumeration

Description:

This enumeration specifies types of blending of two images.

Values:

IG_BLEND_OVER
Blend the first image over the second image
IG_BLEND_IN
Blend the first image into the second image
IG_BLEND_HELD_OUT
The first image is held out by the second image
IG_BLEND_LINEAR
The first and second images are combined in a linear fashion


enumIGContrastModes

Group: Enumeration

Description:

This enumeration specifies types of contrast adjustment.

Values:

IG_CONTRAST_PALETTE
Altering image palette
IG_CONTRAST_PIXEL
Altering image pixels


enumIGConvolutionResults

Group: Enumeration

Description:

This enumeration specifies types of convolution result.

Values:

IG_CONV_RESULT_RAW
The result is stored as is
IG_CONV_RESULT_ABS
The absolute value of the signed result is stored
IG_CONV_RESULT_8BIT_SIGNED
The result is stored as 8-bit signed values
IG_CONV_RESULT_SIGN_CENTERED
The result is stored as 8-bit signed, but 0 is equal to 0x7F. Positive numbers are from 0x7E to 0x00. Negative numbers are from 0x80 to 0xFF. This is used for images that are to be used as background tiles or watermarks.


enumIGEdgeDetectionMethods

Group: Enumeration

Description:

These constants define the edge detection methods available.

Values:

IG_EDGE_DETECTION_MAXGRADIENT
Edge detection using the maxima of gradient, i.e., maxima of the first order derivative.
IG_EDGE_DETECTION_ZEROXC_DERIV2ND
Edge detection using the zero-crossings of second order derivative along the gradient.
IG_EDGE_DETECTION_DIFF_RECURSIVE
Edge detection using an optimal difference recursive filter.


enumIGEdgeMapMethods

Group: Enumeration

Description:

This enumeration specifies types of edge map operation.

Values:

IG_EDGE_OP_PREWITT
Prewitt
IG_EDGE_OP_ROBERTS
Roberts
IG_EDGE_OP_SOBEL
Sobel
IG_EDGE_OP_LAPLACIAN
Laplacian
IG_EDGE_OP_LOG
Laplacian of Gaussian
IG_EDGE_OP_HORIZONTAL
Horizontal
IG_EDGE_OP_VERTICAL
Vertical
IG_EDGE_OP_DIAG_POS_45
Diagonal positive
IG_EDGE_OP_DIAG_NEG_45
Diagonal negative


enumIGFlipModes

Group: Enumeration

Description:

This enumeration specifies types of flipping.

Values:

IG_FLIP_HORIZONTAL
Flipping horizontally
IG_FLIP_VERTICAL
Flipping vertically


enumIGFrameModes

Group: Enumeration

Description:

This enumeration specifies modes of drawing of a frame.

Values:

IG_DRAW_FRAME_EXPAND
The width and the height of an image are expanded by 2 times the width of the frame.
IG_DRAW_FRAME_OVERWRITE
All four sides of an image are overwritten by the frame.


enumIGIllumninant

Group: Enumeration

Description:

This enumeration lists standard illuminants.

Values:

IG_ILLUMINANT_UNKNOWN
0
Unknown illuminant
IG_ILLUMINANT_DAYLIGHT
1
Daylight illuminant
IG_ILLUMINANT_FLUORESCENT
2
Fluorescent illuminant
IG_ILLUMINANT_TUNGSTEN
3
Tungsten illuminant
IG_ILLUMINANT_FLASH
4
Flash illuminant
IG_ILLUMINANT_FINE_WEATHER
9
FineWeather illuminant
IG_ILLUMINANT_CLOUDY_WEATHER
10
CloudyWeather illuminant
IG_ILLUMINANT_SHADE
11
Shade illuminant
IG_ILLUMINANT_DAYLIGHT_FLUORESCENT
12
DaylightFluorescent illuminant
IG_ILLUMINANT_DAY_WHITE_FLUORESCENT
13
DayWhiteFluorescent illuminant
IG_ILLUMINANT_COOL_WHITE_FLUORESCENT
14
CoolWhiteFluorescent illuminant
IG_ILLUMINANT_WHITE_FLUORESCENT
15
WhiteFluorescent illuminant
IG_ILLUMINANT_STANDARD_A
17
StandardA illuminant
IG_ILLUMINANT_STANDARD_B
18
StandardB illuminant
IG_ILLUMINANT_STANDARD_C
19
StandardC illuminant
IG_ILLUMINANT_D55
20
D55 illuminant
IG_ILLUMINANT_D65
21
D65 illuminant
IG_ILLUMINANT_D75
22
D75 illuminant
IG_ILLUMINANT_D50
23
D50 illuminant
IG_ILLUMINANT_ISO_STUDIO_TUNGSTEN
24
ISOStudioTungsten illuminant
IG_ILLUMINANT_OTHER
255
Other illuminant


enumIGInterpolations

Group: Enumeration

Description:

This enumeration specifies types of interpolation.

Values:

IG_INTERPOLATION_NONE
Preserve the original number of palette entries
IG_INTERPOLATION_AVERAGE
Average
IG_INTERPOLATION_BILINEAR
Bilinear
IG_INTERPOLATION_NEAREST_NEIGHBOR
Nearest neighbor
IG_INTERPOLATION_PADDING
Padding
IG_INTERPOLATION_GRAYSCALE
Grayscale
IG_INTERPOLATION_PRESERVE_WHITE
Preserve white
IG_INTERPOLATION_PRESERVE_BLACK
Preserve black
IG_INTERPOLATION_BICUBIC
Bicubic


enumIGPromotionModes

Group: Enumeration

Description:

This enumeration specifies modes of color promotion.

Values:

IG_PROMOTE_TO_4
Promotion to 4 bpp
IG_PROMOTE_TO_8
Promotion to 8 bpp
IG_PROMOTE_TO_24
Promotion to 24 bpp
IG_PROMOTE_TO_32
Promotion to 32 bpp


enumIGResizeModes

Group: Enumeration

Description:

This enumeration specifies modes of image resizing.

Values:

IG_RESIZE_ACTUAL
New image dimensions are actual dimensions.
IG_RESIZE_PERCENT
New image dimensions are percentages.


enumIGRotationModes

Group: Enumeration

Description:

This enumeration specifies modes of image rotation.

Values:

IG_ROTATE_CLIP
Clip the rotated image to keep the image bitmap the same size.
IG_ROTATE_EXPAND
Expand the size of the bitmap if necessary to retain the entire rotated image.


enumIGRotationValues

Group: Enumeration

Description:

This enumeration specifies angles of image rotation by a multiple of 90 degrees.

Values:

IG_ROTATE_0
No rotation
IG_ROTATE_90
Rotation by 90 degrees.
IG_ROTATE_180
Rotation by 180 degrees.
IG_ROTATE_270
Rotation by 270 degrees.


enumIGWhiteBalancePreset

Group: Enumeration

Description:

This enumeration lists constants for preset white balance values.

Values:

IG_WB_DAYLIGHT
Daylight balance
IG_WB_CLOUDY
Cloudy balance
IG_WB_SHADE
Shade balance
IG_WB_TUNGSTEN
Tungsten balance
IG_WB_FLUORESCENT
Fluorescent balance
IG_WB_FLASH
Flash balance


ImageGear Recognition Component API Reference

ImageGear Recognition Component API Reference

The ImageGear Recognition component is a set of objects that provide access to ScanSoft's document recognition technology. It exposes the following objects:

IGRecBarcodeInfo
Provides information about a specific one-dimensional bar code type.
IGRecCharacter
Provides information about an individual recognized character
IGRecCharSetManager
Provides access to character set and language settings of the document
IGRecCheckWordParams
Contains parameters used by the CheckWord event
IGRecCodePage
Provides information about a supported Code Page.
IGRecCtl
The main control that provides access to recognition objects
IGRecDictionaryEditor
Provides access to objects and methods for loading, saving and editing user dictionary.
IGRecDictionaryManager
Provides access to user dictionaries and vertical dictionaries of the document
IGRecDictionarySection
Represents a section of a user dictionary
IGRecDictionarySectionCollection
Represents a collection of user dictionary sections
IGRecDictionaryWord
Contains information about a specific word in a section of a user dictionary.
IGRecDictionaryWordCollection
Represents a collection of words in a section of user dictionary
IGRecDocument
Represents a document in the ScanSoft recognition engine
IGRecDocumentCollection
Represents a collection of documents
IGRecFixedCollection
Represents a fixed collection of objects, which can not be modified of
IGRecHNRSettings
Represents settings of the HNR handwritten text recognition module
IGRecModuleInfo
Provides information about recognition modules
IGRecMORSettings
Represents settings of the MOR multi-lingual omnifont module
IGRecOMRSettings
Represents settings of the OMR optical mark recognition module
IGRecOutputFormat
Provides information about a text output converter
IGRecOutputManager
Provides access to properties and methods used for outputting recognized text
IGRecOutputMarginSettings
Represents margin settings of the output manager
IGRecOutputSeparatorStrings
Represents separator strings settings of the output manager
IGRecPage
Represents a document page in the ScanSoft recognition engine.
IGRecPageImage
Contains the graphical representation of the page as loaded from an image file, scanned from the scanner or created from the application's memory.
IGRecPageCollection
Represents collection of pages
IGRecPageStatistics
Holds statistical information about the recognition of the page
IGRecPDFOutputOptions
Specifies options for creating a PDF page from recognition output.
IGRecPreprocessingSettings
Provides access to preprocessing settings of the document
IGRecProgressParams
Contains parameters used by the TaskProgress event
IGRecRecognitionLanguage
Provides information about a recognition language
IGRecSkewInfo
Contains skew and rotation information of the image
IGRecSpellLanguage
Provides information about a spelling language
IGRecTemplateManager
Provides properties and methods for working with zone templates
IGRecTrainingManager
Provides properties and methods for working with training data
IGRecUserDictionarySettings
Provides access to user dictionary settings
IGRecVerticalDictionaryInfo
Provides information about a vertical dictionary
IGRecZone
Provides information about a specific zone in an image
IGRecZoneCollection
Represents collection of zones in an image

The following enumerations are used in ImageGear Formats component:

enumIGRecBarcodeTypes
Identifies barcode types
enumIGRecCharacterFlags
Identifies attribute flags of the recognized character
enumIGRecCharSetFilter
Identifies character set filters
enumIGRecCheckOpinion
Identifies opinion options about the recognized string's acceptability
enumIGRecCodePageType
Identifies code page types
enumIGRecConvModes
Identifies coordinate conversion modes
enumIGRecDecompositionMethod
Identifies methods for decomposing the document into zones
enumIGRecDeskewModes
Identifies image deskewing modes
enumIGRecDictionaryLocationType
Identifies location types of user dictionary
enumIGRecEngineModule
Identifies modules of the ScanSoft recognition engine. This includes recognition modules as well as core and support modules.
enumIGRecFeatures
Identifies the features of the ImageGear Recognition component that are licensed separately
enumIGRecFillingMethod
Identifies zone filling methods
enumIGRecFontHandlingModes
Identifies font handling modes for the output document
enumIGRecFontType
Bitmask, identifies font types
enumIGRecHNRStyles
Identifies writing style setting for the HNR handprinted numerals recognition module.
enumIGRecInversionModes
Identifies image inversion modes
enumIGRecMarginHandling
Identifies margin handling modes for the output document
enumIGRecModuleInitCode
Identifies initialization codes of the recognition modules
enumIGRecOrientationModes
Identifies image orientation modes
enumIGRecOMRFrameDetectionModes
Identifies frame detection modes for the OMR otpical mark recognition component
enumIGRecOMRSensitivity
Identifies mark sensitivity levels for the OMR otpical mark recognition component
enumIGRecOutputAlignment
Identifies alognment modes for the output document
enumIGRecOutputFormatLevels
Identifies formatting detail level for the output document
enumIGRecOutputFormatType
Identifies output format types, such as plain text, word processor, etc.
enumIGRecOutputGraphicsHandlingModes
Identifies graphic handling modes for the output document
enumIGRecOutputIndentModes
Identifies indentation modes for the output document
enumIGRecOutputLanguage
Identifies languages that can be used for the output document
enumIGRecOutputLineSpacing
Identifies line spacing modes for the output document
enumIGRecOutputPaperOrientation
Identifies paper orientation modes for the output document
enumIGRecOutputPaperSize
Identifies paper sizes for the output document
enumIGRecOutputTableHandlingModes
Identifies table handling modes for the output document
enumIGRecImgProcResultModes
Specifies where an image processing operation will store the processed image.
enumIGRecParagraphSpacingModes
Identifies paragraph spacing modes for the output document
enumIGRecPrimaryReductionModes
Identifies primary reduction modes for image preprocessing
enumIGRecRecogniseFlag
Identifies the set of pages that are to be recognized
enumIGRecRecognitionLanguages
Identifies recognition languages
enumIGRecRecognitionModule
Identifies recognition modules of the ScanSoft recognition engine.
enumIGRecResEnhancementModes
Identifies resolution enhancement modes
enumIGRecRotationModes
Identifies image rotation modes
enumIGRecSecondaryReductionModes
Identifies secondary reduction modes for image preprocessing
enumIGRecSpellLanguages
Identifies spelling languages
enumIGRecTaskID
Identifies tasks are performed by the recognition engine, such as image preprocessing, decomposition, etc.
enumIGRecTradeoffModes
Identifies recognition tradeoff modes
enumIGRecWordAttribute
Identifies attributes of a word in the dictionary
enumIGRecZoneType
Identifies zone types

Below is an alphabetized reference of ImageGear Formats interfaces, control, objects and theirs API (properties, methods, and events).


IGRecBarcodeInfo

Group: Object

Description:

This object provides information about a specific one-dimensional bar code type.

Interface:

IIGRecBarcodeInfo

Class Members:

ID
property
Provides the identification number of the specific one-dimensional bar code.
Enabled
property
Sets or returns the state of the bar code.
Name
property
Name of the one-dimensional bar code type.


ID

Group: Property

Description:

This property provides the identification number of the specific one-dimensional bar code.

Property Summary:

Data Type:
enumIGRecBarcodeTypes
Default Value:
N/A
Access:
Read
Settings:
see enumIGRecBarcodeTypes
Bits Per Pixel:
N/A
Sample:
Recognition


Enabled

Type: Property

Description:

Sets or returns the state of the bar code. If enabled, the bar code type is validated for recognition. During recognition, only validated bar code type(s) are recognized.

By default the following bar code types are enabled: EAN, ITF, Code 39, Code 128 and Codabar.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Recognition


Name

Type: Property

Description:

Name of the one-dimensional bar code type.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecCharacter

Group: Object

Description:

The Character object provides information about an individual recognized character, for example character code, coordinates of the character on the image, confidence information, etc.

Interface:

IIGRecCharacter

Class Members:

Baseline
property
Y coordinate of the baseline
Cellnum
property
Index of the cell in the cell list
Code
property
Character code in UNICODE.
Code2
property
Second guess of the recognition, if any.
Code3
property
Third guess of the recognition, if any.
Confidence
property
Confidence number expressing both the certainty of the recognition of the first guess (Code property) and also the certainty of the word.
Flags
property
Data attribute flags of the recognized character.
FontSize
property
Font size of the character measured in points.
FontType
property
Font formatting attribute flags of the recognized character.
Height
property
Height of the rectangle exactly containing the character.
Language
property
This property expresses, which language the recognized word belongs to.
Language2
property
ID of the secondary language if the recognized word was found in more language dictionaries.
Left
property
X coordinate of the left edge of the rectangle exactly containing the character.
SpaceConfidence
property
Confidence number expressing the certainty of the Spaces property.
SpaceCount
property
This field signals whether there are space(s) in front of the recognized code character.
Top
property
Y coordinate of the top edge of the rectangle exactly containing the character.
Width
property
Width of the rectangle exactly containing the character.
ZoneIndex
property
Index of the zone in the Zones collection which contains the character.


Baseline

Group: Property

Description:

Y coordinate of the baseline measured from the top edge of the rectangle exactly containing the character.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


Cellnum

Group: Property

Description:

Index of the cell in the cell list, which contains the character (applicable only for the table zones).

Note that the cell list is not accessible for the application.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


Code

Group: Property

Description:

Character code in UNICODE. This is either the first guess of the recognition or zero (0) signaling that the ENGine could not recognize the character

Note that when converting to the final output document the non-recognized characters will be substituted by the rejection symbol.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Code2

Group: Property

Description:

Second guess of the recognition, if any.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Code3

Group: Property

Description:

Third guess of the recognition, if any.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Confidence

Group: Property

Description:

Confidence number expressing both the certainty of the recognition of the first guess (Code property) and also the certainty of the word.

The most significant bit is used to express the certainty/uncertainty of the word (word is uncertain, if this bit set to 1).

The certainty of the character recognition ranges between 0 and 100. Applications that examine the character confidence information can use a threshold value, above which the character value is treated as a suspicious result. A value of zero (0) means that the ENGine recognized the character with high confidence.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
See description
Bits Per Pixel:
N/A
Sample:
Recognition


Flags

Group: Property

Description:

Data attribute flags of the recognized character. Since the recognition text does not contain extra characters for marking the end of lines, end of paragraphs, end of pages, etc, these pieces of information are stored for the particular characters in this property.

Property Summary:

Data Type:
enumIGRecCharacterFlags
Default Value:
N/A
Access:
Read
Settings:
Any binary OR-ed combination of enumIGRecCharacterFlags values
Bits Per Pixel:
N/A
Sample:
Recognition


FontSize

Group: Property

Description:

Font size of the character measured in points.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


FontType

Group: Property

Description:

Font formatting attribute flags of the recognized character.

Property Summary:

Data Type:
enumIGRecFontType
Default Value:
N/A
Access:
Read
Settings:
Any binary OR-ed attribute of enumIGRecFontType values
Bits Per Pixel:
N/A
Sample:
Recognition


Height

Group: Property

Description:

Height of the rectangle exactly containing the character.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Language

Group: Property

Description:

This property expresses, which language the recognized word belongs to.

When the recognized word cannot be associated with any language, it is signaled with IG_SPELL_LANGUAGE_NO. If the word can also be found in another language dictionary, then both this and the Language2 property will contain the language IDs of those languages.

Property Summary:

Data Type:
enumIGRecSpellLanguages
Default Value:
N/A
Access:
Read
Settings:
See enumIGRecSpellLanguages
Bits Per Pixel:
N/A
Sample:
Recognition


Language2

Group: Property

Description:

ID of the secondary language if the recognized word was found in more language dictionaries.

Note that if both Language and Language2 provide real languages, then their order is undefined.

Property Summary:

Data Type:
enumIGRecSpellLanguages
Default Value:
N/A
Access:
Read
Settings:
See enumIGRecSpellLanguages
Bits Per Pixel:
N/A
Sample:
Recognition


Left

Group: Property

Description:

X coordinate of the left edge of the rectangle exactly containing the character.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


SpaceConfidence

Group: Property

Description:

Confidence number expressing the certainty of the Spaces property.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any number between 0 and 100
Bits Per Pixel:
N/A
Sample:
Recognition


SpaceCount

Group: Property

Description:

This property signals whether there are space(s) in front of the recognized code character.

With some text recognition modules, this property contains the estimated number of leading spaces in front of the character. In other cases, this information just signals whether there is at least one space in front of the character or not.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


Top

Group: Property

Description:

Y coordinate of the top edge of the rectangle exactly containing the character.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


Width

Group: Property

Description:

Width of the rectangle exactly containing the character.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


ZoneIndex

Group: Property

Description:

Index of the zone in the Zones collection which contains the character.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive long value
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecCharSetManager

Type: Object

Description:

This object provides access to character set and language settings of the document.

Interface:

IIGRecCharSetManager

Class Members:

CodePage
property
Sets or returns the name of the Code Page used with the document.
Filter
property
Narrows the Language environment, i.e. the sum of RecognitionLanguages and LanguagePlus.
FilterPlus
property
Gets or sets the FilterPlus characters.
LanguagesPlus
property
Gets or sets LanguagesPlus characters
MissingSymbol
property
Sets or returns the code of the missing symbol.
OutofCodePageCharacters
property
Returns any characters included in the current Language environment, but not included in the current Code Page.
RecognitionLanguages
property
Returns the RecognitionLanguages collection of the document.
RejectionSymbol
property
Sets or returns the code of the rejection symbol.
ConvertToCodePage
method
converts a string from UNICODE to the current Code Page
ConvertToUnicode
method
converts a string from the current Code Page to UNICODE
IsCharacterEnabled
method
inquires whether a given character is validated for recognition


CodePage

Group: Property

Description:

This property sets or returns the name of the Code Page used with the document.

The default value of this property is "Windows ANSI" Code Page (code page 1252).

Property Summary:

Data Type:
String
Default Value:
"Windows ANSI"
Access:
Read/Write
Settings:
see List of available code pages
Bits Per Pixel:
N/A
Sample:
Recognition


ConvertToCodePage

Group: Method

Description:

This method converts a string from UNICODE to the current Code Page specified by the CodePage property of the IGRecCharSetManager object.

Declaration:

ConvertToCodePage (StringInUnicode As String, Res as
IGIntegerArray)

Parameters:

StringInUnicode
String in UNICODE to convert
Res
Returns the converted string as a byte array

Return value:

None.

Bits Per Pixel:

N/A


ConvertToUnicode

Group: Method

Description:

This method converts a string from the current Code Page specified by the CodePage property of the IGRecCharSetManager object to UNICODE.

Declaration:

ConvertToUnicode (StringInCodePage As IGIntegerArray) As String

Parameters:

StringInCodePage
Array of bytes containing the string in the current CodePage.

Return value:

Converted string in Unicode.

Bits Per Pixel:

N/A


Filter

Group: Property

Description:

This property is used to narrow the Language environment, i.e. the sum of RecognitionLanguages and LanguagePlus. This setting will be applied for all Zone objects having the IG_CHARSET_FILTER_DEFAULT value in their Filter property.

Note that you can override this document-level setting on particular zones if you specify a different setting in the Filter property of the Zone objects.

The default value of this setting is IG_CHARSET_FILTER_ALL, i.e. by default the Language environment will not be filtered.

Property Summary:

Data Type:
enumIGRecCharSetFilter
Default Value:
IG_CHARSET_FILTER_ALL
Access:
Read/Write
Settings:
see enumIGRecCharSetFilter
Bits Per Pixel:
N/A
Sample:
Recognition


FilterPlus

Group: Property

Description:

This property is used to specify or return the FilterPlus characters. The set of the FilterPlus characters is used to broaden the set of acceptable characters and it is applied after any filtering of the language environment. To allow the use of these characters, either the IGRecDocument.CharsetManager.Filter property or IGRecZone.Filter property must have the IG_CHARSET_FILTER_PLUS value enabled.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


IsCharacterEnabled

Group: Method

Description:

This method inquires whether a given character is validated for recognition for the current document by its Language environment, any Global filtering and FilterPlus. The function returns a Boolean value indicating whether the character is included in the Character Set of the IGRecZone objects of which Filter property is IG_REC_CHARSET_FILTER_DEFAULT.

Declaration:

IsCharacterEnabled (Character As String) As Boolean

Parameters:

Character
A UNICODE string containing a single character to inquire

Return value:

True if the character is validated for recognition, False othervise.

Bits Per Pixel:

N/A


LanguagesPlus

Group: Property

Description:

This property is used to specify or return the LanguagesPlus characters. The set of the LanguagesPlus characters is added to the set of characters determined by the language selection. The resulting set of characters is called the Language environment.

This property is useful when non-selectable languages need to be handled. In this case, it's usually best to select English only and add the needed accented letters individually with this property.

One interesting use of the Language environment results when there is no language selection at all. This means that only the LanguagesPlus characters will be validated. This can be useful, for example with multiple-choice test answers, where only a few letters are valid (e.g. A, B, C, D).

Property Summary:

Data Type:
String
Default Value:
Empty string
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


MissingSymbol

Group: Property

Description:

This property sets or returns the code of the missing symbol. The missing symbol is a special character that replaces a character that was recognized by the ENGine but cannot be represented in the final output document, since the character does not exist in the current Code Page.

The default missing symbol is the circumflex character ("^").

Property Summary:

Data Type:
String
Default Value:
"^"
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


OutofCodePageCharacters

Group: Property

Description:

This property returns any characters included in the current Language environment (those validated by the language selection plus any LanguagesPlus characters) and characters listed as FilterPlus characters, but NOT included in the current Code Page.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


RecognitionLanguages

Group: Property

Description:

This property returns the RecognitionLanguages collection of the document. It is a IGRecFixedCollection containing IGRecRecognitionLanguage objects.

Property Summary:

Data Type:
IGRecFixedCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


RejectionSymbol

Group: Property

Description:

This property sets or returns the code of the rejection symbol. The rejection symbol is a special character that is used as a symbol for the rejected characters (i.e. unrecognized by the recognition module used in the zone) in the final output document.

The default is the tilde character ("~").

Property Summary:

Data Type:
String
Default Value:
"~"
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecCheckWordParams

Group: Object

Description:

This object contains parameters that are used by the CheckWord event.

Interface:

IGRecCheckWordParams

Class Members:

Opinion
property
Expresses an opinion about the recognized string's acceptability.


Opinion

Group: Property

Description:

This property expresses an opinion about the recognized string's acceptability.

Property Summary:

Data Type:
enumIGRecCheckOpinion
Default Value:
IG_REC_OPINION_UNRESOLVED
Access:
Read/Write
Settings:
see enumIGRecCheckOpinion
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecCodePage

Group: Object

Description:

This object provides information about a supported Code Page of the Recognition component.

Interface:

IIGRecCodePage

Class Members:

Description
property
Description of the Code Page
Name
property
Name of the Code Page
Type
property
Indicates the type of the Code Page.


Description

Group: Property

Description:

This property provides either a short description of the Code Page in English, or complementary information to the Code Page name itself.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Name

Group: Property

Description:

Name of the Code Page.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Type

Group: Property

Description:

Indicates the type of the Code Page.

Property Summary:

Data Type:
enumIGRecCodePageType
Default Value:
N/A
Access:
Read
Settings:
see enumIGRecCodePageType
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecCtl

Group: Object

Description:

This is the main control that provides access to Recognition API objects.

Interface:

IIGRecCtl

Class Members:

ActiveDocument
property
Set or retrieves the active document from the Documents collection.
BarcodeInfos
property
Returns the BarcodeTypes collection, which contains information about the available bar code types.
CodePages
property
Returns the CodePages collection, which holds all the available Code Pages.
Documents
property
Represents the collection of Documents opened in the recognition engine.
ModuleInfos
property
Returns the ModuleInfos collection, which contains information about the available recognition modules.
OutputFormats
property
Provides access to the supported output formats available in the current configuration
SpellLanguages
property
Returns the Spelling languages available in the current ENGine configuration
TimeOut
property
Defines the component-wide module timeout setting.
CompactDocument
method
This method compacts the specified ScanSoft's IPRO document file.
Initialize
method
Initializes the Recognition component.
IsFeatureLicensed
method
Inquires whether the specified feature is licensed
CheckWord
event
This event is used to allow user-written checking of recognition results.
TaskProgress
event
This event is fired when the ENGine processes a task


ActiveDocument

Group: Property

Description:

This property can be used to set or retrieve the active document from the Documents collection. Specify a IGRecDocument object from the Documents collection to set it as the active document.

Property Summary:

Data Type:
IGRecDocument
Default Value:
N/A
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


BarcodeInfos

Group: Property

Description:

This property returns the collection of IGRecBarcodeInfo object, which provide information about the available bar code types.

Property Summary:

Data Type:
IGRecFixedCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


CheckWord

Group: Event

Description:

This event is used to allow user-written checking of recognition results. It gives the application power to influence recognition results at zone level.

CheckWord event can be fired by some recognition modules (MOR, HNR, MAT) through the checking subsystem during the recognition of a particular zone. The returned Opinion value can influence a recognition modules' decision about the recognized result. It is the function's task to check the Word recognized string and to decide whether it is acceptable for the zone specified by the Document, Page, Zone parameters, respectively.

The Opinion value of the returned IGRecCheckWordParams object should express an opinion about the recognized string's acceptability.

Declaration:

Sub CheckWord(Document As IGRecDocument, PageIndex As Long,
ZoneIndex As Long, WordToCheck As String, ReturnParams As
IGRecCheckWordParams)

Parameters:

Document
The document being processed
PageIndex
Index of the page to which the recognized word belongs
ZoneIndex
Index of the zone to which the recognized word belongs
WordToCheck
The word that should be checked by the application
ReturnParams
A structure that is used to pass return parameter (Opinion)


CodePages

Group: Property

Description:

This property returns the collection of IGRecCodePage objects, that provide information about available Code Pages.

Property Summary:

Data Type:
IGRecFixedCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


CompactDocument

Group: Method

Description:

This method compacts the specified ScanSoft's IPRO document file. The document file cannot be in an open state.

Declaration:

CompactDocument(FileName As String)

Parameters:

FileName
File name of an IPRO document


Documents

Group: Property

Description:

This property returns the collection of all documents currently opened by the recognition engine.

Property Summary:

Data Type:
IGRecDocumentCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Initialize

Group: Method

Description:

This method initializes the underlying recognition engine of the ImageGear Recognition component. It must be called after associating the the Recognition component with the Core component, and before calling any other function or using properties of the Recognition component.

Declaration:

Initialize()

Return value:

None

Bits Per Pixel: N/A

Sample:

Recognition


IsFeatureLicensed

Group: Method

Description:

This function inquires whether a particular feature of the Recognition component is licensed.

The enumIGRecFeatures enumeration lists the features that are licensed separately.

Declaration:

IsFeatureLicensed(Feature As enumIGRecFeatures) As Boolean

Parameters:

Feature
Specifies the feature of the Recognition component

Return value:

Returns True if the feature is licensed, and False is the feature is not licensed.

Bits Per Pixel: N/A

Sample:

Recognition


ModuleInfos

Group: Property

Description:

This property returns a collection of IGRecModuleInfo objects that provide information about the available modules in the current configuration.

The available modules are those present (in the ImageGear Binary directory) AND validated by a license, so there can be two reasons why a module won't be reported as available: when the module is missing or not licensed.

Property Summary:

Data Type:
IGRecFixedCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


OutputFormats

Group: Property

Description:

This property returns the collection of IGRecOutputFormat objects, that provide access to the supported output formats available in the current configuration, i.e. those for which an output converter is installed and present in the ImageGear Binary directory.

Property Summary:

Data Type:
IGRecFixedCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


SpellLanguages

Group: Property

Description:

Returns the collection of IGRecSpellLanguage object, which contains the Spelling languages available in the current configuration, i.e. those for which a Language dictionary is installed and present in the ImageGear Binary directory.

Property Summary:

Data Type:
IGRecFixedCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


TaskProgress

Group: Event

Description:

This event is fired when the recognition engine processes a task: imports an image, pre-processes an image, recognizes an image, etc.

The application should set the Continue parameter to False to signal that the user has requested to abort the current processing phase and the processing will stop at the first suitable moment. If the Continue parameter is set to True, the current processing phase will continue until completion.

Declaration:

Sub TaskProgress(Task As enumIGRecTaskID, Percent As Long,
ReturnParams As IGRecProgressParams)

Parameters:

Task
Task being performed by the recognition engine
Percent
Percentage indicator for the task. Percent is always a number between 0 and 100, where 100 means that Task has finished.
ReturnParams
Set ReturnParams.Continue to False to signal that the user has requested to abort the current processing phase and the processing will stop at the first suitable moment. If the Continue parameter is set to True, the current processing phase will continue until completion.

Sample: Recognition

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


TimeOut

Group: Property

Description:

This property defines the ENGine-wide module timeout setting. This setting is used by the recognition engine to implement a watch-dog feature for avoiding rare but annoying dead-lock situations (infinite loops). At this moment this feature is applied to the image pre-processing, page parsing (auto-zoning) and recognition processes.

The value specified here is either a time value measured in milliseconds or INFINITE. While a definite time value allows any module to process an image for no longer than the time specified, the value of INFINITE disables the watch-dog feature.

When the specified time is reached, recognition engine terminates the running of the appropriate module and resets it. The calling method will return with the API_TIMEOUT_ERR return code to the integrating application signaling that the processing of the image could not be successfully completed.

The default value of this property is 180000 milliseconds (3 minutes), i.e. no process will be allowed to continue for more than three minutes.

Property Summary:

Data Type:
Long
Default Value:
180000
Access:
Read/Write
Settings:
Any positive Long value
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecDictionaryEditor

Group: Object

Description:

Provides the means for creating and editing a user dictionary. The dictionary can then be saved into a file or into the IGRecDocument.

Interface:

IIGRecDictionaryEditor

Class Members:

IsModified
property
This property returns True if the User dictionary has been changed since the last call to the Save method.
IsOpen
property
This property is True if the User dictionary is open
Sections
property
This property returns the collection of Sections of the User dictionary.
Close
method
Closes the User dictionary without saving.
CreateEmpty
method
This method creates a new, empty User dictionary.
LoadFromDocument
method
Opens the user dictionary from the parent IGRecDocument object
LoadFromFile
method
Loads User Dictionary from an external file
SaveToDocument
method
Saves User Dictionary to the parent IGRecDocument object
SaveToFile
method
Saves User dictionary to an external file


Close

Group: Method

Description:

Closes the active User dictionary without saving. A User dictionary must be both saved and closed for the changes made in an editing session to be available in the future.

Closing a User dictionary will set the IsOpen property to False.

Declaration:

Sub Close()

Bits Per Pixel:

N/A

Sample:

Recognition


CreateEmpty

Group: Method

Description:

This method creates a new, empty User dictionary. If a User dictionary is already open, it will be closed without saving. Until explicitly saved, it will not be saved (neither in the document nor in the external file), i.e. document-level User dictionary management routines will not find it.

Creating a new user dictionary will set the IsModified property to False.

Opening a user dictionary will set the IsOpen property to True.

Declaration:

Sub CreateEmpty

Bits Per Pixel:

N/A

Sample:

Recognition


IsModified

Group: Property

Description:

This property returns True if the User dictionary has been changed since the saving. Opening or creating a new user dictionary sets this property to False.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Recognition


IsOpen

Group: Property

Description:

This property is True if the User dictionary is open.

Property Summary:

Data Type:
Boolean
Default Value:
N/A
Access:
Read
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Recognition


LoadFromDocument

Group: Method

Description:

This method is used to open an existing User dictionary for editing purposes (adding new items etc.). If the specified User dictionary does not exist in the document, an error is set. Note that for any document only one User dictionary can be opened at a time. If a User dictionary is already open when a second one is opened, the first one will be closed without saving and the new User dictionary will become active.

Opening a user dictionary will set the IsModified property to False.

Opening a user dictionary will set the IsOpen property to True.

Declaration:

Sub LoadFromDocument (DictName As String)

Parameters:

DictName
Name of the user dictionary

Bits Per Pixel:

N/A

Sample:

Recognition


LoadFromFile

Group: Method

Description:

This method is used to open an existing User dictionary file for editing purposes (adding new items etc.). If the specified User dictionary file does not exist, an error is set. Note that for any document only one User dictionary can be opened at a time. If a User dictionary is already open when a second one is opened, the first one will be closed without saving and the new User dictionary will become active.

Opening a user dictionary will set the IsModified property to False.

Opening a user dictionary will set the IsOpen property to True.

Declaration:

Sub LoadFromFile (FileName As String)

Parameters:

FileName
File name of the user dictionary file

Bits Per Pixel:

N/A

Sample:

Recognition


SaveToDocument

Group: Method

Description:

Saves the active User dictionary into the document. If a User dictionary exists with the specified name, it will be overwritten.

Saving a User dictionary will set the IsModified property to False.

Declaration:

Sub SaveToDocument (DictName As String)

Parameters:

DictName
Name of the user dictionary

Bits Per Pixel: N/A

Sample:

Recognition


SaveToFile

Group: Method

Description:

Saves the active User dictionary into an external file. If a User dictionary exists with the specified name, it will be overwritten.

Saving a User dictionary will set the IsModified property to False.

Declaration:

Sub SaveToFile (FileName As String)

Parameters:

FileName
File name of the user dictionary file

Bits Per Pixel: N/A

Sample:

Recognition


Sections

Group: Property

Description:

This property returns the Sections collection of the User dictionary.

Property Summary:

Data Type:
IGRecDictionarySectionCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecDictionaryManager

Group: Object

Description:

This object provides access to user dictionaries and vertical dictionaries of the document.

Interface:

IIGRecDictionaryManager

Class Members:

UserDictionaryCount
property
Returns the number of User dictionaries stored in the document.
UserDictionaryEditor
property
Provides access to objects and methods for loading, saving and editing user dictionary.
VerticalDictionaryFileName
property
Specifies the Vertical dictionary file to be used during recognition
DeleteUserDictionary
method
Removes the User dictionary.
GetUserDictionaryName
method
Returns the name of the indexed User dictionary stored in the document.
GetUserDictionarySettingsCopy
method
Obtains the User dictionary parameters.
GetVerticalDictionaryFileInfo
method
Returns information about the Vertical dictionary
IsUserDictionary
method
Checks whether a name refers to a valid User dictionary in the document
UpdateUserDictionarySettingsFrom
method
This method updates the User dictionary parameters


DeleteUserDictionary

Group: Method

Description:

This method removes a User dictionary from the document. If it does not exist, nothing happens.

Declaration:

Sub DeleteUserDictionary (Name As String)

Parameters:

Name
Name of the user dictionary

Bits Per Pixel:

N/A

Sample: Recognition

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetUserDictionaryName

Group: Method

Description:

This method returns the name of the indexed User dictionary stored in the document.

Declaration:

Sub GetUserDictionaryName (Index As Long)

Parameters:

Index
Index of the user dictionary

Bits Per Pixel:

N/A

Sample: Recognition

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetUserDictionarySettingsCopy

Group: Method

Description:

This method obtains the User dictionary parameters.

Declaration:

GetUserDictionarySettingsCopy As IGRecUserDictionarySettings

Return value:

User dictionary settings

Bits Per Pixel: N/A

Sample:

Recognition


GetVerticalDictionaryFileInfo

Group: Method

Description:

This method returns information about a Vertical dictionary.

Declaration:

GetVerticalDictionaryFileInfo (FileName As String) As
IGRecVerticalDictionaryInfo

Parameters:

FileName
File Name of the vertical dictionary

Bits Per Pixel:

N/A

Sample:

Recognition


IsUserDictionary

Group: Method

Description:

This method returns True if the name specified in Name parameter refers to a valid User dictionary in the document.

Declaration:

IsUserDictionary (Name As String) As Boolean

Parameters:

Name
Name of the user dictionary

Return value:

True if the name specified in Name parameter refers to a valid User dictionary in the document.

Bits Per Pixel:

N/A

Sample:

Recognition


UpdateUserDictionarySettingsFrom

Group: Method

Description:

This method specifies the User dictionary and its default section to be used during recognition.

Declaration:

Sub UpdateUserDictionarySettingsFrom (Settings As
IGRecUserDictionarySettings)

Parameters:

Settings
User dictionary settings

Bits Per Pixel:

N/A

Sample:

Recognition


UserDictionaryCount

Group: Property

Description:

This property returns the number of User dictionaries stored in the document.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
Any positive Long
Bits Per Pixel:
N/A
Sample:
Recognition


UserDictionaryEditor

Group: Property

Description:

This property provides access to objects and methods for loading, saving and editing user dictionary.

Property Summary:

Data Type:
IGRecDictionaryEditor
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


VerticalDictionaryFileName

Group: Property

Description:

This property specifies the Vertical dictionary file to be used during recognition.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecDictionarySection

Group: Object

Description:

This object represents a section of a User dictionary. Through its properties, the Section object can be used to get information about a section of the active User dictionary.

Interface:

IIGRecDictionarySection

Class Members:

Name
property
Returns the name of the section.
Words
property
Returns the Words collection of the Section object


Name

Group: Property

Description:

This property returns the name of the section. Section names are case sensitive.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Words

Group: Property

Description:

This property returns the Words collection of the Section object.

Property Summary:

Data Type:
IGRecDictionaryWordCollection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecDictionarySectionCollection

Group: Object

Description:

This object provides information about a supported Code Page of the Recognition component.

Interface:

IGRecDictionarySectionCollection

Class Members:

Count
property
Returns the number of Section objects in the collection.
Item
property
Indexed property, returns a Section object from the collection.
AddNew
method
This method can be used to add a new section to the active User dictionary
Remove
method
This method will delete the specified section from the User dictionary
RemoveAll
method
This method deletes all sections from the active User dictionary.


AddNew

Group: Method

Description:

This method can be used to add a new section to the active User dictionary specified by the UserDictionary property of the Document object.

ItemName specifies the name of the section to be added, it cannot be longer than the MAXSECTNAMELEN constant. If a section with this name already exists, an error will occur. Section names are case sensitive.

This method returns the newly added Section object, which will be appended at the end of the collection. You can have an unlimited number of sections in a User dictionary, but managing a large number of sections will require more system resources.

Declaration:

AddNew (ItemName As String) As IGRecDictionarySection

Parameters:

ItemName
Name of the section to be added

Return value:

New dictionary section object.

Bits Per Pixel:

N/A

Sample:

Recognition


Count

Group: Property

Description:

This property returns the number of Section objects in the collection.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Item

Group: Property

Description:

This indexed property returns a Section object from the collection.

The index of the first object in the collection is zero (0) and the last object is indexed Count-1.

Property Summary:

Data Type:
IGRecDictionarySection
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Remove

Group: Method

Description:

This method will delete the specified section from the User dictionary along with all the words in that section.

Declaration:

Sub Remove (Index As Long)

Parameters:

Index
Index of the section to remove

Bits Per Pixel:

N/A

Sample:

Recognition


RemoveAll

Group: Method

Description:

This method deletes all sections from the active User dictionary.

Declaration:

Sub RemoveAll

Bits Per Pixel:

N/A

Sample:

Recognition


IGRecDictionaryWord

Group: Object

Description:

This object contains information about a specific word in a section of a User dictionary.

Interface:

IIGRecDictionaryWord

Class Members:

Attributes
property
Specifies attributes of the word
Value
property
Returns the current word.


Attributes

Group: Property

Description:

Returns attributes of the word.

Property Summary:

Data Type:
enumIGRecWordAttribute
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Value

Group: Property

Description:

This property returns the current word.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecDictionaryWordCollection

Group: Object

Description:

The Words collection is an ordered set of Word objects, where each element represents a Word (a literal string or a regular expression) in a section of a User dictionary. Through its properties, the IGRecDictionaryWordCollection object enables you to gather information about the words in a section of the active User dictionary. The literal strings in the collection are in alphabetical order, followed by the regular expressions.

Interface:

IIGRecDictionaryWordCollection

Class Members:

Count
property
Returns the number of Word objects in the collection.
Item
property
Indexed property, returns a Word object from the collection.
Add
method
This method can be used to add a new Word to the active User dictionary
Remove
method
This method will delete the specified Word from the collection
RemoveAll
method
This method deletes all Words from the collection


Add

Group: Method

Description:

This method adds a word to the collection.

When adding a word, it will be inserted in alphabetical order if it is added as a literal string. Regular expressions are always appended at the end of the collection.

IGRecDictionaryWordCollection can have an unlimited number of Word objects.

Declaration:

Add (Word As String, Attribute As enumIGRecWordAttribute) As
Long

Parameters:

Word
The word to be added
Attribute
Attribute that classifies the word: literal string or regular expression.

Return value:

The index of the new word in the collection.

Bits Per Pixel:

N/A

Sample:

Recognition


Count

Group: Property

Description:

This property returns the number of Words in the collection.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Item

Group: Property

Description:

This indexed property returns a Word from the collection.

The index of the first object in the collection is zero (0) and the last object is indexed Count-1.

Property Summary:

Data Type:
IGRecDictionaryWord
Default Value:
N/A
Access:
Read
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


Remove

Group: Method

Description:

This method removes the indexed word from the collection. Removing a word from the collection will delete the word, so every reference to that word will immediately become invalid. Removing the last Word from the Words collection will delete the section as well. Calls to this deleted Section object will return an error.

Declaration:

Sub Remove (Index As Long)

Parameters:

Index
Index of the Word to remove

Bits Per Pixel:

N/A

Sample:

Recognition


RemoveAll

Group: Method

Description:

This method removes all words from the collection.

Declaration:

Sub RemoveAll

Bits Per Pixel:

N/A

Sample:

Recognition


IGRecDocument

Group: Object

Description:

This object represents a document. It contains the collection of IGRecPages, and document-level workspace settings. It is possible to keep several open documents in memory, but only one of them can be "active". Document, in any current state, can be saved to a document file, and later recreated from this file.

Created by the AddNew() method of the CIGRecDocumentsCollection object. To open a document, first use IGRecDocumentCollection.AddNew(), then IGRecDocument.Open()

Interface:

IIGRecDocument

Class Members:

ActivePage
property
Returns the active page of the document
CharSetManager
property
Represents charset and language settings for the document
CheckingEnabled
property
Enables or disables the checking subsystem at the document level
CorrectionEnabled
property
Enables or disables correction from the checking subsystem
DecompositionMethod
property
Sets or returns the algorithm for auto-zoning
DefaultFillingMethod
property
Sets or returns the default filling method for the document
DictionaryManager
property
Provides access to user and vertical dictionaries
FileName
property
Sets or returns file name of the IPRO document associated with the IGRecDocument object
HNRSettings
property
Provides access to settings of the HNR handwritten numerals recognition module
MORSettings
property
Provides access to settings of the MOR multi-lingual omnifont recognition module
NongriddedTableDetectEnabled
property
Enables or disables nongridded table detectction feature
OMRSettings
property
Provides access to settings of the OMR optical mark recognition module
OutputManager
property
Provides access to properties and methods for creation of the final output document from the recognition result
Pages
property
Represents collection of document's pages
PreprocessingSettings
property
Provides access to preprocessing settings for the document
SingleColumnModeEnabled
property
Enables or disables single column mode for the auto-zoning.
SpellLanguage
property
Sets or returns spelling language for the spell checking of the document
TemplateManager
property
Provides access to zone templates of the document
TradeOffMode
property
Sets or returns trade-off mode for the document
TrainingManager
property
Provides access to methods that control training files
AddUserDataFrom
method
Saves user data to the document
ClearModified
method
Clears the Modified flag of the document
ExportSettings
method
Exports document settings to a settings file
GetUserDataCopy
method
Obtains user data from the document
ImportSettings
method
Imports document settings from a settings file
IsModified
method
Returns True if any page of the document was modified since the document was created or loaded.
Recognize
method
Recognizes document's pages
SaveToFile
method
Saves the document to IPRO document file.
SetDefaultSettings
method
Sets default settings for the document


ActivePage

Group: Property

Description:

This property returns the currently active page of the document, which has all properties loaded in memory.

Use IGRecPageCollection.SetActivePage to make a page active.

Property Summary:

Data Type:
IIGRecPage
Access:
Read only
Sample:
Recognition


AddUserDataFrom

Group: Method

Description:

This method saves document-specific custom data to the IPRO document file. The UserData parameter is an IGIntegerArray containing an array of bytes.

Existing data will be overwritten unless the Append flag has been set to True.

Declaration:

AddUserDataFrom (Name As String, UserData As IIGIntegerArray,
Append As Boolean)

Parameters:

Name
Specifies the name under which the data will be stored in the document file
UserData
Array of bytes containing user data
Append
Specifies whether to overwrite existing data

Bits Per Pixel:

N/A

Sample:

Recognition


CharSetManager

Group: Property

Description:

This property provides access to charset and language settings for the document.

Property Summary:

Data Type:
IIGRecCharSetManager
Access:
Read only
Sample:
Recognition


CheckingEnabled

Group: Property

Description:

This property enables or disables the checking subsystem at the document level.

The checking subsystem may improve the overall throughput by marking suspicious words and characters, or by making changes if permitted to with the Correction property.

Property Summary:

Data Type:
BOOL
Default Value:
True
Access:
Read/Write
Settings:
True, False
Sample:
Recognition


ClearModified

Group: Method

Description:

This method clears the Modify flag of the document.

To check whether the document was modified use the IsModified property.

Declaration:

ClearModified()

Bits Per Pixel:

N/A

Sample:

Recognition


CorrectionEnabled

Group: Property

Description:

This property enables or disables the document-level correction from the checking subsystem, i.e. allowing or prohibiting text elements to be changed to acceptable solutions when possible, flagging changed and unacceptable items. This property is effective only when the Check property is also enabled.

The correction feature will construct possible solutions from two sources only: an second or third character guess for the characters in the word or character-pairs solutions in the TEV.SZO file, designed to handle typical OCR-misrecognitions. These solutions are passed to the checking subsystems, which may result in a refused word being changed.

Property Summary:

Data Type:
BOOL
Default Value:
True
Access:
Read/Write
Settings:
True, False
Sample:
Recognition


DecompositionMethod

Group: Property

Description:

This property sets or returns which Page parser algorithm should be used during auto-zoning.

Property Summary:

Data Type:
enumIGRecDecompositionMethods
Default Value:
IG_REC_DECOMPOSITION_METHOD_AUTO
Access:
Read/Write
Settings:
see enumIGRecDecompositionMethods
Sample:
Recognition


DefaultFillingMethod

Group: Property

Description:

This property sets or returns the filling method for the document. This filling method setting will be applied for all IGRecZone objects having their FillingMethod property set to IG_REC_FILLING_METHOD_DEFAULT.

Property Summary:

Data Type:
enumIGRecFillingMethods
Default Value:
IG_REC_FILLING_METHOD_OMNIFONT
Access:
Read/Write
Settings:
see enumIGRecFillingMethods
Bits Per Pixel:
Sample:
Recognition


DictionaryManager

Group: Property

Description:

This property provides access to user and vertical dictionaries that are used for document recognition.

Property Summary:

Data Type:
IIGRecDictionaryManager
Access:
Read only
Sample:
Recognition


ExportSettings

Group: Method

Description:

This method saves the current settings of the document into a separate settings file. If a file with the specified name already exists, it will be overwritten.

Declaration:

Sub ExportSettings(FileName As String)

Parameters:

FileName
File name to save settings to

Bits Per Pixel:

N/A

Sample:

Recognition


FileName

Group: Property

Description:

This property returns the filename of the IPRO document file associated with the document. An IPRO document file is a compound file containing all the necessary information about the document (pages, images, recognized data, templates etc.). If the document has still not been saved, the return value is the name of a temporary file, which is created automatically.

Property Summary:

Data Type:
String
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


HNRSettings

Group: Property

Description:

This property provides access to settings of the HNR handwritten numerals recognition module.

Property Summary:

Data Type:
IIGRecHNRSettings
Access:
Read only
Sample:
Recognition


GetUserDataCopy

Group: Method

Description:

This method returns the document-specific custom data identified by the Name parameter from the IPRO document file.

Declaration:

Sub GetUserDataCopy (Name As String) As IIGIntegerArray

Parameters:

Name
Specifies the identifying name for the user data

Bits Per Pixel:

N/A

Sample:

Recognition


ImportSettings

Group: Method

Description:

This method loads a previously saved settings file for the document, restoring all settings present at the time the settings file was last saved. If SettingsFile does not exist, an error is set.

Declaration:

Sub ImportSettings(FileName As String)

Parameters:

FileName
File name of the settings file to load

Bits Per Pixel:

N/A

Sample:

Recognition


IsModified

Group: Method

Description:

This method returns True if any page of the document was modified since the document was created or loaded.

Declaration:

Sub IsModified() As Boolean

Bits Per Pixel:

N/A

Sample:

Recognition


MORSettings

Group: Property

Description:

This property provides access to settings of the MOR multi-lingual omnifont recognition module.

Property Summary:

Data Type:
IIGRecMORSettings
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


NongriddedTableDetectEnabled

Group: Property

Description:

This property sets or returns the Non-gridded table detection setting of the recognition engine.

Tables with visible gridlines (gridded tables) in an original page can usually be detected successfully by the auto-zoning function. In contrast, tables without visible cell separators in the original are harder to identify as tables, because they could equally as well be word lists or data arranged in columns. The Capture SDK offers an algorithm for detecting such non-gridded tables more confidently. This feature of the ENGine can only be used in conjunction with an auto-zoning step. The algorithm is based on the result of the character recognition.

When this property is enabled, a special algorithm tries to find non-gridded table(s) on the image. This algorithm is based on the existing zone list of the image and also on the recognized characters, i.e. this algorithm is activated as one of the last steps in the character recognition.

The running of this algorithm is strongly controlled, since it may modify the zone list belonging to the image. Accordingly, the Non-gridded table detection feature may be allowed to run only if all the following conditions are met:

- the zone list was created through auto-zoning (IIGRecZoneCollection.Locate),

- there was no change in the zone list (no zone was inserted, deleted, etc.)

- none of the zones in zone list was updated by modifying the zone coordinates.

Property Summary:

Data Type:
BOOL
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


OMRSettings

Group: Property

Description:

This property provides access to settings of the OMR optical mark recognition module

Property Summary:

Data Type:
IIGRecOMRSettings
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


OutputManager

Group: Property

Description:

This property provides access to properties and methods for creation of the final output document from the recognition result.

Property Summary:

Data Type:
IIGRecOutputManager
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


Pages

Group: Property

Description:

This property represents the collection of document's pages

Property Summary:

Data Type:
IIGRecPageCollection
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


PreprocessingSettings

Group: Property

Description:

This property provides access to preprocessing settings of the document.

Property Summary:

Data Type:
IIGRecPage
Default Value:
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


Recognize

Group: Method

Description:

This method recognizes the specified range of document's pages.

The recognition result will be stored in the IPRO document file. If there are no pages in the document, an error occurs.

For more information on page recognition, see the details of the Recognize method of the IGRecPage object.

Declaration:

Sub Recognize(RecFlag As enumIGRecRecognizeFlag)

Parameters:

RecFlag
Specifies which pages of the document should be processed

Bits Per Pixel:

N/A

Sample:

Recognition


SaveToFile

Group: Method

Description:

This method saves IGRecDocument to an IPRO Document file.

Declaration:

Sub SaveToFile(FileName As String)

Parameters:

FileName
File name to save document to

Bits Per Pixel:

N/A

Sample:

Recognition


SetDefaultSettings

Group: Method

Description:

This method Sets default settings for the document. The following settings are affected:

IGRecPreprocessingSettings:

    • PrimaryReductionMode
    • SecondaryReductionMode
    • ReductionBrightness
    • ReductionThreshold
    • ResEnhancementMode
    • InversionMode
    • DeskewMode
    • Skew
    • Rotation
    • DespeckleEnabled

Recognition engine:

    • Timeout

Page-layout decomposition (auto-zoning) module (properties of the IGRecDocument object):

    • DecompositionMethod
    • SingleColumnModeEnabled
    • NongriddedTableDetectEnabled

Zone settings:

    • Filter
    • FillingMethod
    • RecognitionModule

Recognition language, Character Set , Code Page (IGRecCharsetManager):

    • RecognitionLanguages
    • LanguagesPlus
    • FilterPlus characters
    • RejectionSymbol
    • CodePage
    • Missing symbol

Spell checking module (properties of IGRecDocument):

    • CheckingEnabled
    • CorrectionEnabled
    • SpellLanguage

Recognition modules global settings:

    • TradeOff

MOR multi-lingual omnifont recognition module:

    • FaxHandlingEnabled

BAR bar code recognition module:

    • BarcodeInfos

HNR handprinted numeral recognition module:

    • BoxHeight
    • BoxWidth
    • BoxSpace
    • SpacesEnabled
    • Style

OMR checkmark recognition module:

    • FrameDetectionMode
    • Sensitivity

Export to the final output document (IGRecOutputManager object):

    • FileFormat
    • FormatLevel

Declaration:

Sub SetDefaultSettings()

Bits Per Pixel:

N/A

Sample:

Recognition


SingleColumnModeEnabled

Group: Property

Description:

This property sets or resets Single Column mode to the document. It prevents the page-layout analyzer (auto-zoning) from detecting columns which means decolumnization is not available. It can be useful for preserving the columnar structure in tables. Note that the auto-zoning feature can be activated through the Locate method of the IGRecZoneCollection object.

Property Summary:

Data Type:
BOOL
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


SpellLanguage

Group: Property

Description:

This property specifies the spelling language for the spell checking of the document.

Property Summary:

Data Type:
enumIGRecSpellLanguages
Default Value:
IG_REC_SPELL_LANGUAGE_AUTO
Access:
Read/Write
Settings:
see enumIGRecSpellLanguages
Bits Per Pixel:
Sample:
Recognition


TemplateManager

Group: Property

Description:

This property provides access to zone template files of the document.

Property Summary:

Data Type:
IIGRecTemplateManager
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


TradeOffMode

Group: Property

Description:

This property specifies which recognition algorithm trade-off setting will be applied during the recognition of the document. This setting provides a trade-off between the accuracy and speed of the recognition.

Currently, this property is effective for the following recognition modules:

OMNIFONT_MOR (multi-lingual omnifont)

OMNIFONT_MTX (omnifont)

HNR (handprinted numerals)

RER (handprint)

BAR2D (2D bar code)

OMNIFONT_PLUS2W (multi-lingual omnifont)

OMNIFONT_PLUS3W (multi-lingual omnifont)

Other recognition modules do not use this property.

Property Summary:

Data Type:
enumIGRecTradeoffModes
Default Value:
IG_REC_TRADEOFFMODES_TO_ACCURATE
Access:
Read/Write
Settings:
see enumIGRecTradeoffModes
Bits Per Pixel:
Sample:
Recognition


TrainingManager

Group: Property

Description:

This property provides access to the methods that control the use of training data stored in training files.

Property Summary:

Data Type:
IIGRecTrainingManager
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


IGRecDocumentCollection

Group: Object

Description:

This object provides access to all currently opened documents in the Recognition component. It is owned by the CIGRecCtrl, and created at the startup time. See also CIGRecCtrl.ActiveDocument.

Interface:

IIGRecDocumentCollection

Class Members:

Count
property
Returns the number of currently opened recognition documents
Item[i]
property
Indexed property, returns the document by its index in the collection
AddNew
method
Creates an empty document, appends it to the collection and returns it to the user
Open
method
Opens a previously saved IPRO Document file and adds it to the collection
Remove
method
Removes document from the collection


AddNew

Group: Method

Description:

This method creates an empty document, appends it to the collection and returns it to the user.

Declaration:

Sub AddNew () As IIGRecDocument

Bits Per Pixel:

N/A

Return Value:

New instance of IGRecDocument object.

Sample:

Recognition


Count

Group: Property

Description:

This property returns the number of currently opened recognition documents.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


Item[i]

Group: Property

Description:

This indexed property returns the document by its index in the collection.

Property Summary:

Data Type:
IIGRecDocument
Default Value:
Access:
Read only
Settings:
index can be [0.. Count-1]
Bits Per Pixel:
Sample:
Recognition


Open

Group: Method

Description:

Opens a previously saved IPRO Document file, adds it to the collection and returns the new document object to the user.

Declaration:

Sub Open () As IIGRecDocument

Bits Per Pixel:

N/A

Return Value:

New instance of IGRecDocument object.

Sample:

Recognition


Remove

Group: Method

Description:

This method removes a document from the collection

Declaration:

Sub Remove (Index As Long)

Parameters:

Index
Index of the document to remove

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


IGRecFixedCollection

Group: Object

Description:

This object represents a collection that contains a fixed number of items.

Interface:

IIGRecFixedCollection

Class Members:

Count
property
Returns the number of items in the collection
Item[]
property
Indexed property, returns the item by its index


Count

Group: Property

Description:

This property returns the number of items in the collection.

Property Summary:

Data Type:
Long
Access:
Read only
Sample:
Recognition


Item[]

Group: Property

Description:

This indexed property returns the item contained in the collection by its index.

Property Summary:

Data Type:
IIGObject
Access:
Read only
Sample:
Recognition


IGRecHNRSettings

Group: Object

Description:

This object represents settings of the HNR handwritten text recognition module.

Interface:

IIGRecHNRSettings

Class Members:

BoxHeight
property
Character box height
BoxSpace
property
Character box leading space
BoxWidth
property
Character box width
SpacesEnabled
property
Space inclusion flag
Style
property
Writing style setting


BoxHeight

Group: Property

Description:

This property sets or returns the character height in 1/1200 inches. A value of zero (0) forces the automatic calculation of this parameter. If this parameter is zero (0), the remaining fields are also considered 0.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive Long value
Bits Per Pixel:
Sample:
Recognition


BoxSpace

Group: Property

Description:

This property sets or returns the leading spaces in 1/1200 inches. A value of zero (0) forces the automatic calculation of this parameter.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive Long value
Bits Per Pixel:
Sample:
Recognition


BoxWidth

Group: Property

Description:

This property sets or returns the character width in 1/1200 inches. A value of zero (0) forces the automatic calculation of this parameter.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive Long value
Bits Per Pixel:
Sample:
Recognition


SpacesEnabled

Group: Property

Description:

This property controls whether the HNR handprinted numerals recognition module shall handle spaces between the characters. When this property is True, the recognition module calculates and may insert SPACE characters between the recognized numeral characters.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


Style

Group: Property

Description:

This property sets or returns the writing style setting.

Property Summary:

Data Type:
enumIGRecHNRStyles
Default Value:
IG_REC_HNR_STYLE_EURO
Access:
Read/Write
Settings:
see enumIGRecHNRStyles values
Bits Per Pixel:
Sample:
Recognition


IGRecModuleInfo

Group: Object

Description:

This object provides access to information on a ScanSoft recognition engine module. This includes recognition modules, as well as support modules, such as spelling module, output module, etc.

Interface:

IIGRecModuleInfo

Class Members:

ID
property
Identifier of the module
InitCode
property
Module initialization error code


ID

Group: Property

Description:

This property returns the identifier of the recognition engine module.

Property Summary:

Data Type:
enumIGRecEngineModule
Default Value:
Access:
Read only
Settings:
see enumIGRecEngineModule values
Bits Per Pixel:
Sample:
Recognition


InitCode

Group: Property

Description:

This property returns the module initialization error code.

Property Summary:

Data Type:
enumIGRecModuleInitCode
Default Value:
Access:
Read only
Settings:
see enumIGRecModuleInitCode values
Bits Per Pixel:
Sample:
Recognition


IGRecMORSettings

Group: Object

Description:

This object represents settings of the MOR multi-lingual omnifont recognition module.

Interface:

IIGRecMORSettings

Class Members:

FaxHandlingEnabled
property
Enables or disables fax handling mode


FaxHandlingEnabled

Group: Property

Description:

This property enables or disables the Fax handling feature.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


IGRecOMRSettings

Group: Object

Description:

This object represents settings of the OMR optical mark recognition module.

Interface:

IIGRecOMRSettings

Class Members:

FrameDetectionMode
property
Sets or returns the frame detection method
Sensitivity
property
Sets or returns the mark sensitivity level


FrameDetectionMode

Group: Property

Description:

This property sets or returns the frame detection method to be applied during the running of the OMR optical mark recognition module. The frame detection method specifies how the zones containing frames (rectangles originally placed on the questionnaire) are handled.

The checkmarks can be of two types: with or without a frame visible in the image. The frame can be a rectangle, a hexagon, a circle, an ellipse, etc. It can be shaded. Scanning with a dropout color may mean that a frame visible on the input document becomes invisible in the image.

Set the frame detection method to IG_REC_OMR_FRAME_DETECTION_MODE_YES if the checkmark zones on the image are indicated by visible frames. If there are no frames visible for checkmark zones in the image, specify IG_REC_OMR_FRAME_DETECTION_MODE_NO. Use IG_REC_OMR_FRAME_DETECTION_MODE_AUTO, if you don't know whether the image will contain frames or not. The recognition accuracy is better if IG_REC_OMR_FRAME_DETECTION_MODE_AUTO can be avoided.

Property Summary:

Data Type:
enumIGRecOMRFrameDetectionModes
Default Value:
IG_REC_OMR_FRAME_DETECTION_MODE_AUTO
Access:
Read/Write
Settings:
see enumIGRecOMRFrameDetectionModes values
Sample:
Recognition


Sensitivity

Group: Property

Description:

This property sets or returns the mark sensitivity level to be applied during the running of the OMR optical mark recognition module.

The higher the mark sensitivity setting, the more sensitive the recognition will be, i.e. even a small mark (just a few contiguous black pixels) will cause the zone to be classified as "checked by respondent". The default sensitivity is suitable for well-printed questionnaires. Lower sensitivity allows speckled or poorly printed documents to be processed successfully.

Property Summary:

Data Type:
enumIGRecOMRSensitivity
Default Value:
IG_REC_OMR_SENSITIVITY_NORMAL
Access:
Read/Write
Settings:
see enumIGRecOMRSensitivity values
Sample:
Recognition


IGRecOutputFontSettings

Group: Object

Description:

This object provides access to font settings of the IGRecOutputManager object.

Interface:

IIGRecOutputFontSettings

Class Members:

HandlingMode
property
defines how the character font formatting information will be exported to the final output document
ProportionalSerifFontName
property
sets or retrieves the name of the proportional serif font used for exporting of the final output document.
ProportionalSansSerifFontName
property
sets or retrieves the name of the proportional sans serif font used for exporting of the final output document.
MonospacedSerifFontName
property
sets or retrieves the name of the monospaced serif font used for exporting of the final output document.
MonospacedSansSerifFontName
property
sets or retrieves the name of the monospaced sans serif font used for exporting of the final output document.
PredefinedFontName
property
sets or retrieves the name of the predefined font used used for exporting of the final output document.
PredefinedFontSize
property
sets or retrieves the size of the predefined font used used for exporting of the final output document.


HandlingMode

Group: Property

Description:

This property defines how the character font formatting information will be exported to the final output document.

The default value of this property is IG_REC_FONT_HANDLING_MODE_AUTO, when the TextLevel property is set to either IG_REC_OUTPUT_FORMAT_LEVEL_FULL or IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL, otherwise the IG_REC_FONT_HANDLING_MODE_PREDEFINED value will be used.

Property Summary:

Data Type:
enumIGRecFontHandlingModes
Default Value:
See description
Access:
Read/Write
Settings:
see enumIGRecFontHandlingModes values
Bits Per Pixel:
Sample:
Recognition


ProportionalSerifFontName

Group: Property

Description:

This property can be used to set or retrieve the name of the proportional serif font used for exporting of the final output document. This font is used when the HandlingMode property is set to IG_REC_FONT_HANDLING_MODE_AUTO.

Property Summary:

Data Type:
String
Default Value:
"Times New Roman"
Access:
Read/Write
Settings:
Any font name available in the OS
Bits Per Pixel:
Sample:
Recognition


ProportionalSansSerifFontName

Group: Property

Description:

This property can be used to set or retrieve the name of the proportional sans serif font used for exporting of the final output document. This font is used when the HandlingMode property is set to IG_REC_FONT_HANDLING_MODE_AUTO.

Property Summary:

Data Type:
String
Default Value:
"Arial"
Access:
Read/Write
Settings:
Any font name available in the OS
Bits Per Pixel:
Sample:
Recognition


MonospacedSerifFontName

Group: Property

Description:

This property can be used to set or retrieve the name of the monospaced serif font used for exporting of the final output document. This font is used when the HandlingMode property is set to IG_REC_FONT_HANDLING_MODE_AUTO.

Property Summary:

Data Type:
String
Default Value:
"Courier New"
Access:
Read/Write
Settings:
Any font name available in the OS
Bits Per Pixel:
Sample:
Recognition


MonospacedSansSerifFontName

Group: Property

Description:

This property can be used to set or retrieve the name of the monospaced sans serif font used for exporting of the final output document. This font is used when the HandlingMode property is set to IG_REC_FONT_HANDLING_MODE_AUTO.

Property Summary:

Data Type:
String
Default Value:
"Courier New"
Access:
Read/Write
Settings:
Any font name available in the OS
Bits Per Pixel:
Sample:
Recognition


PredefinedFontName

Group: Property

Description:

This property can be used to set or retrieve the name of the predefined font used for exporting of the final output document. This font is used when the HandlingMode property is set to IG_REC_FONT_HANDLING_MODE_PREDEFINED.

Property Summary:

Data Type:
String
Default Value:
"Times New Roman"
Access:
Read/Write
Settings:
Any font name available in the OS
Bits Per Pixel:
Sample:
Recognition


PredefinedFontSize

Group: Property

Description:

This property defines the output font size which will be exported to the final output document. This value is only used when the FontHandling property is set to IG_REC_FONT_HANDLING_MODE_PREDEFINED. The character size is measured in points.

Property Summary:

Data Type:
Long
Default Value:
10
Access:
Read/Write
Settings:
Any positive Long
Bits Per Pixel:
Sample:
Recognition


IGRecOutputFormat

Group: Object

Description:

This object provides information on a particular output text format.

Interface:

IIGRecOutputFormat

Class Members:

CodePageType
property
Returns Code Page specific information about the output format
DefaultFileExtension
property
Default extension used by this converter for the final output document.
DLLFileName
property
Name of the DLL file that will be used when a conversion is to be made to that output format.
Name
property
Name of the specific text format.
OutputType
property
Returns converter category specific information about the output converter


CodePageType

Group: Property

Description:

This property can be used to get Code Page specific information (ANSI, ASCII, etc.) about the output converter specified in the Name property.

Property Summary:

Data Type:
enumIGRecCodePageType
Access:
Read only
Settings:
see enumIGRecCodePageType values
Sample:
Recognition


DefaultFileExtension

Group: Property

Description:

This property returns the default extension used by this converter for the final output document.

Property Summary:

Data Type:
String
Access:
Read only
Sample:
Recognition


DLLFileName

Group: Property

Description:

This property returns the name of the DLL file that will be used when a conversion is to be made to that output format.

Property Summary:

Data Type:
String
Access:
Read only
Sample:
Recognition


Name

Group: Property

Description:

This property returns the name of the specific text format. This name is used in the IGRecOutputManager object 's FileFormat property to set the output file format.

Property Summary:

Data Type:
String
Access:
Read only
Sample:
Recognition


OutputType

Group: Property

Description:

This property can be used to get converter category specific information about the output converter specified in the Name property. Each output converter is classified into one of these categories.

Property Summary:

Data Type:
enumIGRecOutputFormatType
Access:
Read only
Settings:
see enumIGRecOutputFormatType values
Sample:
Recognition


IGRecOutputManager

Group: Object

Description:

This object provides properties and methods to create the final output document from the recognition result.

Interface:

IIGRecOutputManager

Class Members:

Alignment
property
Specifies how the output converter should align text in the final output document.
FileFormat
property
Specifies the output file format for the final output document
FirstLineIndentMode
property
Specifies the indent mode of the first line of paragraphs in the final output document
FirstLineIndentValue
property
Specifies the custom indent value of the first line of paragraphs in the final output document
FontSettings
property
Provides access to font settings of the output document
FormatLevel
property
Returns or sets the output text detail level
GraphicsHandlingMode
property
Specifies how to embed graphical zones (if any) into the final output document
KeepBold
property
Specifies whether to retain the Bold text formatting
KeepItalic
property
Specifies whether to retain the Itallic text formatting
KeepUnderline
property
Specifies whether to retain the Underline text formatting
KeepFrames
property
Specifies whether to keep the recognized content of the zones in frames while exporting into the final output document
KeepPageBreaks
property
Specifies whether to keep page breaks in the output document
Language
property
Sets the language marking for the final output document
LineSpacingMode
property
Sets or returns the line spacing paragraph formatting setting of the converter
MarginSettings
property
Provieds access to marging settings of the document
PaperOrientation
property
Specifies the paper orientation for the final output document
PaperSize
property
Specifies the paper size for the final output document
ParagraphSpacingMode
property
Specifies extra space before paragraphs formatting setting.
ParagraphSpacingValue
property
Specifies the custom value for extra space before paragraphs formatting setting
SeparatorStrings
property
Provides access to separator strings settings for the output document
TableHandlingMode
property
Specifies whether cells or tabs should be used to create tables in the final output document
OutputToFile
method
Converts the recognition result of pages into a final output document file
OutputToMemory
method
Converts the recognition result of pages into final output format, saving the result of conversion to memory


Alignment

Group: Property

Description:

This property specifies how the converter should align text in the final output document.

Property Summary:

Data Type:
enumIGRecOutputAlignment
Default Value:
IG_REC_OUTPUT_ALIGNMENT_AUTO
Access:
Read/Write
Settings:
see enumIGRecOutputAlignment values
Bits Per Pixel:
Sample:
Recognition


FileFormat

Group: Property

Description:

This property specifies the output file format for the final output document. To specify an output text format, use the IGRecCtl.OutputFormats collection to get an IGRecOutputFormat object and assign the value of the Name property of that object to this FileFormat property.

Note that this property does not accept modified text format names (for example in uppercase or with or without leading and/or trailing spaces).

When the output file format is one supporting ASCII output format, the integrating application should explicitly set the FormatLevel property to IG_REC_OUTPUT_FORMAT_LEVEL_DROP_FORMAT. This is necessary - among other reasons - for correct table-zone handling. For more details see the topic Output Text Format List.

Property Summary:

Data Type:
String
Default Value:
the first output text format available in the component configuration
Access:
Read/Write
Settings:
See property description
Bits Per Pixel:
Sample:
Recognition


FirstLineIndentMode

Group: Property

Description:

This property specifies the indentation mode of the first line of paragraphs in the final output document. To set a custom indentation, set this property to IG_REC_OUTPUT_INDENT_MODE_CUSTOM, and specify the actual value with FirstLineIndentValue property.

Property Summary:

Data Type:
enumIGRecOutputIndentModes
Default Value:
IG_REC_OUTPUT_INDENT_MODE_AUTO
Access:
Read/Write
Settings:
see enumIGRecOutputIndentModes values
Bits Per Pixel:
Sample:
Recognition


FirstLineIndentValue

Group: Property

Description:

This property specifies the custom identation value for the first line of paragraphs in the final output document, measured in Twips. This property is effective only if FirstLineIndentMode is set to IG_REC_OUTPUT_INDENT_MODE_CUSTOM.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive Long value
Bits Per Pixel:
Sample:
Recognition


FontSettings

Group: Property

Description:

This property provides access to font settings for the output document.

Property Summary:

Data Type:
IIGRecOutputFontSettings
Default Value:
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


FormatLevel

Group: Property

Description:

This property returns or sets the output text detail level, which determines what formatting attributes will be kept in the final output document.

Property Summary:

Data Type:
enumIGRecOutputFormatLevels
Default Value:
IG_REC_OUTPUT_FORMAT_LEVEL_FULL_FORMAT
Access:
Read/Write
Settings:
see enumIGRecOutputFormatLevels values
Bits Per Pixel:
Sample:
Recognition


GraphicsHandlingMode

Group: Property

Description:

This property instructs the output converter how to embed graphical zones (if any) into the final output document.

The default value of this property, when the FormatLevel property is set to IG_REC_OUTPUT_FORMAT_LEVEL_DROP is IG_REC_OUTPUT_GRAPH_HANDLING_MODE_NONEGR. When FormatLevel property is set either to IG_REC_OUTPUT_FORMAT_LEVEL_FULL or IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL, the default value is IG_REC_OUTPUT_GRAPH_HANDLING_MODE_ORIGINAL.

Property Summary:

Data Type:
enumIGRecOutputGraphicsHandlingModes
Default Value:
See property description
Access:
Read/Write
Settings:
see enumIGRecOutputGraphicsHandlingModes values
Bits Per Pixel:
Sample:
Recognition


KeepBold

Group: Property

Description:

This property specifies whether to retain the Bold text formatting.

The default value for this property is True when FormatLevel is set to IG_REC_OUTPUT_FORMAT_LEVEL_FULL or IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL, otherwise it is False.

Property Summary:

Data Type:
Boolean
Default Value:
See description
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


KeepItalic

Group: Property

Description:

This property specifies whether to retain the Bold text formatting.

The default value for this property is True when FormatLevel is set to IG_REC_OUTPUT_FORMAT_LEVEL_FULL or IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL, otherwise it is False.

Property Summary:

Data Type:
Boolean
Default Value:
See description
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


KeepUnderline

Group: Property

Description:

This property specifies whether to retain the Bold text formatting.

The default value for this property is True when FormatLevel is set to IG_REC_OUTPUT_FORMAT_LEVEL_FULL or IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL, otherwise it is False.

Property Summary:

Data Type:
Boolean
Default Value:
See description
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


KeepFrames

Group: Property

Description:

This property specifies whether the recognized content of the zones should be kept in frames while exporting into the final output document. This feature can only be used with word processors which can handle frames, i.e. the FileFormat property belongs to the converter type category IG_REC_OUTPUT_FORMAT_TYPE_TRUEWP.

The default setting is True when the FormatLevel property is IG_REC_OUTPUT_FORMAT_LEVEL_FULL, otherwise False.

Property Summary:

Data Type:
Boolean
Default Value:
See description
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


KeepPageBreaks

Group: Property

Description:

Set this property to True to keep page breaks in the final output document. We recommend that you set this property to True, if the KeepFrames property is True.

The default setting is True when the FormatLevel property is IG_REC_OUTPUT_FORMAT_LEVEL_FULL, otherwise False.

Property Summary:

Data Type:
Boolean
Default Value:
See description
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


Language

Group: Property

Description:

This property sets the language marking for the final output document.

Usually, the language marking is stored in the header part of the final output document file, and typically used by word processor applications to select the proper spell checker and other language aids.

When this property is set to IG_REC_OUTPUT_LANGUAGE_AUTO, and no spelling language has been specified for the Document object, the first recognition language will be used. If a spelling language is set for the document, that language will be used. When neither a spelling nor a recognition language has been set, no language setting will be written into the final document.

Note that this property is used only for the final output document, and its value has no effect on the recognition language setting.

Property Summary:

Data Type:
enumIGRecOutputLanguages
Default Value:
IG_REC_OUTPUT_LANGUAGE_AUTO
Access:
Read/Write
Settings:
see enumIGRecOutputLanguages values
Bits Per Pixel:
Sample:
Recognition


LineSpacingMode

Group: Property

Description:

This property sets or returns the line spacing paragraph formatting setting of the output document.

Property Summary:

Data Type:
enumIGRecOutputLineSpacing
Default Value:
IG_REC_OUTPUT_LINE_SPACING_AUTO
Access:
Read/Write
Settings:
see enumIGRecOutputLineSpacing values
Bits Per Pixel:
Sample:
Recognition


MarginSettings

Group: Property

Description:

This property provieds access to marging settings of the output document

Property Summary:

Data Type:
IIGRecOutputMarginSettings
Default Value:
Access:
Read only
Settings:
see IIGRecOutputMarginSettings values
Bits Per Pixel:
Sample:
Recognition


OutputToFile

Group: Method

Description:

This method converts the recognition result of pages into a final output document file, according to the properties of the IGRecOutputManager object. FileName is the name of the final output document file; if this file already exists, it will be overwritten.

If the selected page range includes unrecognized pages, they will be left out of the conversion.

If StartPage is lower than zero (0) or EndPage is greater than Pages.Count-1, or EndPage is greater than StartPage or Steps is lower than 1, an error occurs.

This method raises TaskProgress event(s) of the Engine object.

Declaration:

Sub OutputToFile (FileName As String, StartPage As Long, EndPage
As Long, Steps As Long)

Parameters:

FileName
Filename to convert the recognition result to.
StartPage
Starting page for the conversion
EndPage
Last page of the conversion
Steps
Stepping between pages

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


OutputToMemory

Group: Method

Description:

This method converts the recognition result into output document and returns it as an array of bytes.

If the selected page range includes unrecognized pages, they will be left out of the conversion.

If StartPage is lower than zero (0) or EndPage is greater than Pages.Count-1, or EndPage is greater than StartPage or Steps is lower than 1, an error occurs.

This method raises TaskProgress event(s) of the Engine object.

Declaration:

Sub OutputToMemory (StartPage As Long, EndPage As Long, Steps As
Long) As IIGIntegerArray

Parameters:

StartPage
First page to convert
EndPage
Last page to convert
Steps
Stepping between pages

Bits Per Pixel:

N/A

Return Value:

New instance of IGIntegerArray object, containng the output document.

Sample:

Recognition


PaperOrientation

Group: Property

Description:

This property specifies the paper orientation for the final output document.

This property is not used if the PaperSize property is to IG_REC_OUTPUT_PAPER_SIZE_NONE or to IG_REC_OUTPUT_PAPER_SIZE_AUTO.

Property Summary:

Data Type:
enumIGRecOutputPaperOrientation
Default Value:
IG_REC_OUTPUT_PAPER_ORIENT_PORTRAIT
Access:
Read/Write
Settings:
see enumIGRecOutputPaperOrientation values
Bits Per Pixel:
Sample:
Recognition


PaperSize

Group: Property

Description:

This property specifies the paper size for the final output document.

This property is used only when the FormatLevel property is set to either IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL or IG_REC_OUTPUT_FORMAT_LEVEL_DROP. If the TextLevel property is IG_REC_OUTPUT_FORMAT_LEVEL_FULL, then the output page size will be the same as that of the original document.

The default value for this property when the FormatLevel property is set to IG_REC_OUTPUT_FORMAT_LEVEL_FULL is IG_REC_OUTPUT_PAPER_SIZE_AUTO, otherwise IG_REC_OUTPUT_PAPER_SIZE_PAPER_A4.

Property Summary:

Data Type:
enumIGRecOutputPaperSize
Default Value:
See description
Access:
Read/Write
Settings:
see enumIGRecOutputPaperSize values
Bits Per Pixel:
Sample:
Recognition


ParagraphSpacingMode

Group: Property

Description:

This property specifies the amount of extra space that should be left before paragraphs.

To use custom spacing, set this property to IG_REC_PARAGRAPH_SPACING_CUSTOM, and specify the spacing value in the ParagraphSpacingValue property.

Property Summary:

Data Type:
enumIGRecParagraphSpacingModes
Default Value:
IG_REC_PARAGRAPH_SPACING_MODE_AUTO
Access:
Read/Write
Settings:
see enumIGRecParagraphSpacingModes values
Bits Per Pixel:
Sample:
Recognition


ParagraphSpacingValue

Group: Property

Description:

This property specifies the amount of extra space that should be left before paragraphs in the output document. It is used if ParagraphSpacingMode is IG_REC_PARAGRAPH_SPACING_CUSTOM.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any positive Long value
Bits Per Pixel:
Sample:
Recognition


SeparatorStrings

Group: Property

Description:

This property provides access to separator strings settings for the output document.

Property Summary:

Data Type:
IIGRecOutputSeparatorStrings
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


TableHandlingMode

Group: Property

Description:

This property specifies whether cells or tabs should be used to create tables in the final output document.

The default value of this property when FormatLevel is set to IG_REC_OUTPUT_FORMAT_LEVEL_FULL is IG_REC_OUTPUT_TABLE_HANDL_MODE_USECELLS. Otherwise, the default value is IG_REC_OUTPUT_TABLE_HANDL_MODE_USETABS.

Property Summary:

Data Type:
enumIGRecOutputTableHandlingModes
Default Value:
See description
Access:
Read/Write
Settings:
see enumIGRecOutputTableHandlingModes values
Bits Per Pixel:
Sample:
Recognition


IGRecOutputMarginSettings

Group: Object

Description:

This object provides access to margin settings of the IGRecOutputManager object.

Interface:

IIGRecOutputMarginSettings

Class Members:

Bottom
property
Bottom margin
HandlingMode
property
Margin handling mode
Left
property
Left margin
Right
property
Right margin
Top
property
Top margin


Bottom

Group: Property

Description:

This property specifies the bottom margin for the output document, measured in TWIPS. This value is exported to the final output document. It is used only when the MarginHandling property is set to IG_REC_FONT_HANDLING_MODE_PREDEFINED.

The default value for this property is 1440 Twips (1 inch).

Property Summary:

Data Type:
Long
Default Value:
1440
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
Sample:
Recognition


HandlingMode

Group: Property

Description:

This property defines how the margins will be exported to the final output document.

The default value for this property when the FormatLevel property is set to IG_REC_OUTPUT_FORMAT_LEVEL_FULL is IG_REC_MARGIN_HANDLING_MODE_AUTO, otherwise IG_REC_MARGIN_HANDLING_MODE_PREDEFINED.

Property Summary:

Data Type:
enumIGRecMarginHandlingModes
Default Value:
See description
Access:
Read/Write
Settings:
see enumIGRecMarginHandlingModes values
Bits Per Pixel:
Sample:
Recognition


Left

Group: Property

Description:

This property specifies the left margin for the output document, measured in TWIPS. This value is exported to the final output document. It is used only when the MarginHandling property is set to IG_REC_FONT_HANDLING_MODE_PREDEFINED.

The default value for this property is 1440 Twips (1 inch).

Property Summary:

Data Type:
Long
Default Value:
1440
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
Sample:
Recognition


Right

Group: Property

Description:

This property specifies the right margin for the output document, measured in TWIPS. This value is exported to the final output document. It is used only when the MarginHandling property is set to IG_REC_FONT_HANDLING_MODE_PREDEFINED.

The default value for this property is 1440 Twips (1 inch).

Property Summary:

Data Type:
Long
Default Value:
1440
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
Sample:
Recognition


Top

Group: Property

Description:

This property specifies the top margin for the output document, measured in TWIPS. This value is exported to the final output document. It is used only when the MarginHandling property is set to IG_REC_FONT_HANDLING_MODE_PREDEFINED.

The default value for this property is 1440 Twips (1 inch).

Property Summary:

Data Type:
Long
Default Value:
1440
Access:
Read/Write
Settings:
Any positive value
Bits Per Pixel:
Sample:
Recognition


IGRecOutputSeparatorStrings

Group: Object

Description:

This object provides access to separator string settings of the IGRecOutputManager object.

Interface:

IIGRecOutputSeparatorStrings

Class Members:

BeforeMissingSymbol
property
Specifies the string to be inserted each missing symbol
BeforeRejectionSymbol
property
Specifies the string to be inserted before each rejection symbol
BeforeSuspectedCharacter
property
Specifies the string to be inserted before each suspect character
EndofLine
property
Specifies the string to be inserted at the end of each line
EndofPage
property
Specifies the string to be inserted at the end of each page
EndofParagraph
property
Specifies the string to be inserted at the end of each paragraph
EndofSuspectedWord
property
Specifies the string to be inserted after each suspect word
EndofTableRow
property
Specifies the string to be inserted at the end of each table row
EndofZone
property
Specifies the string to be inserted at the end of each zone
StartofLine
property
Specifies the string to be inserted at the beginning of each line
StartofPage
property
Specifies the string to be inserted at the beginning of each page
StartofParagraph
property
Specifies the string to be inserted at the end of each paragraph
StartofSuspectedWord
property
Specifies the string to be inserted before each suspected word
StartofTableRow
property
Specifies the string to be inserted before each table row
StartofZone
property
Specifies the string to be inserted at the end of each zone


BeforeMissingSymbol

Group: Property

Description:

This property specifies a user-defined UNICODE string that will be inserted before each missing symbol in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


BeforeRejectionSymbol

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted before each rejection symbol in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


BeforeSuspectedCharacter

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted before each suspect character in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


EndofLine

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the end of each line in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


EndofPage

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the end of each page in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


EndofParagraph

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the end of each paragraph in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


EndofSuspectedWord

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the end of each suspected word in the final output document (i.e. before the words not approved by the Checking subsystem).

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


EndofTableRow

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the end of each table row in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


EndofZone

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the end of each zone in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


StartofLine

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the beginning of each line in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


StartofPage

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the beginning of each page in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


StartofParagraph

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the beginning of each paragraph in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


StartofSuspectedWord

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted at the beginning of each suspected word in the final output document (i.e. after the words not approved by the Checking subsystem).

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


StartofTableRow

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted before each table row in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


StartofZone

Group: Property

Description:

This property specifies a user-defined UNICODE string to be inserted before each zone in the final output document.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


IGRecPage

Group: Object

Description:

This object represents a page in a document. It is a container object which binds the image and the recognized text. While the presence of the image is always mandatory, the presence of the recognized text is optional.

Interface:

IIGRecPage

Class Members:

Characters
property
Provides access to the recognition result as a collection of IGRecCharacter objects
Image
property
Returns the IGRecPageImage object associated with the page
IsRecognized
property
Returns True, if the page has been recognized
PageNumberInDocument
property
Returns the index of the page within the document.
Statistics
property
Provides access to page statistics.
UserNote
property
User note
AddUserDataFrom
method
Adds page-specific custom data
CreatePDFPage
method
Creates a new page in the given PDF document and populates it with recognized text and image.
GetUserDataCopy
method
Returns page-specific custom data
IsImageModified
method
Tells whether the page image was modified since loaded
IsModified
method
Tells whether the page was modified since loaded
IsTextModified
method
Tells whether the page text was modified since the page was either loaded or recognized
LoadSettings
method
Loads page settings from the IPRO document file
PopulatePDFPage
method
Populates an existing PDF page in a PDF document with recognized text and/or image.
Recognize
method
Recognizes the page
SaveSettings
method
Saves page settings to the IPRO document file
SetImageModified
method
Sets the image-modified flag.
SetTextModified
method
Sets the text-modified flag.


AddUserDataFrom

Group: Method

Description:

This method saves page-specific custom data to the IPRO document file.

The data passed via the UserData parameter is stored for the page in the document file under Name. The UserData parameter must contain an array of bytes.

Existing data is overwritten unless the Append flag has been set to True.

Declaration:

Sub AddUserDataFrom (Name As String, UserData As
IIGIntegerArray, Append As Boolean)

Parameters:

Name
Identifying name for the data
UserData
A byte array containing the user data
Append
Tells whether to append or overwrite existing data

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Characters

Group: Property

Description:

This property provides access to the recognition result of the page as a collection of Character objects.

Property Summary:

Data Type:
IGRecFixedCollection
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


CreatePDFPage

Group: Method

Description:

This method creates a new page in the given PDF document and populates it with recognized text and image.

The first parameter is the component interface of the PDF control to be used for PDF creation. For example, IGPDFCtl1.ComponentInterface.

The second parameter is an existing IGDocument to which the new page will be appended. The IGDocument does not require any special PDF-related initialization beforehand, but must not contain any non-PDF pages.

The third parameter is optional and can be used to specify options. Pass Nothing to use default options, which creates a PDF page containing the recognized image along with hidden text elements suitable for searching, highlighting, selection, copying and pasting, etc.

Declaration:

CreatePDFPage(PDFComponent As IIGComponent, OutputDoc As
IGDocument, Options As IGRecPDFOutputOptions)

Parameters:

PDFComponent
Component interface of the PDF control.
OutputDoc
Existing IGDocument to which the new page will be appended.
Options
IGRecPDFOutputOptions options.

Bits Per Pixel:

N/A

Return Value:

None.

Sample:

Recognition


GetUserDataCopy

Group: Method

Description:

This method returns the page-specific custom data identified by the Name parameter from the IPRO document file. The returned IGIntegerArray will contain an IGIntegerArray of bytes, which holds the custom information read from the document. It is up to the integrating application to interpret the contents of the returned array.

Declaration:

Sub GetUserDataCopy (Name As String) As IIGIntegerArray

Parameters:

Name
Identifying name for the user data

Bits Per Pixel:

N/A

Return Value:

New instance of IGIntegerArray object containing the user data

Sample:

Recognition


Image

Group: Property

Description:

This property returns the IGRecPageImage object attached to the page.

Property Summary:

Data Type:
IIGRecPageImage
Default Value:
Access:
Read only
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


IsImageModified

Group: Method

Description:

This method returns whether the image of the page was modified since the page was loaded. Modifications include any of the following:

- different image operations (deskewing, despeckling, rotating, inverting, etc.),

- zoning operations.

Declaration:

Sub IsImageModified() As Boolean

Bits Per Pixel:

N/A

Return Value:

True - image is modified, False - otherwise.

Sample:

Recognition


IsModified

Group: Method

Description:

This method returns whether the page was modified since loaded, i.e. either the image or the recognized text has been changed.

Declaration:

Sub IsModified() As Boolean

Bits Per Pixel:

N/A

Return Value:

True or False.

Sample:

Recognition


IsRecognized

Group: Property

Description:

This property returns True, if the page has been recognized, i.e. when recognition result is available for the page.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read only
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


IsTextModified

Group: Method

Description:

This method returns True if the text was modified since the page was either loaded or recognized.

Declaration:

Sub IsTextModified() As Boolean

Bits Per Pixel:

N/A

Return Value:

If True - text is modified, False otherwise.

Sample:

Recognition


LoadSettings

Group: Method

Description:

This method loads the settings for the page previously saved into the IPRO document file. Using this method will override the document level settings for the page.

Declaration:

Sub LoadSettings()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


PageNumberInDocument

Group: Property

Description:

This property returns the index of the page within the document.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Any positive value
Bits Per Pixel:
Sample:
Recognition


PopulatePDFPage

Group: Method

Description:

This method populates an existing PDF page in a PDF document with recognized text and/or image. The content of the existing PDF page is preserved and supplemented.

The first parameter is the component interface of the PDF control to be used for PDF creation. For example, IGPDFCtl1.ComponentInterface.

The second and third parameters supply the PDF document and page to be populated. The given PDF page must belong to the given PDF document. Also, the dimensions of the PDF page should be appropriate. For example, the aspect ratio of the PDF page should match that of the recognized image, although recognized data will be stretched to fit the PDF page if necessary.

The fourth parameter is optional and can be used to specify options. Pass Nothing to use default options, which populates the given PDF page with only hidden text elements suitable for searching, highlighting, selection, copying and pasting, etc.

Declaration:

Sub PopulatePDFPage(PDFComponent As IIGComponent, OutputDoc As
IGDocument, OutputPage As IGPage, Options As
IGRecPDFOutputOptions)

Parameters:

PDFComponent
Component interface of the PDF control.
OutputDoc
Existing IGDocument containing the PDF page to be populated.
OutputPage
Existing PDF page to be populated with recognized data.
Options
IGRecPDFOutputOptions options.

Bits Per Pixel:

N/A

Return Value:

None.

Sample:

Recognition


Recognize

Group: Method

Description:

This method can be used to recognize the page. The recognition result will be automatically saved into the IPRO document file. After the recognition, the IGRecOutputManager object can be used to create a final output document.

If you try to call this method on a page that has no image, an error occurs. If the image attached to the page is not a B/W image, the image will be converted to bitonal, according to the SecondaryConversionMode property of the IGRecPreprocessingSettings object.

The method utilizes the zone information to activate the appropriate recognition module on each zone. Each recognition module recognizes the image parts assigned to it in the Zones collection.

If there are no zones on the image, i.e. the Zones property of the Image object is empty, the Locate method of the IGRecZonesCollection object is automatically called (auto-zoning).

Since the recognition algorithm may use the services of the checking subsystem, the application should specify the CheckingEnabled, CorrectionEnabled, SpellLanguage properties of the Document object, and other checking related settings before calling this method.

The checking of the recognized zone contents may consist of any combination of three facilities:

·a supplied Language dictionary,

·a User dictionary containing literals and/or regular expressions,

·a user-written checking event handler.

If a recognition module is not able to recognize an object on the image (i.e. character, bar code or checkmark etc.), this object will be marked as a rejected one. It will become marked by a rejection symbol during conversion to the final output document.

The accuracy of the recognition depends on several document settings (zone settings, recognition module applied, Character Set setting, spell checking, User Dictionary checking, etc.).

Declaration:

Sub Recognize()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SaveSettings

Group: Method

Description:

This method saves page settings to the IPRO document file.

Declaration:

Sub SaveSettings()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetImageModified

Group: Method

Description:

This method sets the image-modified flag.

Declaration:

Sub SetImageModified(State As Boolean)

Parameters:

State
New value of the image-modified flag.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetTextModified

Group: Method

Description:

This method sets the text-modified flag.

Declaration:

Sub SetTextModified(State As Boolean)

Parameters:

State
New value of the text-modified flag.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Statistics

Group: Property

Description:

This property returns the Statistics object of the page.

Property Summary:

Data Type:
IGRecPageStatistics
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


UserNote

Group: Property

Description:

This property can be used to add or retrieve a user note to a page. The maximum length of the note is 64 characters.

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Any string value
Bits Per Pixel:
Sample:
Recognition


IGRecPageImage

Group: Object

Description:

The Image object is the graphical representation of the page as loaded from an image file, scanned from the scanner or created from the application's memory. This object provides the collection of methods and properties to allow image manipulation, conversion and other transformations.

Interface:

IIGRecPageImage

Class Members:

Zones
property
Returns the Zones collection of the image.
ConvertCoordinates
method
Converts coordinates from original to preprocessed image and vise versa
Deskew
method
Deskew the image using ths specified angle.
Despeckle
method
Despeckles the image
DetectSkew
method
Detects image skew and orientation
ExportToIGPage
method
Exports the image to IGPage object
GetDIBInfo
method
Returns DIB info of the image
ImportFromIGPage
method
Imports the image from IGPage object
Invert
method
Inverts the image
IsBlank
method
Returns True if the image is a blank one
Lock
method
Locks the image in memory
Orient
method
Rotates and flips the image
Preprocess
method
Preprocesses the image according to preprocessing settings
ReduceToBitonal
method
Reduces the image to bitonal
Unlock
method
Allows the image to be discarded from memory


ConvertCoordinates

Group: Method

Description:

This method converts a point from preprocessed image coordinates to original image coordinates, and vise versa.

This might be necessary, since images often undergo different image preprocessing steps, such as deskewing, rotation, etc.

Declaration:

Sub ConvertCoordinates(Point As IIGPoint, Mode As
enumIGRecConvModes) As IIGPoint

Parameters:

Point
Input coordinates of a point
Mode
Direction of the conversion

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Deskew

Group: Method

Description:

This method performs immediate deskewing on the image.

The Slope parameter specifies the slope value to be applied to the image during this image deskewing operation. The value given here is the number of pixels of vertical ascent on 1000 horizontal pixels. That is, the tangent of the deskew angle multiplied by 1000. The slope value must be in the range of -577 to 577, which means the maximum slope value is 30 degrees. The toolkit ignores skew values corresponding to 0.5 degrees or less.

When this method is called, the coordinates of all defined zones in the zone list will be automatically recalculated. The DetectSkew method can detect the skew of the image, but only up to 15 degrees.

Declaration:

Sub Deskew (Slope As Long)

Parameters:

Slope
Slope value to be applied to the image

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Despeckle

Group: Method

Description:

This method performs immediate adaptive noise removal on the bitonal image specified. If this method is called for a non-bitonal image, an error occurs.

The algorithm will run on any image resolution, please note however that it is optimized for images with at least 280 dpi resolution.

Declaration:

Sub Despeckle ()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


DetectSkew

Group: Method

Description:

This method detects skew and orientation of the image. For its proper operation this method assumes a good quality image and it requires IG_REC_ORIENTATION_MODE_AUTO setting of the Rotation property of the Document object and IG_REC_INVERSION_DESKEW_AUTO setting in the Deskew property of the IGRecPreprocessingSettings object, otherwise the method will provide the current setting values.

The returned skew (and rotation) values are those by which the image should be deskewed (and rotated) to reach the orientation, which the recognition engine considers correct.

The detected value provided in the Slope member of the IGRecSkewInfo object is the number of pixels of vertical ascent on 1000 horizontal pixels. That is, the tangent of the deskew angle multiplied by 1000. This method can be used for detecting the skew of the image in the range of one half to 15 degrees.

Declaration:

Sub DetectSkew ( ) As IIGRecSkewInfo

Bits Per Pixel:

N/A

Return Value:

New instance of IGRecSkewInfo object.

Sample:

Recognition


ExportToIGPage

Group: Method

Description:

This method exports pixel data from IGRecPage into IGPage.

Declaration:

Sub ExportToIGPage (Page As IIGPage)

Parameters:

Page
IGPage object to which the recognition image should be exported

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


GetDIBInfo

Group: Method

Description:

This method returns DIB info of the IGRecPageImage object.

Declaration:

Sub GetDIBInfo() As IIGDIBInfo

Bits Per Pixel:

N/A

Return Value:

New instance of IGDIBInfo object.

Sample:

Recognition


ImportFromIGPage

Group: Method

Description:

This method imports pixel data from IGPage into IGRecPage's image.

Declaration:

Sub ImportFromIGPage (Page As IIGPage)

Parameters:

Page
IGPage object to import pixel data from

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Invert

Group: Method

Description:

This method inverts the specified rectangular area of the image. If Rect specifies an empty rectangle, the whole image is processed.

Declaration:

Sub Invert (Rect As IIGRectangle)

Parameters:

Rect
Rectangle to be inverted

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


IsBlank

Group: Method

Description:

This method returns True, if the image is a blank image.

Declaration:

Sub IsBlank() As Boolean

Bits Per Pixel:

N/A

Return Value:

True, False

Sample:

Recognition


Lock

Group: Method

Description:

This method locks the image in memory until a call to the Unlock method releases the image. While the Image object of a page is always available, this is not true for the actual bitmap data. To access any object or any functionality in connection with an actual image (e.g. Zones collection, a Zone object, image manipulation methods, etc.) the image should be locked in memory. If the image is not locked, every such operation will cause the engine to load the image, perform the operation and finally unload the image. This can be a very time-consuming task, with a serious impact on performance. The image of the active page (as in the ActivePage property of the Document object) is always kept in memory.

Declaration:

Sub Lock()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Orient

Group: Method

Description:

This method rotates and flips the image. If there are zones present for the image, their coordinates will be recalculated, i.e. they will be rotated, too.

Declaration:

Sub Orient (OrientMode As enumIGOrientationModes)

Parameters:

OrientMode
Orientation to be applied to the image

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Preprocess

Group: Method

Description:

This method performs a series of image pre-processing steps in order to enhance the quality of the image before starting its recognition. This function deskews, rotates, converts and inverts the image according to property settings in the Document object; it can also improve image quality of draft mode faxes.

This method raises a TaskProgress event in the IGRecCtl object.

Declaration:

Sub Preprocess ()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


ReduceToBitonal

Group: Method

Description:

This method is used to convert the image to bitonal from grayscale or color. If this method is called for a bitonal image, an error occurs.

Declaration:

Sub ReduceToBitonal(mode As enumIGRecImgProcResultModes,
Conversion As enumIGRecSecondaryReductionModes, ResEnhancement
As enumIGRecResEnhancementModes, Brightness As Long, Threshold
As Long)

Parameters:

mode
Tells whether the new bitonal image shall replace the original one, shall be added to the document as a new page, or added to the document and locked in memory.
Conversion
Specifies the conversion mode for the operation.
ResEnhancement
Specifies the resolution enhancement setting to be applied during the conversion.
Brightness
Specifies the brightness of the image. The valid range is 0 to 100, where 0 means the darkest and 100 means the lightest resulting image. Has effect only if Conversion is set to IG_REC_SEC_REDUCTION_MODE_AUTO
Threshold
Specifies the threshold value to be applied during the operation. The valid range is from 0 to 255. Has effect only if Conversion is IG_REC_SEC_REDUCTION_MODE_SET.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Unlock

Group: Method

Description:

This method releases an image after some operations. If there are no more locks on the image, it will be unloaded from memory and its memory will be deallocated.

Declaration:

Sub Unlock()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Zones

Group: Property

Description:

This property returns the Zones collection of the image.

Property Summary:

Data Type:
IIGRecZoneCollection
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


IGRecPageCollection

Group: Object

Description:

This object provides access to pages of a document.

Interface:

IIGRecPageCollection

Class Members:

Count
property
Returns the number of pages in the collection
Item[i]
property
Provides access to a page by its index
AddNew
method
Adds a new empty page to the document
Insert
method
Inserts a new page to the document
Move
method
Moves the page located at OldPosition to NewPosition
Remove
method
Removes the specified page
SetActivePage
method
Makes the specified page active
SetActivePageToFirst
method
Makes the first page of the document active
SetActivePageToLast
method
Makes the last page of the document active
SetActivePageToNext
method
Makes the next page of the document active
SetActivePageToPrev
method
Makes the previous page of the document active
SetActivePageToTo
method
Makes the specified page active.


AddNew

Group: Method

Description:

This method creates an empty page, appends it to the collection and returns it to the user.

Declaration:

Sub AddNew (ppRes As IIGRecPage)

Parameters:

ppRes
The newly created IGRecPage object

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Count

Group: Property

Description:

This property returns the number of pages in the collection

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


Item[i]

Group: Property

Description:

This indexed property provides access to IGRecPage objects stored in the collection.

Property Summary:

Data Type:
IIGRecPage
Default Value:
Access:
Read only
Settings:
index can be [0.. Count -1]
Bits Per Pixel:
Sample:
Recognition


Insert

Group: Method

Description:

This method inserts a new page at the specified position.

If Position equals to Count, the effect of the page insertion is the same as if the application had called the AddNew method.

Declaration:

Sub Insert (Position As Long)

Parameters:

Position
Position at which the page should be inserted.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Move

Group: Method

Description:

Moves the page located at OldPosition to NewPosition, so after the move operation the page will be located at NewPosition. The valid range for the positions are between 0 and Count-1.

Declaration:

Sub Move (OldPosition As Long, NewPosition As Long)

Parameters:

OldPosition
Old position of the page
NewPosition
New position of the page

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Remove

Group: Method

Description:

This method removes a page from the collection.

Declaration:

Sub Remove (Index As Long)

Parameters:

Index
Index of the page to remove

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetActivePage

Group: Method

Description:

This method makes the specified page active. The valid range for Position is between 0 and Count-1.

Declaration:

Sub SetActivePage(Index As Long)

Parameters:

Index
Index of the new active page

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetActivePageToFirst

Group: Method

Description:

This method makes the first page of the collection active.

Declaration:

Sub MoveFirst()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetActivePageToLast

Group: Method

Description:

This method makes the last page of the collection active.

Declaration:

Sub MoveLast()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetActivePageToNext

Group: Method

Description:

This method makes the next page of the collection active.

Declaration:

Sub MoveNext()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetActivePageToPrev

Group: Method

Description:

This method makes the previous page of the collection active.

Declaration:

Sub MovePrev()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SetActivePageToTo

Group: Method

Description:

This method makes the specified page active. The valid range for Position is between 0 and Count-1.

Declaration:

Sub MoveTo (Index As Long)

Parameters:

Index
Index of the new active page

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


IGRecPageStatistics

Group: Object

Description:

This object represents page recognition statistics. The IGRecStatistics object holds statistical information (general, accuracy and timing information) about the recognition of the page. If the page has not been recognized, all properties of its Statistics object will return zero (0).

The accuracy of the timing values provided depends on the resolution of the system timer, i.e. the timing resolution for Windows 98 is approximately 55ms, for Windows NT or Windows 2000 it is approximately 10ms.

A value of zero (0) in a timing field indicates that either the concerned process hasn't been performed or it has been performed but resulted in zero due to the timing resolution.

Please also note that the toolkit doesn't count any time spent in the TaskProgress event(s) in the Engine object.

The reported ReadTime property depends on at what phase of the processing the property was asked, i.e. whether it was inquired just after the recognition or after the conversion into the final output document. Producing the final output document (especially in case of large document) may take a significant amount of time.

Interface:

IIGRecPageStatistics

Class Members:

CharCount
property
Number of recognized characters on the image.
CorrectedWordCount
property
Obsolete.
DecompTime
property
Time spent on the image's page-layout decomposition, i.e. auto-zoning.
PreProcTime
property
Time spent on image pre-processing
ReadTime
property
Time spent on the image from the start of its recognition process.
RecognitionTime
property
Time spent on recognition of the image content
RejectedCharCount
property
Number of rejected characters on the image.
WordCount
property
Number of recognized words on the image.


CharCount

Group: Property

Description:

This property returns the number of recognized characters on the image.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


CorrectedWordCount

Group: Property

Description:

This property is obsolete and is not currently used.This property is obsolete and is not currently used.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Recognition


DecompTime

Group: Property

Description:

This property returns the time spent on the image's page-layout decomposition, i.e. auto-zoning. Measured in milliseconds.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


PreProcTime

Group: Property

Description:

This property returns the time spent on image pre-processing. Measured in milliseconds.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


ReadTime

Group: Property

Description:

This property returns the time spent on the image from the start of its recognition process. This includes the time RecognitionTime and further steps as follows: time necessary for sorting the output coming from the different recognition modules, the time spent with the checking subsystem, and the time required to produce the recognition result (e.g. the time necessary to write the recognition result into the recognition data file).

The ReadTime may also include the time needed for producing the final output document (supposing that the statistical information was requested AFTER converting to the final output document).

Measured in 1/1000 secs.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


RecognitionTime

Group: Property

Description:

This property returns the time spent on recognition of the image content. This is the pure recognition time that the image spent in the different recognition modules involved in the recognition process of the image.

Measured in 1/1000 secs.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


RejectedCharCount

Group: Property

Description:

This property returns the number of rejected characters on the image.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


WordCount

Group: Property

Description:

This property returns the number of recognized words on the image.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


IGRecPDFOutputOptions

Group: Object

Description:

This object specifies options for creating a PDF page from recognition output. It is used with the IGRecPage method CreatePDFPage.

Interface:

IIGRecPDFOutputOptions

Class Members:

ForceProportional
property
Forces all text to use proportional fonts (no monospaced font detection).
ImageCompression
property
Compression to use for image (only used if SpecifyImageCompression is True).
PreserveGraphics
property
Preserves graphics (only applicable if VisibleText is true and VisibleImage is false). Reserved for future use.
SpecifyImageCompression
property
Specifies how to set image compression.
VisibleImage
property
Creates the recognized image as an image covering the whole page.
VisibleText
property
Creates visible text elements (otherwise, the text is hidden if an image is also created).


ForceProportional

Group: Property

Description:

If True, forces all text to use proportional fonts (no monospaced font detection).

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
Recognition


ImageCompression

Group: Property

Description:

This property specifies compression to use for image (only used if SpecifyImageCompression is True)

Property Summary:

Data Type:
enumIGCompressions
Default Value:
IG_COMPRESSION_NONE
Access:
Read/Write
Settings:
any value of enumIGCompressions
Bits Per Pixel:
N/A
Sample:
Recognition


PreserveGraphics

Group: Property

Description:

This property, if True preserves graphics (only applicable if VisibleText is True and VisibleImage is false).

NOTE: Reserved for future use.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
Recognition


SpecifyImageCompression

Group: Property

Description:

This property determines whether the image compression should be set based on ImageCompression property (True) or based on the bit depth (False).

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
Recognition


VisibleImage

Group: Property

Description:

This property when True creates the recognized image as an image covering the whole page.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
Recognition


VisibleText

Group: Property

Description:

This property, when True, creates visible text elements (otherwise, the text is hidden if an image is also created).

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
Recognition


IGRecPreprocessingSettings

Group: Object

Description:

This object provides access to preprocessor settings of the CIGRecDocument object.

Interface:

IIGRecPreprocessingSettings

Class Members:

DeskewMode
property
Specifies the image deskewing mode
DespeckleEnabled
property
Specifies the despeckle mode
InversionMode
property
Specifies the inversion mode
PrimaryReductionMode
property
Specifies primary color reduction mode
ReductionBrightness
property
Specifies the brignthess for image color reduction
ReductionThreshold
property
Specifies the threshold for image color reduction
ResEnhancementMode
property
Specifies the image resolution enhancement mode
Rotation
property
Specifies the rotation mode
SecondaryReductionMode
property
Specifies the secondary color reduction mode
Skew
property
Specifies the skew value to be applied


DeskewMode

Group: Property

Description:

This property allows you to get/set deskew mode.

Property Summary:

Data Type:
enumIGRecDeskewModes
Default Value:
Access:
Read/Write
Settings:
see enumIGRecDeskewModes values
Bits Per Pixel:
Sample:
Recognition


DespeckleEnabled

Group: Property

Description:

This property determines if despeckle is enabled or not. It also affects auto-zoning and recognition processes.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


InversionMode

Group: Property

Description:

This property allows you to get/set mode of inversion.

Property Summary:

Data Type:
enumIGRecInversionModes
Default Value:
Access:
ReadWrite
Settings:
see enumIGRecInversionModes values
Bits Per Pixel:
Sample:
Recognition


PrimaryReductionMode

Group: Property

Description:

This property specifies which image reduction mode will be used during the primary image conversion step.

While loading an image into a page of the document, an on-the-fly image conversion is performed according to this setting. This setting will influence what kind of image will be created in the recognition engine's memory.

Property Summary:

Data Type:
enumIGRecPrimaryReductionModes
Default Value:
Access:
Read/Write
Settings:
see enumIGRecPrimaryReductionModes values
Bits Per Pixel:
Sample:
Recognition


ReductionBrightness

Group: Property

Description:

This property is used to fine tune the threshold calculation in the automatic adaptive image conversion mode (i.e. when the Auto mode is used for the PrimaryReductionMode or SecondaryReductionMode). This will influence the brightness of the resulting B/W image.

The valid range is between zero (0) and 100, inclusively, where 0 will result in a lighter image and 100 will result in a darker one.

Property Summary:

Data Type:
Long
Default Value:
50
Access:
Read/Write
Settings:
0...100
Bits Per Pixel:
Sample:
Recognition


ReductionThreshold

Group: Property

Description:

This property sets or returns the threshold value of an image reduction to a bitonal image. This parameter has an effect only when the PrimaryReductionMode is set to IG_REC_PRIM_REDUCTION_MODE_SET (or SecondaryReductionMode set to IG_REC_SEC_REDUCTION_MODE_SET).

Property Summary:

Data Type:
Long
Default Value:
128
Access:
Read/Write
Settings:
0...255
Bits Per Pixel:
Sample:
Recognition


ResEnhancementMode

Group: Property

Description:

This property specifies the resolution enhancement mode. It is applied only to non-bitonal images. The value specifies whether the image resolution enhancement is to be activated during the secondary image conversion, i.e. during image pre-processing, auto-zoning or recognition. The resolution enhancement algorithm results in a bitonal image whose resolution is doubled - compared to the original image.

When the application calls an API method whose operation requires internally a bitonal image, e.g. IGRecZoneCollection.Locate, IGRecPageImage.Preprocess, or IGRecPage.Recognize methods, non-bitonal images automatically undergo an implicit secondary image conversion. This implicit conversion might additionally include resolution enhancement of the image, depending on the value of this property. Note that the resulting bitonal image is not available to the application.

Property Summary:

Data Type:
enumIGRecResEnhancementModes
Default Value:
IG_REC_RES_ENHANCEMENT_AUTO
Access:
Read/Write
Settings:
see enumIGRecResEnhancementModes values
Bits Per Pixel:
Sample:
Recognition


Rotation

Group: Property

Description:

This property sets or returns which image rotation mode will be used during the image preprocessing, i.e. when the Preprocess method of the Image object is called.

The automatic image rotation setting (IG_REC_ROTATION_MODE_AUTO) can only be used with good quality machine printed texts, but not with images containing 9-pin dot-matrix text or other non-machine printed text.

Property Summary:

Data Type:
enumIGRecRotationModes
Default Value:
IG_REC_ROTATION_MODE_AUTO
Access:
Read/Write
Settings:
see enumIGRecRotationModes values
Bits Per Pixel:
Sample:
Recognition


SecondaryReductionMode

Group: Property

Description:

This property sets or returns the secondary image conversion mode for the document. Secondary image conversion occurs implicitly when you call a method whose operation requires a bitonal image with an image that is not a bitonal one.

When an implicit secondary image conversion takes place, the resulting bitonal image will not be available to the application.

Property Summary:

Data Type:
enumIGRecSecondaryReductionModes
Default Value:
IG_REC_SEC_REDUCTION_MODE_AUTO
Access:
Read/Write
Settings:
see enumIGRecSecondaryReductionModes values
Bits Per Pixel:
Sample:
Recognition


Skew

Group: Property

Description:

This property sets or returns the skew (slope value). This value will be used when an image is to be deskewed and the DeskewMode property is set to IG_REC_INVERSION_DESKEW_SET.

The value given here is the number of pixels of vertical ascent on 1000 horizontal pixels. That is, the tangent of the deskew angle multiplied by 1000. The slope value specified must be in range of -577 to 577, that means the max. slope value is 30 degrees. A value of half a degree or less will be ignored.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


IGRecProgressParams

Group: Object

Description:

This object contains parameters used by the TaskProgress event.

Interface:

IIGRecProgressParams

Class Members:

Continue
property
Tells whether the recognition engine can continue processing


Continue

Group: Property

Description:

Set this property to False to abort the current processing task.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


IGRecRecognitionLanguage

Group: Object

Description:

This object represents a recognition language available to the toolkit.

Interface:

IIGRecRecognitionLanguage

Class Members:

ID
property
Identifier of the language
IsEnabled
property
Specifies whether the language shall be used during recognition


ID

Group: Property

Description:

This property provides the identification number of the specific recognition language.

Property Summary:

Data Type:
enumIGRecRecognitionLanguages
Default Value:
Access:
Read only
Settings:
see enumIGRecRecognitionLanguages values
Bits Per Pixel:
Sample:
Recognition


IsEnabled

Group: Property

Description:

This property sets or returns the state of the language. If enabled, the language type will be validated for recognition.

By default, only the English language is validated for recognition.

Property Summary:

Data Type:
Boolean
Default Value:
See description
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


IGRecSkewInfo

Group: Object

Description:

This object provides the skew and orientation information returned by the DetectSkew method of the IGRecPageImage object.

Interface:

IIGRecSkewInfo

Class Members:

Orientation
property
Detected orientation value
Slope
property
Detected slope value


Orientation

Group: Property

Description:

This property returns the orientation value by which should be applied to reach the orientation which the recognition engine considers correct.

Property Summary:

Data Type:
enumIGRecOrientationModes
Default Value:
Access:
Read only
Settings:
see enumIGRecRotationModes values
Bits Per Pixel:
Sample:
Recognition


Slope

Group: Property

Description:

This property returns the Slope value to which the image should be deskewed reach the orientation which the recogition engine considers correct.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


IGRecSpellLanguage

Group: Object

Description:

This object represents a spelling language available to the system.

Interface:

IIGRecSpellLanguage

Class Members:

ID
property
Identifier of the spelling language


ID

Group: Property

Description:

This property returns the identifier of the spelling language.

Property Summary:

Data Type:
enumIGRecSpellLanguage
Default Value:
Access:
Read only
Settings:
see enumIGRecSpellLanguage values
Bits Per Pixel:
Sample:
Recognition


IGRecTemplateManager

Group: Object

Description:

This object incapsulates a set of methods for working with zone templates.

Templates manager does not provide direct access to individual templates. Items can be added to the Templates collection via the ImportTemplateFromFile method, or via the SaveAsTemplate method of ZonesCollection object.

Interface:

IIGRecTemplateManager

Class Members:

TemplateCount
property
provides the number of zone templates
ApplyTemplate
method
applies template to the document
DeleteTemplate
method
deletes template from the file
ExportTemplateToFile
method
exports template to a template file
GetName
method
provides the name of template by its index
ImportTemplateFromFile
method
Imports template from a template file
IsTemplate
method
Checks whether a template with the specified name is available


ApplyTemplate

Group: Method

Description:

This method applies template to pages of the document.

Declaration:

Sub ApplyTemplate (TemplateName As String, StartPage As Long,
EndPage As Long, Steps As Long)

Parameters:

TemplateName
Name of the template to be applied
StartPage
Start page
EndPage
Last page
Steps
Stepping between pages

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


DeleteTemplate

Group: Method

Description:

This method deletes template from the document.

Declaration:

Sub DeleteTemplate (TemplateName As String)

Parameters:

TemplateName
Name of the template to delete

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


ExportTemplateToFile

Group: Method

Description:

This method exports template to a template file.

Declaration:

Sub ExportTemplateToFile(FileName As String, TemplateName As
String, Overwrite As Boolean)

Parameters:

FileName
The name of file to export template to.
TemplateName
The name of template to export
Overwrite
If True then previously exported template should be overwritten.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


GetName

Group: Method

Description:

This method provides the name of a template stored in the IIGRecDocument by its index.

Declaration:

Sub GetName (Index As Long)

Parameters:

Index
Index of the template

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


ImportTemplateFromFile

Group: Method

Description:

This method imports template from a template file, and adds to the collection of templates stored in the IIGRecDocument. The template will then be accessible through the TemplateName.

Declaration:

Sub ImportTemplateFromFile(FileName As String, TemplateName As
String, Overwrite As Boolean)

Parameters:

FileName
The name of file to import template from
TemplateName
The name of template to import
Overwrite

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


IsTemplate

Group: Method

Description:

This method returns True if the name specified in TemplateName refers to a valid template in the document. The return value is False if no such template exists.

Declaration:

Sub IsTemplate (TemplateName As String)

Parameters:

TemplateName
The name of template

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


TemplateCount

Group: Property

Description:

This property provides the number of templates stored in the document.

Property Summary:

Data Type:
Long
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


IGRecTrainingManager

Group: Object

Description:

This object provides access to Training features of IGRecDocument.

Interface:

IIGRecTrainingManager

Class Members:

Clear
method
clears the training data
GetFileName
method
returns the name of the last loaded training file
IsModified
method
tells whether the training data of the ENGine was modified
LoadFromFile
method
loads the training data from a training file
SaveToFile
method
saves the training data to a training file


Clear

Group: Method

Description:

This method clears the training data of the document.

Declaration:

Sub Clear ()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


GetFileName

Group: Method

Description:

This method returns the name of the last loaded training file. If no training was loaded, this method returns with an empty string.

Declaration:

Sub GetFileName() As String

Bits Per Pixel:

N/A

Return Value:

The string name of the file.

Sample:

Recognition


IsModified

Group: Method

Description:

This method returns True if the training data was modified since either the beginning of the training session or since the last training file load / save file operation.

Declaration:

Sub IsModified() As Boolean

Bits Per Pixel:

N/A

Return Value:

True or False.

Sample:

Recognition


LoadFromFile

Group: Method

Description:

This method loads the training data from a training file. The current training data will be overridden.

The text recognition modules are trainable. This method enables the use of training stored in one of any number of training files. On a document with repeated printing errors or with an unusual typeface some further training can be done to achieve higher accuracy.

Declaration:

Sub LoadFromFile(FileName As String)

Parameters:

FileName
The name of file to load training data from

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SaveToFile

Group: Method

Description:

This method saves the training data into a training file.

Declaration:

Sub SaveToFile(FileName As String)

Parameters:

FileName
The name of file to save training data to.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


IGRecUserDictionarySettings

Group: Object

Description:

This object is used with IIGRecDictionaryManager. GetUserDictionarySettingsCopy() / UpdateUserDictionarySettingsFrom().

Interface:

IIGRecDictionarySettings

Class Members:

ActiveDictionaryName
property
Name of the user dictionary
DefaultSection
property
Default section of the user dictionary
Location
property
Location of the user dictionary


ActiveDictionaryName

Group: Property

Description:

This property specifies the name of the User dictionary to be used during recognition.

Property Summary:

Data Type:
String
Default Value:
Empty string
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


DefaultSection

Group: Property

Description:

This property specifies the section name of the User dictionary to be used as the default section.

Property Summary:

Data Type:
String
Default Value:
Empty string
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


Location

Group: Property

Description:

This property specifies the location of the user dictionary: disk file or the IGRecDocument object

Property Summary:

Data Type:
enumIGRecDictionaryLocationType
Default Value:
IG_REC_DICTIONARY_LOCATION_TYPE_FILE
Access:
Read/Write
Settings:
see enumIGRecDictionaryLocationType values
Bits Per Pixel:
Sample:
Recognition


IGRecVerticalDictionaryInfo

Group: Object

Description:

This object is used with IIGRecDictionaryManager.GetVerticalDictionaryFileInfo().

Interface:

IIGRecDictionarySettings

Class Members:

Language
property
Language identifier of the vertical dictionary
Description
property
Description of the vertical dictionary


Language

Group: Property

Description:

This property returns the identifier of the language of the vertical dictionary.

Property Summary:

Data Type:
String
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


Description

Group: Property

Description:

This property returns information about the Vertical dictionary.

Property Summary:

Data Type:
String
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


IGRecZone

Group: Object

Description:

This object contains information about a specific zone in an image. The Zone object provides access to the coordinates of a zone, its content type, etc.

Interface:

IIGRecZone

Class Members:

CorrectionEnabled
property
allows or prohibits the correction feature of the checking subsystem for the Zone
FillingMethod
property
sets or returns the filling method for the zone
Filter
property
defines or retrieves a Character Set filter for the zone
FullLinesCheckingEnabled
property
enables or disables full lines checking mode for the zone
Height
property
Height of the zone
IgnoreWhiteSpace
property
instructs the checking subsystem to Ignore white space characters during checking of this zone
IgnoreUserDictCase
property
enables or disables case insensitive user dictionary checking
Left
property
X coordinate of the left-top corner of the zone
ProperNamesCorrectionEnabled
property
enables or disables correction of proper names
PunctuationUseForCheckingEnabled
property
enables or disables punctuation checking
RecognitionModule
property
specifies the recognition module that should be used for recognizing the zone content
SpellCheckingEnabled
property
enables or disables the spell checking for the zone
SpellCheckingWasUsed
property
indicates whether language checking was enabled during the last checking (recognition) of the zone
Top
property
Y coordinate of the left-top corner of the zone
Type
property
classifies the zone into one of the zone type categories
Width
property
width of the zone
UserCheckingEnabled
property
enables or disables user checking on the zone
UserData
property
stores or retrieves user-defined information in the Zone object
UserDictEnabled
property
enables or disables the usage of user dictionary for the zone
UserDictionaryWasUsed
property
indicates whether UD-checking was enabled during the last checking (recognition) of the zone
UserDictSection
property
specifies a section name in the User dictionary for the Zone object
VerticalDictEnabled
property
enables or disables the usage of vertical dictionary for the zone
VerticalDictionaryWasUsed
property
indicates whether vertical language checking was enabled during the last checking (recognition) process for the zone


CorrectionEnabled

Group: Property

Description:

This property can be used to allow or prohibit the correction feature of the checking subsystem for the Zone object, even if it is enabled at document level with the Correction property of the Document object.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


FillingMethod

Group: Property

Description:

This property sets or returns the filling method for the zone.

It is the developer's responsibility to specify a valid recognition module-filling method pair. Any incorrectly specified zone will have no recognition result.

Property Summary:

Data Type:
enumIGRecFillingMethod
Default Value:
IG_REC_FILLING_METHOD_DEFAULT
Access:
Read/Write
Settings:
see enumIGRecFillingMethod values
Bits Per Pixel:
Sample:
Recognition


Filter

Group: Property

Description:

This property can be used to define or retrieve a Character Set filter for the zone.

The name of each filter element denotes which category of characters it validates. A filter is built from one or more filter elements by combining (binary OR-ing) them.

Property Summary:

Data Type:
enumIGRecCharSetFilter
Default Value:
IG_REC_CHARSET_FILTER_DEFAULT
Access:
Read/Write
Settings:
see enumIGRecCharSetFilter values
Bits Per Pixel:
Sample:
Recognition


FullLinesCheckingEnabled

Group: Property

Description:

This property instructs the recognition module associated with the Zone object to pass entire lines to the checking subsystem instead of words during its operation.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


Height

Group: Property

Description:

This property specifies the height of the zone, in pixels. The value is image-relative.

Property Summary:

Data Type:
Long
Default Value:
2
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


IgnoreWhiteSpace

Group: Property

Description:

This property instructs the checking subsystem to ignore white space characters (SPACE and TAB characters) during checking of this zone. This property should be used in conjunction with the FullLinesCheckingEnabled property.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


IgnoreUserDictCase

Group: Property

Description:

This property instructs the checking subsystem to use case insensitive UD- checking.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


Left

Group: Property

Description:

This property specifies the X coordinate of the left-top point of the zone, in pixels. The value is image-relative.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


ProperNamesCorrectionEnabled

Group: Property

Description:

This property enables or disables the correction of words with capital letters inside recognized sentences.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


PunctuationUseForCheckingEnabled

Group: Property

Description:

This property enables or disables the use of punctuation characters on the boundaries of the strings for checking.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


RecognitionModule

Group: Property

Description:

This property specifies the recognition module assigned to the zone.

It is the developer's responsibility to specify a valid recognition module-filling method pair. Any incorrectly specified zone will have no recognition result.

Only recognition modules which have been supplied and successfully installed in the Recognition component configuration will be available.

Property Summary:

Data Type:
enumIGRecRecognitionModule
Default Value:
IG_REC_RECOGNITION_MODULE_AUTO
Access:
Read/Write
Settings:
see enumIGRecRecognitionModule values
Bits Per Pixel:
Sample:
Recognition


SpellCheckingEnabled

Group: Property

Description:

This property allows or prohibits the use of the language checking for the zone, even if it is enabled at document level with the SpellLanguage property of the Document object.

The basic operation of the checking subsystem can be controlled through the CheckingEnabled and CorrectionEnabled properties of the IGRecDocument object. The SpellLanguage property of the IGRecDocument object can be used to specify the spelling language for the spell checking.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


SpellCheckingWasUsed

Group: Property

Description:

This "after recognition flag" property indicates whether language checking was enabled during the last checking (recognition) process for the Zone object.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read only
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


Top

Group: Property

Description:

This property specifies the Y coordinate of the left-top point of the zone, in pixels. The value is image-relative.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


Type

Group: Property

Description:

This property classifies the zone into one of the three basic zone-categories: flowed text, table or graphics.

For flowed text, the page decomposition process may mark the zone with one of the more distinct types, such as footer, caption, etc. From the recognition's point of view they have the same meaning: the zone content is flowed text.

The IG_REC_ZONE_TYPE_TABLE definition is for table-type zones. In the case of this type of zone, the recognition engine will try to reconstruct the original table text layout of the zone in the final output document.

Use the IG_REC_ZONE_TYPE_GRAPHIC type for graphic zones. No recognition will take place on such zone and all other recognition related settings will be ignored. The related IG_REC_ZONE_TYPE_SGRAPHIC type can appear as the result of the page-layout decomposition (auto-zoning) process, and also signifies a graphic zone.

Property Summary:

Data Type:
enumIGRecZoneType
Default Value:
IG_REC_ZONE_TYPE_FLOW
Access:
Read/Write
Settings:
see enumIGRecZoneType values
Bits Per Pixel:
Sample:
Recognition


Width

Group: Property

Description:

This property specifies the width of the zone, in pixels. The value is image-relative.

Property Summary:

Data Type:
Long
Default Value:
2
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


UserCheckingEnabled

Group: Property

Description:

This property can be used to control if the Check event of the Engine object will be raised during recognition for this Zone object.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


UserData

Group: Property

Description:

Use this property to store and retrieve user-defined information in the Zone object.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


UserDictEnabled

Group: Property

Description:

This property allows or prohibits the use of UD-checking for the Zone object, even if it is enabled at document level.

The basic operation of the checking subsystem can be controlled through the CheckingEnabled and CorrectionEnabled properties of the Document object. The UpdateUserDictionarySettingsFrom method of the IGRecDictionaryManager object can be used to specify the dictionary for the UD-checking.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


UserDictionaryWasUsed

Group: Property

Description:

This "after recognition flag" property indicates whether UD-checking was enabled during the last checking (recognition) process for the Zone object.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read only
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


UserDictSection

Group: Property

Description:

Use this property to specify a section name in the User dictionary for the Zone object. The specified section will be assigned to this zone and used for UD-checking (assuming that the checking subsystem and the UserDictEnabled property of this zone are configured to use it).

Property Summary:

Data Type:
String
Default Value:
empty string
Access:
Read/Write
Settings:
Bits Per Pixel:
Sample:
Recognition


VerticalDictEnabled

Group: Property

Description:

This property specifies whether vertical language checking of the checking subsystem should be enabled or disabled for the Zone object, even if it is enabled at document level with the VerticalDictionary property of the IGRecDictionaryManager object.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


VerticalDictionaryWasUsed

Group: Property

Description:

This "after recognition flag" property indicates whether vertical language checking was enabled during the last checking (recognition) process for the Zone object.

Property Summary:

Data Type:
Boolean
Default Value:
Access:
Read only
Settings:
True, False
Bits Per Pixel:
Sample:
Recognition


IGRecZoneCollection

Group: Object

Description:

This object represents an ordered set of IGRecZone objects, where each element represents a zone on an image of a page. Through its methods and properties, the Zones collection enables you to gather information about the zones in a zone list and to add or remove zones.

Interface:

IIGRecZoneCollection

Class Members:

Count
property
Number of zones in the collection
DefaultFillingMethod
property
Default filling method for the zones
Item[]
property
Returns the zone by its index
AddNew
method
Adds a new zone to the collection
DetectFillingMethod
method
Detects filling method for all zones that have FillingMethod property set to IG_REC_FILLING_METHOD_DEFAULT
Insert
method
Inserts a new zone to the collection
LoadTemplateFromFile
method
loads zones from template file, discards all previously created zones
Locate
method
locates zones in the image
Remove
method
removes the specified zone from collection
RemoveAll
method
removes all zones from collection
SaveTemplateToDocument
method
saves zones to the parent IGRecDocument under TemplateName.
SaveTemplateToFile
method
saves zones to a template file


AddNew

Group: Method

Description:

This method adds an IGRecZone object to the collection.

Declaration:

Sub AddNew () As IIGRecZone

Bits Per Pixel:

N/A

Return Value:

New instance of IGRecZone object.

Sample:

Recognition


Count

Group: Property

Description:

This property returns the number of zones in the collection.

Property Summary:

Data Type:
Long
Access:
Read only
Sample:
Recognition


DefaultFillingMethod

Group: Property

Description:

This property specifies the default filling method for newly added zones.

Property Summary:

Data Type:
enumIGRecFillingMethod
Default Value:
IG_REC_FILLING_METHOD_DEFAULT
Access:
Read/Write
Settings:
see enumIGRecFillingMethod values
Bits Per Pixel:
Sample:
Recognition


DetectFillingMethod

Group: Method

Description:

This method detects filling method for all zones that have FillingMethod property set to IG_REC_FILLING_METHOD_DEFAULT.

Declaration:

Sub DetectFillingMethod ()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Insert

Group: Method

Description:

This method inserts a new Zone object to the collection.

Declaration:

Sub Insert (Index As Long) As IIGRecZone

Parameters:

Index
Index of the new zone

Bits Per Pixel:

N/A

Return Value:

New instance of IIGRecZone object.

Sample:

Recognition


Item[]

Group: Property

Description:

This indexed property returns the IGRecZone object by its index in the zone list.

The valid range for the index is 0...Count-1.

Property Summary:

Data Type:
IIGRecZone
Default Value:
Access:
Read only
Settings:
Bits Per Pixel:
Sample:
Recognition


LoadTemplateFromFile

Group: Method

Description:

This function loads a zone-file (template) and applies it to the image. If the file specified by FileName parameter does not exist, an error occurs.

Note that loading a zone-file will delete any previously defined zones and applies the new zone-list on the image immediately. This causes all references to previous zones to become invalid.

Declaration:

Sub LoadTemplateFromFile (FileName As String)

Parameters:

FileName
The name of file to load zones from.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Locate

Group: Method

Description:

This method automatically locates all zones on an image and builds the zone collection from the zones (also called auto-zoning). It deletes any previously drawn or located zones and any references to these zones will become invalid after the process.

This version of the Capture SDK offers three page parser algorithms to be chosen. Unless specified otherwise, the more accurate one will be applied by this method. Use the DecompMethod property of the IGRecDocument object to change the Page parser algorithm settings.

This method determines the zone coordinates and also the type of the zone. The zone type characterize the role of the zone in the image layout and it can be classified into three different groups as follows:

Flowed text types :

IG_REC_ZONE_TYPE_COLUMN, IG_REC_ZONE_TYPE_FLOW, IG_REC_ZONE_TYPE_HEADER, IG_REC_ZONE_TYPE_FOOTER, IG_REC_ZONE_TYPE_CAPTION, IG_REC_ZONE_TYPE_TITLE, IG_REC_ZONE_TYPE_OTHER

Table text type:

IG_REC_ZONE_TYPE_TABLE

Graphical zone types:

IG_REC_ZONE_TYPE_GRAPHIC, IG_REC_ZONE_TYPE_SGRAPHIC

In case of flowed text type zones the zone contains textual information without a table type structure (it is flowed text). The types listed above are considered the same; they are differentiated from each other during the later processing stages.

In case of the table text zones the zone is detected as containing a table, i.e. with columns, with or without a grid. Such zones are handled differently from those of flowed text type zones.

Graphical zones contain graphics, i.e. these zones will not be recognized at all. This kinds of zones exist only to allow saving or export of the image inside the zone area.

New zones located by this method will always have the IG_REC_FILLING_METHOD_DEFAULT and IG_REC_RECOGNITION_MODULE_AUTO values in their FillingMethod and RecognitionModule properties, respectively. The filling method for the zones having the "meaning" IG_REC_FILLING_METHOD_DEFAULT filling method can be specified with the FillingMethod property of the Document object.

New zones created by this method always take the value IG_REC_CHARSET_FILTER_DEFAULT, meaning that the zone will take on the global filter setting (which is by default IG_REC_CHARSET_FILTER_ALL to have no filtering).

The auto-zoning can be influenced by the SingleColumnModeEnabled property of the IGRecDocument object.

This method raises the TaskProgress event in the IGRecCtl object.

Declaration:

Sub Locate (rect As IIGRectangle)

Parameters:

rect
Specifies the rectangular area in which the zone location will be performed. Pass an empty rectangle to parse the whole image.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Remove

Group: Method

Description:

This method removes a zone from the collection

Declaration:

Sub Remove (Index As Long)

Parameters:

Index
index of the zone to remove

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


RemoveAll

Group: Method

Description:

This method removes all zones from the collection.

Declaration:

Sub RemoveAll ()

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SaveTemplateToDocument

Group: Method

Description:

This method saves zones to the parent IGRecDocument under TemplateName.

Declaration:

Sub SaveTemplateToDocument (TemplateName As String, bOverwrite
As Boolean)

Parameters:

TemplateName
The identifying name of template in the document
bOverwrite
Tells whether to append or overwrite existing template

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


SaveTemplateToFile

Group: Method

Description:

This method saves zones to a template file

Declaration:

Sub SaveTemplateToFile (FileName As String)

Parameters:

FileName
The name of file to save zones to.

Bits Per Pixel:

N/A

Return Value:

N/A

Sample:

Recognition


Recognition Component Enumerations

This section of the Manual provides an alphabetized reference of enumerations defined in ImageGear Recognition component:

  • enumIGRecBarcodeTypes
  • enumIGRecCharacterFlags
  • enumIGRecCharSetFilter
  • enumIGRecCheckOpinion
  • enumIGRecCodePageType
  • enumIGRecConvModes
  • enumIGRecDecompositionMethod
  • enumIGRecDeskewModes
  • enumIGRecDictionaryLocationType
  • enumIGRecEngineModule
  • enumIGRecFeatures
  • enumIGRecFillingMethod
  • enumIGRecFontHandlingModes
  • enumIGRecFontType
  • enumIGRecHNRStyles
  • enumIGRecInversionModes
  • enumIGRecMarginHandling
  • enumIGRecModuleInitCode
  • enumIGRecOrientationModes
  • enumIGRecOMRFrameDetectionModes
  • enumIGRecOMRSensitivity
  • enumIGRecOutputAlignment
  • enumIGRecOutputFormatLevels
  • enumIGRecOutputFormatType
  • enumIGRecOutputGraphicsHandlingModes
  • enumIGRecOutputIndentModes
  • enumIGRecOutputLanguage
  • enumIGRecOutputLineSpacing
  • enumIGRecOutputPaperOrientation
  • enumIGRecOutputPaperSize
  • enumIGRecOutputTableHandlingModes
  • enumIGRecImgProcResultModes
  • enumIGRecParagraphSpacingModes
  • enumIGRecPrimaryReductionModes
  • enumIGRecRecogniseFlag
  • enumIGRecRecognitionLanguages
  • enumIGRecRecognitionModule
  • enumIGRecResEnhancementModes
  • enumIGRecRotationModes
  • enumIGRecSecondaryReductionModes
  • enumIGRecSpellLanguages
  • enumIGRecTaskID
  • enumIGRecTradeoffModes
  • enumIGRecWordAttribute
  • enumIGRecZoneType


enumIGRecBarcodeTypes

Group: Enumeration

Description:

This enumeration Identifies barcode types.

Values:

IG_REC_BARCODE_TYPE_EAN
EAN 8/13
IG_REC_BARCODE_TYPE_SUPPL
EAN/UPC with 2 & 5-digit supplement
IG_REC_BARCODE_TYPE_UPC_A
UPC-A
IG_REC_BARCODE_TYPE_UPC_E
UPC-E (6-digit)
IG_REC_BARCODE_TYPE_ITF
ITF (2 of 5 interleaved)
IG_REC_BARCODE_TYPE_ITF_CDT
ITF with check digit control and transmit
IG_REC_BARCODE_TYPE_C39
Code 39 (does not support lowercase letters)
IG_REC_BARCODE_TYPE_C39_CDT
Code 39 with check digit control and transmit
IG_REC_BARCODE_TYPE_C39_SST
Code 39 with start-stop char transmit
IG_REC_BARCODE_TYPE_C39_FA
Code 39 full ASCII mode (supports both of lower and uppercase letters)
IG_REC_BARCODE_TYPE_C128
Code 128
IG_REC_BARCODE_TYPE_C128_CDT
Code 128 with check digit transmit
IG_REC_BARCODE_TYPE_CB
Codabar
IG_REC_BARCODE_TYPE_CB_SST
Codabar with start-stop char transmit
IG_REC_BARCODE_TYPE_POSTNET
Postnet code
IG_REC_BARCODE_TYPE_A2of5
Airline 2 of 5 (Not supported in this toolkit version)
IG_REC_BARCODE_TYPE_UCC128
UCC Code 128
IG_REC_BARCODE_TYPE_2of5
Code 2 of 5 (Not supported in this toolkit version)
IG_REC_BARCODE_TYPE_93
Code 93 (Not supported in this toolkit version)
IG_REC_BARCODE_TYPE_SIZE
Number of supported barcode types


enumIGRecCharacterFlags

Group: Enumeration

Description:

This enumeration identifies attribute flags of the recognized character

Values:

IG_REC_CHAR_FLAG_ENDOFLINE
The character is the last one in a line
IG_REC_CHAR_FLAG_ENDOFPARA
The character is the last one in a paragraph
IG_REC_CHAR_FLAG_ENDOFWORD
The character is the last one of a word.
IG_REC_CHAR_FLAG_ENDOFZONE
The character is the last one of a zone.
IG_REC_CHAR_FLAG_ENDOFPAGE
The character is the last one on the page.
IG_REC_CHAR_FLAG_ENDOFCELL
The character is the last one in a cell.
IG_REC_CHAR_FLAG_RESERVED0
Reserved
IG_REC_CHAR_FLAG_RESERVED1
Reserved


enumIGRecCharSetFilter

Group: Enumeration

Description:

This enumeration identifies character set filters.

Values:

IG_REC_CHARSET_FILTER_DEFAULT
This value is used to have the zone handled globally. Do not combine this with any other filter
IG_REC_CHARSET_FILTER_DIGIT
[Bit mask] Recognition of numerals only. E.g.: "3" (Digit Three).
IG_REC_CHARSET_FILTER_UPPERCASE
[Bit mask] Recognition of uppercase letters only, including accented ones
IG_REC_CHARSET_FILTER_LOWERCASE
[Bit mask] Recognition of lowercase letters only including accented ones
IG_REC_CHARSET_FILTER_PUNCTUATION
[Bit mask] Recognition of punctuation signs only. E.g.: "!" (Exclamation Mark)
IG_REC_CHARSET_FILTER_MISCELLANEOUS
[Bit mask] Recognition of other miscellaneous characters only. E.g.: "+" (Plus sign)
IG_REC_CHARSET_FILTER_PLUS
[Special, combinable filter] Enables the use of the FilterPlus characters.The FilterPlus characters are added after any filtering
IG_REC_CHARSET_FILTER_ALL
[Pre-defined combined filter] Since all elements are enabled, there is no filtering
IG_REC_CHARSET_FILTER_ALPHA
[Pre-defined combined filter] Recognition of upper and lowercase letters only.
IG_REC_CHARSET_FILTER_NUMBERS
[Pre-defined combined filter] Recognition of the digits, plus the FilterPlus characters.
IG_REC_CHARSET_FILTER_SIZE
Number of possible combinations of the bit mask filters


enumIGRecCheckOpinion

Group: Enumeration

Description:

This enum defines the possible values which a user-written checking callback function should return. This type of function should be written for zones where the accuracy of the recognition should be improved by providing the recognition module involved with additional checking information derived from the application.

Values:

IG_REC_OPINION_IMPOSSIBLE
In the application's opinion the recognized string for the given zone passed to the checking function cannot be possible
IG_REC_OPINION_UNLIKELY
In the application's opinion the recognized string for the given zone passed to the checking function is unlikely to be acceptable
IG_REC_OPINION_UNRESOLVED
The application's checking function cannot make a decision on the acceptability of the string for the zone
IG_REC_OPINION_POSSIBLE
In the application's opinion the recognized string for the given zone passed to the checking function is possibly acceptable
IG_REC_OPINION_SURE
In the application's opinion the recognized string for the given zone passed to the checking function is certainly acceptable


enumIGRecCodePageType

Group: Enumeration

Description:

This enumeration identifies code page categories. Each output converter is classified into one of these categories.

Values:

IG_REC_CODEPAGE_TYPE_CODEP_UNKNOWN
Code Pages not classified to any further categories, e.g. Roman-8
IG_REC_CODEPAGE_TYPE_SPECIFIC
16-bit Code Pages, e.g. UNICODE
IG_REC_CODEPAGE_TYPE_ASCII_BASED
Code Pages typically used by different localized DOS versions and DOS applications, e.g. CodePage 437
IG_REC_CODEPAGE_TYPE_ANSI_BASED
Code Pages typically used by different localized Windows versions and Windows applications, e.g. Windows Greek.
IG_REC_CODEPAGE_TYPE_MAC_BASED
Code Pages typically used by different localized Mac versions and applications, e.g. Macintosh Central European CP.
IG_REC_CODEPAGE_TYPE_INTERNAL_CP
Reserved 8-bit and 16 bit Code Pages used internally by the ENGine.


enumIGRecConvModes

Group: Enumeration

Description:

This enumeration identifies coordinate conversion modes.

Values:

IG_REC_CONV_MODE_CURRENT_TO_ORIGINAL
Convert coordinates from current image to original image
IG_REC_CONV_MODE_ORIGINAL_TO_CURRENT
Convert coordinates from original image to current image


enumIGRecDecompositionMethod

Group: Enumeration

Description:

This enumeration identifies methods for decomposing the document into zones.

Applying the IG_REC_DECOMPOSITION_METHOD_STANDARD algorithm results in better throughput in overall accuracy, though in some complex cases it might require significantly more time to complete.

When IG_REC_DECOMPOSITION_METHOD_FAST is specified, consider disabling the NongriddedTableDetectEnabled property of the IGRecDocument object.

Values:

IG_REC_DECOMPOSITION_METHOD_AUTO
Specifies that the toolkit will determine at run-time whether the IG_REC_DECOMPOSITION_METHOD_LEGACY or IG_REC_DECOMPOSITION_METHOD_STANDARD algorithm will be applied.
IG_REC_DECOMPOSITION_METHOD_LEGACY
Identifies the page-parsing algorithm exclusively used in the ScanSoft toolkit before its version 11.0.
IG_REC_DECOMPOSITION_METHOD_STANDARD
Identifies the most accurate page parsing algorithm of the Recognition component.
IG_REC_DECOMPOSITION_METHOD_FAST
This algorithm can be treated as a simplified variant of IG_REC_DECOMPOSITION_METHOD_LEGACY. This algorithm doesn't try to find tables on the page.
It is the fastest (but least accurate) parsing algorithm available. Use only for simple page parsing tasks!


enumIGRecDeskewModes

Group: Enumeration

Description:

This enumeration identifies image deskewing modes.

Values:

IG_REC_DESKEW_MODE_AUTO
Automatic deskewing
IG_REC_DESKEW_MODE_NO
No deskewing applied
IG_REC_DESKEW_MODE_SET
Deskew with a given angle, set by the IGRecPreprocessingSettings.Skew


enumIGRecDictionaryLocationType

Group: Enumeration

Description:

This enumeration identifies location types of user dictionary.

Values:

IG_REC_DICTIONARY_LOCATION_TYPE_FILE
Dictionary is located in a file
IG_REC_DICTIONARY_LOCATION_TYPE_DOCUMENT
Dictionary is contained in the document object


enumIGRecEngineModule

Group: Enumeration

Description:

This enumeration identifies modules of the ScanSoft recognition engine. This includes recognition modules as well as core and support modules.

Values:

IG_REC_ENGINE_MODULE_API
ScanSoft core module
IG_REC_ENGINE_MODULE_MOR
Multi-lingual MOR omnifont recognition module
IG_REC_ENGINE_MODULE_DOT
9-pin draft dot-matrix recognition module
IG_REC_ENGINE_MODULE_BAR
Barcode 1D recognition module
IG_REC_ENGINE_MODULE_OMR
Optical mark recognition module.
IG_REC_ENGINE_MODULE_HNR
Handprinted numeral recognition module.
IG_REC_ENGINE_MODULE_DCM
Automatic page-layout decomposition module.
IG_REC_ENGINE_MODULE_IMG
Image handling module.
IG_REC_ENGINE_MODULE_IMF
Image file I/O module.
IG_REC_ENGINE_MODULE_CHR
Character Set and Code Page handling module.
IG_REC_ENGINE_MODULE_TMP
Output formatting module.
IG_REC_ENGINE_MODULE_TXT
Output file generation module.
IG_REC_ENGINE_MODULE_SPL
Checking module.
IG_REC_ENGINE_MODULE_RSD
Scanning module (not used in the ImageGear recognition component)
IG_REC_ENGINE_MODULE_RER
Handprinted character recognition module.
IG_REC_ENGINE_MODULE_BRA
Not available
IG_REC_ENGINE_MODULE_MGR
ScanSoft core module
IG_REC_ENGINE_MODULE_MTX
M/TEXT omnifont recognition module
IG_REC_ENGINE_MODULE_MAT
Matrix matching recognition module
IG_REC_ENGINE_MODULE_BAR2D
The 2 dimensional (Seaport) barcode recognition module.
IG_REC_ENGINE_MODULE_PLUS2W
PLUS2W omnifont recognition module
IG_REC_ENGINE_MODULE_FRX
Multi-lingual FRX omnifont recognition module
IG_REC_ENGINE_MODULE_PLUS3W
PLUS3W omnifont recognition module
IG_REC_ENGINE_MODULE_ASN
Not available
IG_REC_ENGINE_MODULE_SIZE
Number of modules


enumIGRecFeatures

Group: Enumeration

Description:

This enumeration identifies the features of the ImageGear Recognition component that are licensed separately.

Values:

IG_REC_FEATURE_NONE
No features
IG_REC_FEATURE_OCR
OCR Optical Character Recognition feature
IG_REC_FEATURE_ICR
ICR Intellectual Character Recognition feature (handwritten text recognition)
IG_REC_FEATURE_OMR
OMR Optical Mark Recognition feature
IG_REC_FEATURE_BARCODE_1D
One-dimensional Bar Code Recognition feature
IG_REC_FEATURE_BARCODE_2D
One-dimensional Bar Code Recognition feature


enumIGRecFillingMethod

Group: Enumeration

Description:

This enumeration identifies zone filling methods.

Values:

IG_REC_FILLING_METHOD_DEFAULT
The default zone filling method. The actual zone filling method for all zones of this type will be retrieved just before recognition, according to the DefaultFillingMethod property of the IGRecDocument object .
IG_REC_FILLING_METHOD_OMNIFONT
The omnifont zone filling method. It denotes a machine printed text with any typeface which is not too stylized.
IG_REC_FILLING_METHOD_DRAFTDOT9
The 9-pin draft dot-matrix zone filling method. It denotes a 9-pin draft dot-matrix printout.
IG_REC_FILLING_METHOD_BARCODE
The 1D bar code zone filling method. It denotes a one-dimensional bar code within the zone.
IG_REC_FILLING_METHOD_OMR
The optical mark zone filling method. It denotes a possible marking within the zone.
IG_REC_FILLING_METHOD_HANDPRINT
The handprinted zone filling method. It denotes handprinting within the zone.
IG_REC_FILLING_METHOD_BRAILLE
Not supported.
IG_REC_FILLING_METHOD_DRAFTDOT24
The 24-pin draft dot-matrix zone filling method. It denotes a 24-pin draft dot-matrix printout.
IG_REC_FILLING_METHOD_OCRA
OCR-A zone filling method.
IG_REC_FILLING_METHOD_OCRB
OCR-B zone filling method.
IG_REC_FILLING_METHOD_MICR
Magnetic ink character filling method.
IG_REC_FILLING_METHOD_BARCODE2D
2D bar code zone filling method.
IG_REC_FILLING_METHOD_DOTDIGIT
Dot-digit zone filling method.
IG_REC_FILLING_METHOD_DASHDIGIT
Dash-digit zone filling method.
IG_REC_FILLING_METHOD_ASIAN
Not supported
IG_REC_FILLING_METHOD_NO_OCR
No recognition will be attempted.
IG_REC_FILLING_METHOD_SIZE
Number of filling methods


enumIGRecFontHandlingModes

Group: Enumeration

Description:

This enumeration identifies font handling modes for the output document.

Values:

IG_REC_FONT_HANDLING_MODE_NONE
The font attribute will not be exported into the final output document.
IG_REC_FONT_HANDLING_MODE_AUTO
The font attribute will be exported to the final output document. The possible font names used during the export will be those specified by the ProportionalSerifFontName, ProportionalSansSerifFontName, MonospacedSerifFontName and MonospacedSansSerifFontName properties of the IGRecOutputFontSettings object.
IG_REC_FONT_HANDLING_MODE_PREDEFINED
The character font formatting will be exported to the final output document using the PredefinedFontName and PredefinedFontSize properties of the IGRecOutputFontSettings object.


enumIGRecFontType

Group: Enumeration

Description:

This bit-mask enumeration identifies font types.

Values:

IG_REC_FONT_TYPE_ITALIC
Itallic font
IG_REC_FONT_TYPE_BOLD
Bold font
IG_REC_FONT_TYPE_SANSSERIF
Sans serif font
IG_REC_FONT_TYPE_SERIF
Serif font
IG_REC_FONT_TYPE_PROPORTIONAL
Proportional font
IG_REC_FONT_TYPE_UNDERLINE
Underlined font
IG_REC_FONT_TYPE_SUPERSCRIPT
Superscript font
IG_REC_FONT_TYPE_SUBSCRIPT
Subscript font


enumIGRecHNRStyles

Group: Enumeration

Description:

This enumeration identifies writing style setting for the HNR handprinted numerals recognition module.

Values:

IG_REC_HNR_STYLE_EURO
Writing in European style
IG_REC_HNR_STYLE_US
Writing in North-American style


enumIGRecInversionModes

Group: Enumeration

Description:

This enumeration identifies image inversion modes

Values:

IG_REC_INVERSION_MODE_NO
No inversion required
IG_REC_INVERSION_MODE_YES
Image inversion should be performed.
IG_REC_INVERSION_MODE_AUTO
Automatically inverts image, if necessary


enumIGRecMarginHandling

Group: Enumeration

Description:

This enumeration identifies margin handling modes for the output document.

Values:

IG_REC_FONT_HANDLING_MODE_NONE
The margin document formatting attribute will not be exported into the final output document.
IG_REC_FONT_HANDLING_MODE_AUTO
The margin document formatting attribute will be calculated automatically and will be exported to the final output document. This usually mirrors the margin properties of the original document.
IG_REC_FONT_HANDLING_MODE_PREDEFINED
The margin document formatting attribute will be exported to the final output document using the MarginSettings property of the IGRecOutputManager object


enumIGRecModuleInitCode

Group: Enumeration

Description:

This enumeration identifies initialization codes of the recognition modules.

Values:

IG_REC_MODULE_INITCODE_OK
Successful initialization.
IG_REC_MODULE_INITCODE_INITERROR
The module was not found during initialization, therefore is not available for services.
IG_REC_MODULE_INITCODE_MISSING
Error occurred while initializing the module.


enumIGRecOrientationModes

Group: Enumeration

Description:

This enumeration identifies image orientation modes.

Values:

IG_REC_ORIENTATION_MODE_AUTO
Automatic image orientation
IG_REC_ORIENTATION_MODE_NO
Do not orient the image
IG_REC_ORIENTATION_MODE_RIGHT
Rotate image to the right (90 degrees clockwise)
IG_REC_ORIENTATION_MODE_DOWN
Rotate image down (rotate twice)
IG_REC_ORIENTATION_MODE_LEFT
Rotate image to the left (90 degrees counter-clockwise)
IG_REC_ORIENTATION_MODE_FLIPPED
Flip around the Y axis
IG_REC_ORIENTATION_MODE_RIGHT_FLIPPED
Flip around the Y axis, then rotate to the right
IG_REC_ORIENTATION_MODE_DOWN_FLIPPED
Flip around X-axis
IG_REC_ORIENTATION_MODE_LEFT_FLIPPED
Flip around the Y axis, then rotate to the left


enumIGRecOMRFrameDetectionModes

Group: Enumeration

Description:

This enumeration identifies frame detection modes for the OMR otpical mark recognition component.

Values:

IG_REC_OMR_FRAME_DETECTION_MODE_AUTO
Automatic frame detection
IG_REC_OMR_FRAME_DETECTION_MODE_NO
There is no frame within the zone
IG_REC_OMR_FRAME_DETECTION_MODE_YES
There is a frame within the zone


enumIGRecOMRSensitivity

Group: Enumeration

Description:

This enumeration identifies mark sensitivity levels for the OMR otpical mark recognition component.

Values:

IG_REC_OMR_SENSITIVITY_NORMAL
Highest mark sensitivity
IG_REC_OMR_SENSITIVITY_LOW
Less mark sensitivity
IG_REC_OMR_SENSITIVITY_LOWER
Lower mark sensitivity
IG_REC_OMR_SENSITIVITY_LOWEST
Lowest mark sensitivity


enumIGRecOutputAlignment

Group: Enumeration

Description:

This enumeration identifies alognment modes for the output document.

Values:

IG_REC_OUTPUT_ALIGNMENT_NONE
Alignment information will not be exported into the final output document.
IG_REC_OUTPUT_ALIGNMENT_AUTO
Alignment information will be automatically determined for the final output document.
IG_REC_OUTPUT_ALIGNMENT_LEFT
Text will be left-aligned in the final output document.
IG_REC_OUTPUT_ALIGNMENT_RIGHT
Text will be right-aligned in the final output document.
IG_REC_OUTPUT_ALIGNMENT_CENTER
Text will be center-aligned in the final output document.
IG_REC_OUTPUT_ALIGNMENT_JUSTIFY
Text will be justified in the final output document.


enumIGRecOutputFormatLevels

Group: Enumeration

Description:

This enumeration identifies formatting detail level for the output document.

Values:

IG_REC_OUTPUT_FORMAT_LEVEL_FULL
All formatting retained, including text zoning, if applicable. It keeps the original layout of the pages, including columns. This is done with text, graphical and table zones and frames. This is offered only for target applications capable of handling these.
IG_REC_OUTPUT_FORMAT_LEVEL_PARTIAL
Partial set of output formatting elements are retained. All of the recognized paragraph and character formatting features will be exported, if applicable.All recognized paragraph and character formatting features along with graphics and tables are exported.
IG_REC_OUTPUT_FORMAT_LEVEL_DROP
Only some character formatting properties (font size and name) will be exported, if applicable.When exporting to text file types, graphics and tables are not supported.


enumIGRecOutputFormatType

Group: Enumeration

Description:

This enumeration identifies output format types, such as plain text, word processor, etc.

Values:

IG_REC_OUTPUT_FORMAT_TYPE_PLAIN
Plain text: only characters, without any formatting information
IG_REC_OUTPUT_FORMAT_TYPE_WP
Word processor output: formatted text
IG_REC_OUTPUT_FORMAT_TYPE_TRUEWP
Sophisticated word processor output: formatted text with images, if requested
IG_REC_OUTPUT_FORMAT_TYPE_TABLE
Spreadsheet output
IG_REC_OUTPUT_FORMAT_TYPE_UNKNOWN
Unknown output. The selected output converter is unknown for the ImageGear Recognition component.


enumIGRecOutputGraphicsHandlingModes

Group: Enumeration

Description:

This enumeration identifies the different modes of embedding graphical zones (if any) into the final output document.

Values:

IG_REC_OUTPUT_GRAPH_HANDLING_MODE_NONEGR
Suppress all graphics in the final output document.
IG_REC_OUTPUT_GRAPH_HANDLING_MODE_BW
Convert all graphics zones to B/W before inserting them into the final output document
IG_REC_OUTPUT_GRAPH_HANDLING_MODE_GRAY
Convert all graphics zones to a 8-bit grayscale one before inserting them into the final output document.
IG_REC_OUTPUT_GRAPH_HANDLING_MODE_TRUECOLOR
Convert all graphics zones to 24-bit color before inserting them into the final output document
IG_REC_OUTPUT_GRAPH_HANDLING_MODE_ORIGINAL
Transmit all graphics zones without conversion


enumIGRecOutputIndentModes

Group: Enumeration

Description:

This enumeration identifies indentation modes for the output document.

Values:

IG_REC_OUTPUT_INDENT_MODE_NONE
Indent information will not be exported into the final output document.
IG_REC_OUTPUT_INDENT_MODE_AUTO
Indent information will be automatically determined by the Recognition component and exported into the final output document.
IG_REC_OUTPUT_INDENT_MODE_CUSTOM
The specified amount of indent will be applied


enumIGRecOutputLanguage

Group: Enumeration

Description:

This enumeration identifies languages that can be used for language marking of the final output document.

Values:

IG_REC_OUTPUT_LANGUAGE_NONE
Language marking will not be exported into the final output document.
IG_REC_OUTPUT_LANGUAGE_AUTO
Language marking will be automatically determined and exported to the final output document.
IG_REC_OUTPUT_LANGUAGE_NO_LANGUAGE
Final output document will be marked as having "No language".
IG_REC_OUTPUT_LANGUAGE_ALBANIAN
Albanian language.
IG_REC_OUTPUT_LANGUAGE_FRENCH
French language.
IG_REC_OUTPUT_LANGUAGE_FRENCH_BELGIAN
French (Walloon) language.
IG_REC_OUTPUT_LANGUAGE_NORWEGIAN_NYNORSK
Norwegian Nynorsk language.
IG_REC_OUTPUT_LANGUAGE_POLISH
Polish language.
IG_REC_OUTPUT_LANGUAGE_BAHASA
Bahasa (Indonesian) language.
IG_REC_OUTPUT_LANGUAGE_CATALAN
Catalan language.
IG_REC_OUTPUT_LANGUAGE_CROATO_SERBIAN_LATIN
Croato-Serbian (Latin alphabet) language.
IG_REC_OUTPUT_LANGUAGE_CZECH
Czech language.
IG_REC_OUTPUT_LANGUAGE_DANISH
Danish language.
IG_REC_OUTPUT_LANGUAGE_DUTCH
Dutch language.
IG_REC_OUTPUT_LANGUAGE_DUTCH_BELGIAN
Dutch (Flemish) language.
IG_REC_OUTPUT_LANGUAGE_ENGLISH_AUSTRALIAN
English (Australian) language.
IG_REC_OUTPUT_LANGUAGE_ENGLISH_UK
English (UK) language.
IG_REC_OUTPUT_LANGUAGE_ENGLISH_US
English (US) language.
IG_REC_OUTPUT_LANGUAGE_FINNISH
Finnish language.
IG_REC_OUTPUT_LANGUAGE_FRENCH_CANADIAN
French (Canadian) language.
IG_REC_OUTPUT_LANGUAGE_FRENCH_SWISS
French (Swiss) language.
IG_REC_OUTPUT_LANGUAGE_GERMAN
German language.
IG_REC_OUTPUT_LANGUAGE_GERMAN_SWISS
German (Swiss) language.
IG_REC_OUTPUT_LANGUAGE_GREEK
Greek language.
IG_REC_OUTPUT_LANGUAGE_HUNGARIAN
Hungarian language.
IG_REC_OUTPUT_LANGUAGE_ICELANDIC
Icelandic language.
IG_REC_OUTPUT_LANGUAGE_ITALIAN
Italian language.
IG_REC_OUTPUT_LANGUAGE_ITALIAN_SWISS
Italian (Swiss) language.
IG_REC_OUTPUT_LANGUAGE_NORWEGIAN
Norwegian language.
IG_REC_OUTPUT_LANGUAGE_PORTUGUESE_BRAZILIAN
Portuguese (Brazilian) language.
IG_REC_OUTPUT_LANGUAGE_PORTUGUESE
Portuguese language.
IG_REC_OUTPUT_LANGUAGE_RHAETO_ROMANIC
Rhaeto-Romanic language.
IG_REC_OUTPUT_LANGUAGE_ROMANIAN
Romanian language.
IG_REC_OUTPUT_LANGUAGE_SLOVAK
Slovak language.
IG_REC_OUTPUT_LANGUAGE_SPANISH_CASTILIAN
Spanish (Castilian) language.
IG_REC_OUTPUT_LANGUAGE_SPANISH_MEXICAN
Spanish (Mexican) language.
IG_REC_OUTPUT_LANGUAGE_SWEDISH
Swedish language.
IG_REC_OUTPUT_LANGUAGE_TURKISH
Turkish language.
IG_REC_OUTPUT_LANGUAGE_SERBO_CROATIAN_CYRILLIC
Serbian (Cyrillic) language.
IG_REC_OUTPUT_LANGUAGE_BULGARIAN
Bulgarian (Cyrillic) language.
IG_REC_OUTPUT_LANGUAGE_RUSSIAN
Russian (Cyrillic) language.


enumIGRecOutputLineSpacing

Group: Enumeration

Description:

This enumeration identifies line spacing modes for the output document.

Values:

IG_REC_OUTPUT_LINE_SPACING_NONE
The line spacing paragraph formatting attributes will not be exported into the final output document.
IG_REC_OUTPUT_LINE_SPACING_AUTO
The line spacing paragraph formatting attributes will be automatically determined and exported into the final output document.
IG_REC_OUTPUT_LINE_SPACING_HALF
Half line spacing.
IG_REC_OUTPUT_LINE_SPACING_ONE
One line spacing.
IG_REC_OUTPUT_LINE_SPACING_ONEANDHALF
One and a half line spacing.
IG_REC_OUTPUT_LINE_SPACING_DOUBLE
Double line spacing.


enumIGRecOutputPaperOrientation

Group: Enumeration

Description:

This enumeration identifies paper orientation modes for the output document.

Values:

IG_REC_OUTPUT_PAPER_ORIENT_PORTRAIT
Portrait orientation
IG_REC_OUTPUT_PAPER_ORIENT_LANDSCAPE
Landscape orientation


enumIGRecOutputPaperSize

Group: Enumeration

Description:

This enumeration identifies paper sizes for the output document.

Values:

IG_REC_OUTPUT_PAPER_SIZE_NONE
The paper size and the paper orientation document formatting attributes will not be exported into the final output document.
IG_REC_OUTPUT_PAPER_SIZE_AUTO
The paper size and the paper orientation document formatting attributes will be automatically computed by the ENGine for the final output document. In some cases they can vary from page to page. These calculated values will be sent to the final output document.
IG_REC_OUTPUT_PAPER_SIZE_A4
A4 paper size.
IG_REC_OUTPUT_PAPER_SIZE_A0
A0 paper size.
IG_REC_OUTPUT_PAPER_SIZE_A1
A1 paper size.
IG_REC_OUTPUT_PAPER_SIZE_A2
A2 paper size.
IG_REC_OUTPUT_PAPER_SIZE_A3
A3 paper size.
IG_REC_OUTPUT_PAPER_SIZE_A5
A5 paper size.
IG_REC_OUTPUT_PAPER_SIZE_A6
A6 paper size.
IG_REC_OUTPUT_PAPER_SIZE_A7
A7 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B0
B0 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B1
B1 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B2
B2 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B3
B3 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B4
B4 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B5
B5 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B6
B6 paper size.
IG_REC_OUTPUT_PAPER_SIZE_B7
B7 paper size.
IG_REC_OUTPUT_PAPER_SIZE_LETTER
Letter paper size.
IG_REC_OUTPUT_PAPER_SIZE_LEGAL
Legal paper size.
IG_REC_OUTPUT_PAPER_SIZE_EXECUTIVE
Executive paper size.
IG_REC_OUTPUT_PAPER_SIZE_FROMIMAGEMAX
A unique paper size will be determined from the original images of the document and this will be exported into the final output document.


enumIGRecOutputTableHandlingModes

Group: Enumeration

Description:

This enumeration identifies table handling modes for the output document.

Values:

IG_REC_OUTPUT_TABLE_HANDL_MODE_USETABS
Export the recognized table-zones by exporting TAB positions and TAB characters into the final output document.
IG_REC_OUTPUT_TABLE_HANDL_MODE_USECELLS
Export the recognized table-zones as table objects with a row-and-column cell structure into the final output document.


enumIGRecImgProcResultModes

Group: Enumeration

Description:

This enumeration specifies where an image processing operation will store the processed image.

Values:

IG_REC_PAGE_CREATION_MODE_INPLACE
The original image will be overwritten.
IG_REC_PAGE_CREATION_MODE_NEWPAGE
A new page will be appended to the document containing the image. The newly created image will not be kept in memory.
IG_REC_PAGE_CREATION_MODE_NEWPAGELOCK
A new page will be appended to the document containing the image, and it will be kept (locked) in the memory. The image can be unlocked using the Unlock method on that page.


enumIGRecParagraphSpacingModes

Group: Enumeration

Description:

This enumeration identifies paragraph spacing modes for the output document.

Values:

IG_REC_PARAGRAPH_SPACING_MODE_NONE
Space before paragraphs information will not be exported into the final output document.
IG_REC_PARAGRAPH_SPACING_MODE_AUTO
Space before paragraphs information will be automatically determined and exported into the final output document.
IG_REC_PARAGRAPH_SPACING_MODE_ZERO
Extra space paragraph property will be exported, however no extra space will be added before paragraphs.
IG_REC_PARAGRAPH_SPACING_CUSTOM
The specified amount of free space will be added before each paragraph.


enumIGRecPrimaryReductionModes

Group: Enumeration

Description:

This enumeration identifies primary reduction modes for image preprocessing.

Values:

IG_REC_PRIM_REDUCTION_MODE_AUTO
This has an effect on grayscale or 24-bit color images: a B/W image is created in ENGine's memory. An automatic adaptive thresholding algorithm is applied for the binarization of the image. Use the Brightness property to fine tune the threshold calculation.
IG_REC_PRIM_REDUCTION_MODE_SET
This has an effect on grayscale or 24-bit color images: a bitonal image is created internally. Thresholding with a user defined threshold value, set by the Threshold property.
IG_REC_PRIM_REDUCTION_MODE_NO
There is no conversion while loading the image. The image is loaded without any conversion (i.e. a color image retains its color attributes).
IG_REC_PRIM_REDUCTION_MODE_GLOBAL
This has an effect on grayscale or 24-bit color images: a bitonal image is created internally. An automatic thresholding algorithm with a page-level global threshold value is applied for the binarization of the image.
IG_REC_PRIM_REDUCTION_MODE_GRAY
For a color image: a grayscale image is created internally. For a bitonal or grayscale image: no reduction is performed while loading the image.


enumIGRecRecogniseFlag

Group: Enumeration

Description:

This enumeration identifies the set of pages that are to be recognized.

Values:

IG_REC_RECOGNIZE_FLAG_CURRENT
Recognize only the active page of the document.
IG_REC_RECOGNIZE_FLAG_UNRECOGNIZED
Recognize all pages of the document which have still not been recognized.
IG_REC_RECOGNIZE_FLAG_ALL
Recognize all pages of the document.


enumIGRecRecognitionLanguages

Group: Enumeration

Description:

This enumeration identifies recognition languages.

Values:

See igrecconst.h file for this enumeration values.


enumIGRecRecognitionModule

Group: Enumeration

Description:

This enumeration identifies recognition modules of the ScanSoft recognition engine.

Values:

IG_REC_RECOGNITION_MODULE_AUTO
Specifies that the Recognition component will try to automatically select the most suitable recognition module for the zone. The recognition module to be applied is determined just before recognition, primarily by inquiring the filling method and other settings, most typically the Character Set.
IG_REC_RECOGNITION_MODULE_OMNIFONT_MTX
Specifies the M/TEXT omnifont module.
IG_REC_RECOGNITION_MODULE_OMNIFONT_MOR
Specifies the multi-lingual MOR omnifont module.
IG_REC_RECOGNITION_MODULE_DOT
Specifies the DOT 9-pin draft dot-matrix module.
IG_REC_RECOGNITION_MODULE_BAR
Specifies the BAR bar code module.
IG_REC_RECOGNITION_MODULE_OMR
Specifies the OMR optical mark module.
IG_REC_RECOGNITION_MODULE_HNR
Specifies the HNR handprinted numeral module.
IG_REC_RECOGNITION_MODULE_RER
Specifies the third-party RER reRecognition Handprint module.
IG_REC_RECOGNITION_MODULE_BRA
Not available
IG_REC_RECOGNITION_MODULE_MAT
Specifies the MAT matrix matching module.
IG_REC_RECOGNITION_MODULE_BAR2D
Specifies the third-party 2D bar code module.
IG_REC_RECOGNITION_MODULE_OMNIFONT_PLUS2W
Specifies the two-way voting POWR++ omnifont recognition module.
IG_REC_RECOGNITION_MODULE_OMNIFONT_FRX
Specifies the FireWorX omnifont recognition module.
IG_REC_RECOGNITION_MODULE_OMNIFONT_PLUS3W
Specifies the most accurate three-way voting omnifont recognition module.
IG_REC_RECOGNITION_MODULE_ASIAN
Not available
IG_REC_RECOGNITION_MODULE_SIZE
Number of recognition modules


enumIGRecResEnhancementModes

Group: Enumeration

Description:

This enumeration identifies resolution enhancement modes.

Values:

IG_REC_RES_ENHANCEMENT_NO
Resolution enhancement is disabled.
IG_REC_RES_ENHANCEMENT_YES
Forced (unconditional) resolution enhancement. The enhancement will be performed independently from the actual resolution of the image.
IG_REC_RES_ENHANCEMENT_AUTO
The resolution enhancement is performed on images with a resolution of 150 dpi or less.


enumIGRecRotationModes

Group: Enumeration

Description:

This enumeration identifies image rotation modes.

Values:

IG_REC_ROTATION_MODE_AUTO
Automatic image rotation, that means the program will automatically rotate and/or mirror the image if necessary.
IG_REC_ROTATION_MODE_NO
Do not transform the image.
IG_REC_ROTATION_MODE_RIGHT
Rotate image to the right (clockwise).
IG_REC_ROTATION_MODE_DOWN
Rotate image down (rotate twice).
IG_REC_ROTATION_MODE_LEFT
Rotate image to the left (counter-clockwise).


enumIGRecSecondaryReductionModes

Group: Enumeration

Description:

This enumeration identifies secondary reduction modes for image preprocessing.

Values:

IG_REC_SEC_REDUCTION_MODE_AUTO
This has an effect on grayscale or 24-bit color images: a bitonal image is created internally. An automatic adaptive thresholding algorithm is applied for the binarization of the image. Use the Brightness property to fine tune the threshold calculation.
IG_REC_SEC_REDUCTION_MODE_SET
This has an effect on grayscale or 24-bit color images: a bitonal image is created internally. Thresholding with a user defined threshold value, set by the Threshold property.
IG_REC_SEC_REDUCTION_MODE_GLOBAL
This has an effect on grayscale or 24-bit color images: a bitonal image is created internally. An automatic thresholding algorithm with a page-level global threshold value is applied for the binarization of the image.


enumIGRecSpellLanguages

Group: Enumeration

Description:

This enumeration identifies spelling languages.

Values:

See igrecconst.h file for this enumeration values.


enumIGRecTaskID

Group: Enumeration

Description:

This enumeration identifies tasks are performed by the recognition engine, such as image preprocessing, decomposition, etc.

Values:

IG_REC_TASK_IMGINPUT
This identifies the Image importing process
IG_REC_TASK_IMGSAVE
This identifies the image saving process. During this process the image or a part of it is saved to an image file.
IG_REC_TASK_IMGPREPROCESS
This identifies the Image pre-processing process.
IG_REC_TASK_DECOMPOSITION
This identifies the page-layout decomposition (auto-zoning) process.
IG_REC_TASK_RECOGNITION1
This identifies the 1st pass of the Recognition process, if applicable.
IG_REC_TASK_RECOGNITION2
This identifies the 2nd pass of the Recognition process, if applicable.
IG_REC_TASK_SPELLING
This identifies the Checking process.
IG_REC_TASK_READRDF
This identifies reading from the recognition data file.
IG_REC_TASK_WRITEFOUTDOC
This identifies the process for writing the recognized text to the final output document (to file or memory).
IG_REC_TASK_CONVERTIMG
This identifies the image conversion process activated by the IG_REC_TASK_WRITEFOUTDOC process for saving the image of a graphical image zone to the final output document (if this was requested).
IG_REC_TASK_RECOGNITION3
This identifies the 3rd pass of the Recognition process. This pass is applicable only for the Omnifont PLUS3W recognition module.
IG_REC_TASK_SCANNER_WARMUP
Not available


enumIGRecTradeoffModes

Group: Enumeration

Description:

This enumeration identifies recognition tradeoff modes.

Values:

IG_REC_TRADEOFF_MODE_ACCURATE
Most accurate recognition.
IG_REC_TRADEOFF_MODE_BALANCED
Mid-level accuracy/speed recognition.
IG_REC_TRADEOFF_MODE_FAST
Fast recognition.


enumIGRecWordAttribute

Group: Enumeration

Description:

This enumeration identifies attributes of a word in the dictionary.

Values:

IG_REC_WORD_ATTRIBUTE_LITERAL
Word is a literal string.
IG_REC_WORD_ATTRIBUTE_REGEXP
Word is a regular expression.


enumIGRecZoneType

Group: Enumeration

Description:

This enumeration identifies zone types.

Values:

IG_REC_ZONE_TYPE_FLOW
flow text type zone
IG_REC_ZONE_TYPE_TABLE
table type zone
IG_REC_ZONE_TYPE_GRAPHIC
zone containing graphics
IG_REC_ZONE_TYPE_COLUMN
column type zone
IG_REC_ZONE_TYPE_HEADER
header type zone
IG_REC_ZONE_TYPE_FOOTER
footer type zone
IG_REC_ZONE_TYPE_CAPTION
caption type zone
IG_REC_ZONE_TYPE_TITLE
title type zone
IG_REC_ZONE_TYPE_OTHER
other zone type
IG_REC_ZONE_TYPE_SGRAPHIC
zone containing graphics
IG_REC_ZONE_TYPE_HORZTEXT
horizontal text. Used in Asian OCR only
IG_REC_ZONE_TYPE_VERTTEXT
vertical text. Used in Asian OCR only


ImageGear TWAIN Component API Reference

ImageGear TWAIN Component API Reference

This chapter contains the complete description of the IGTwainCtl ActiveX Control in ImageGear, along with the decriptions of all the related COM objects. For the ActiveX control and each COM object, there are Properties, Methods and Events.

IGTwainCtl
ImageGear TWAIN component.
IGTWAINCap
A base object for all capability containers.
IGTWAINCapArray
A rectangular array of values that describe a logical item.
IGTWAINCapEnumeration
This object defines a list of values from which the Current Value can be chosen.
IGTWAINCapOneValue
A single value whose current and default values are coincident.
IGTWAINCapRange
Allows users to select their current value from a range of regularly spaced values.
IGTWAINDataSources
Lists the available TWAIN Data Sources and identifies the one that is the default Data Source.
IGTWAINFileInfo
This object holds information about TWAIN file system.
IGTWAINInfo
This object holds information about the Data Source Manager.

Below is an alphabetized reference of ImageGear TWAIN objects and interfaces and their API (properties, methods, and events).

See Also:

TWAIN Component Enumerations

Appendix D: TWAIN Scanning Capabilities


IGTwainCtl

Group: Control

Description:

ImageGear TWAIN component. The instance of IGTwainCtl should be either added to the form during design time, or created dynamically during run time.

Interface:

IIGTwainCtl extends IIGTwain

IIGTwain extends IIGComponent

Class Members:

ApplicationName
property
Gets or sets the name of the application that uses TWAIN.
AudioFileName
property
Specifies the file name for an audio snippet when Disk Transfer Mode is used.
ComponentInfo
property
Provides access to the IGComponentInfo object for IGTWAINCtl.
ComponentInterface
property
Provides access to the IIGComponent interface for IGTWAINCtl.
ImageFileName
property
Specifies the file name for a scanned image when Disk Transfer Mode is used.
KeepOpen
property
If set to True, allows the user to continue scanning until closing the UI.
SavePageBeforeEvent
property
This property specifies if the images saved during an AcquireToFile operation are to be saved before or after an AfterPage event.
SavePagesSeparately
property
Specifies if the images are to be stored in separate files.
UseUI
property
Determines whether or not a call to AcquireToDoc, AcquireToFile, AcquireToPage will cause the TWAIN Data Source to display its settings dialog so that the user can set the various capability values.
WindowHandle
property
Passed to the TWAIN Data Source when it is called by IGTWAINCtl.

Acquire
method
This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF).
AcquireToDoc
method
This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF).
AcquireToFile
method
This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF).
AcquireToPage
method
This causes the scanning of a single page through a TWAIN device.
CaptureAutomatically
method
This method automatically captures images from the selected TWAIN device.
ChangeDirectory
method
This method selects the current device within the Data Source
CloseFile
method
This method closes the file system context associated with pFileInfo.
CloseSource
method
This method closes the currently opened Data Source.
CopyFile
method
This method copies the specified file from one directory to another.
CreateCapability
method
This method creates a new capability container.
CreateDirectory
method
This method creates a new directory within the current directory.
DeleteFile
method
This method deletes a file or directory on the device.
FormatMedia
method
This method formats the specified storage.
GetCapability
method
This method gets information about a capability from a Data Source.
GetCurrentImage
method
This method retrieves the image that the device's file system context currently points to.
GetDSInfo
method
This method gets the IGTWAINDataSources object that lists the available TWAIN Data Sources and identifies the one that is the default Data Source.
GetFileInfo
method
This method gets information about the requested file.
GetFirstFile
method
This method gets the first filename in a directory and returns information about that file
GetImageLayout
method
This method gets the image layout of the selected TWAIN device.
GetNextFile
method
This method gets the next filename in a directory, and returns information about that file
GetTWAINInfo
method
This method gets the IGTWAINInfo that contains version information about the Data Source Manager.
OpenSource
method
This method loads the specified Data Source into main memory and causes its initialization.
Preview
method
This function acquires preview images from the selected TWAIN device and displays them using Data Source's preview user interface.
RenameFile
method
This method renames (and optionally moves) a file or directory.
SetCapability
method
This method sets or resets the current value of a capability.
SetImageLayout
method
This method sets the image layout of the selected TWAIN device.

AfterDoc
event
This event is fired by IGTwainCtl after all the pages of a document have been scanned, processed and/or saved using Acquire, AcquireToDoc and AcquireToFile methods. It allows you to find out how many pages have been scanned so far, and what the status of the paper availability in the ADF.
AfterPage
event
This event is fired by IGTwainCtl after each page have been acquired using Acquire, AcquireToDoc, AcquireToFile methods.
BeforeDoc
event
This event is fired by IGTwainCtl before any of the pages of the document have been retrieved, processed and/or saved.
BeforePage
event
This event is fired by IGTwainCtl just before a new page is required using Acquire, AcquireToDoc and AcquireToFile methods.


Acquire

Group: Method

Description:

This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF).

Use OpenSource to select the desired Data Source, and SetCapability to set desired capabilities values, prior to calling this method.

Set UseUI to True, prior to calling this method, if you want ImageGear to obtain the capability settings from the end-user.

Declaration:

Acquire(NumPages As Long)

Parameters:

NumPages
The number of pages t o scan to the document. Setting number of pages to -1 results in acquiring all the available pages.

Return value:

N/A


AcquireToDoc

Group: Method

Description:

This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF). The images are stored as separate pages in pDoc.

Use OpenSource to select the desired Data Source, and SetCapability to set desired capabilities values, prior to calling this method.

Set UseUI to True, prior to calling this method, if you want ImageGear to obtain the capability settings from the end-user.

Declaration:

AcquireToDoc(pDoc As IGDocument, NumPages As Long)

Parameters:

pDoc
IGDocument to contain the acquired images - one image per IGPage.
NumPages
The number of pages t o scan to the document. Setting number of pages to -1 results in acquiring all the available pages.

Return value:

N/A


AcquireToFile

Group: Method

Description:

This method is used to scan multiple pages from a scanner equipped with an Automatic Document Feeder (ADF).

If FileName specifies only a directory but not a file name, a separate file for each page will be created, using the names 0000001.tif, 00000002.tif, 00000003.tif, etc. If those files already exist, they will be deleted before being scanned into. The name specified by FileName must end with a backslash '\' character in order to be interpreted as a directory.

If FileName specifies a filename and SavePagesSeparately is set to True, a separate file for each page will be created, but will use part of the name that you supplied. If the name you supplied was "ScanTest.bmp", your pages will be named as follows: ScanTest1.bmp, ScanTest2.bmp, ScanTest3.bmp ... ScanTest10.bmp, ScanTest11.bmp, etc. If these files already exist, they will be deleted before being scanned into.

If SavePagesSeparately is False and FileFormat is set to a format type that supports multiple pages, such as TIFF, DCX, or MO:DCA, the images are stored in one file identified by the FileName parameter.

If SavePageBeforeEvent is True, each image is saved before the AfterPage event occurs. Otherwise, the images are saved after the AfterPage event. Use OpenSource to select the desired Data Source, and SetCapability to set desired capabilities values prior to calling this method. Set UseUI to True, prior to calling this method, if you want ImageGear to obtain the capability settings from the end-user.

Declaration:

AcquireToFile(FileName As String, NumPages As Long, FileFormat
As enumIGSaveFormats)

Parameters:

FileName
The name of the file to scan to.
NumPages
The number of pages to scan. Setting number of pages to -1 results in acquiring all the available pages.
FileFormat
The format of the file to scan to.

Return value:

N/A


AcquireToPage

Group: Method

Description:

This method causes the scanning of a single page through a TWAIN device.

Use OpenSource to select the desired Data Source, and SetCapability to set desired capabilities values, prior to calling this method.

Set UseUI to True, prior to calling this method, if you want ImageGear to obtain the capability settings from the end-user.

Declaration:

AcquireToPage(pPage As IGPage)

Parameters:

pPage
The IGPage that the acquired image will be placed into.

Return value:

N/A


AfterDoc

Group: Event

Description:

This event is fired by IGTwainCtl after all the pages of the document have been scanned using Acquire, AcquireToDoc, AcquireToFile methods. It allows you to find out how many pages have been scanned so far, and what the status of the pages availability in the ADF.

Declaration:

Sub AfterDoc(PageCount As Long, ADFLoaded As Long)

Parameters:

PageCount
The number of pages that were scanned into one document.
ADFLoaded
Returns the status of the paper supply in the ADF (if the ADF is being used). The following values can be returned:
  • 0 - ADF is empty
  • 1 - ADF still contains paper
  • -1 - TWAIN does not know if the ADF contains paper or not (i.e. an error occures in this case).


AfterPage

Group: Event

Description:

This event is fired by IGTwainCtl after each page is required using Acquire, AcquireToDoc, AcquireToFile methods.

If you are using the AcquireToFile method, the image will be written to a file before or after this event depending on how the SavePageBeforeEvent property is set.

  • EventParams.FileName: If you are using Disk File Transfer, this was the FileName given to the page just scanned and saved. If you are using Native or Buffered Memory Transfer in combination with the AcquireToFile method, this is the filename given to the page just scanned. In this case, the SavePageBeforeEvent property determines whether the file is written before or after this event occurs.
  • EventParams.CancelScanning: Set this to False if you want to continue scanning. Set it to True to cancel the scanning process.

Declaration:

Sub AfterPage(EventParams As IGTwainAfterPageEventParams)

Parameters:

EventParams.Page
IGPage contains the image just scanned.
EventParams.PageNum
The number of the page just scanned. The number of the first page is 1.
EventParams.PendCount
The number of pending pages left to be scanned. In the TWAIN lexicon the term "pending" refers to the number of pages left in the ADF or in the digital camera. TWAIN requires that the Data Source provide it with information about how many pages are "pending".
EventParams.FileName
If you are using Transfer or Buffered Memory Transfer Syntax, this will be the FileName given to the page that is just scanned. If you are using Disk File Transfer, this was the FileName given to the page just scanned.
EventParams.CancelScanning
Set to False if you want to continue scanning, set it to True to cancel the scanning process after saving the page just scanned.


ApplicationName

Group: Property

Description:

This property gets or sets the name of the application that uses TWAIN.

Property Summary:

Data Type:
String
Default Value:
"ImageGear application"
Access:
Read/Write


AudioFileName

Group: Property

Description:

This property specifies the file name for an audio snippet when Disk Transfer Mode is used.

If AudioFileName specifies a directory, but not a file name, a separate file for each snippet will be created, using these names 0000001.wav, 00000002.wav, 00000003.wav, etc. If those files already exist, they will be deleted before being written into.

If AudioFileName specifies a filename, a separate file will be created for each snippet, but will use part of the name that you supplied. If the name you supplied was "Audio.wav", your pages will be named Audio1.wav, Audio2.wav, Audio3.wav, etc. If these files already exist, they will be deleted before being written into.

Property Summary:

Data Type:
String
Default Value:
Path to the system temp directory.
Access:
Read/Write


BeforeDoc

Group: Event

Description:

This event is fired by IGTwainCtl before any of pages of the document are retrieved, processed and/or saved.

Declaration:

Sub BeforeDoc()


BeforePage

Group: Event

Description:

This event is fired by IGTwainCtl just before the new page is required using Acquire, AcquireToDoc, AcquireToFile methods. This event returns the page number and the bounding image rectangle (image rectangle within which the scanning will take place) for the image that is about to be scanned.

Declaration:

Sub BeforePage(EventParams As IGTwainBeforePageEventParams)

Parameters:

EventParams.PageNum
Returns the number of the page that is to be scanned. The number of the first page to be scanned is 1.
EventParams.Left
Returns the left coordinate of the selected layout rectangle that will be scanned for the current page.
EventParams.Top
Returns the top coopdinate of the selected layout rectangle that will be scanned for the current page.
EventParams.Right
Returns the right coordinate of the selected layout rectangle that will be scanned for the current page.
EventParams.Bottom
Returns the bottom coordinate of the selected layout rectangle that will be scanned for the current page.
EventParams.CancelScanning
Set it to False if you want to continue scanning, set it to True if you want to cancel scanning after saving the page just scanned.


CaptureAutomatically

Group: Method

Description:

This method automatically captures images from the selected TWAIN device. The captured images are stored on the device in ImageDirName directory and can be retrieved through browsing the file system.

Use OpenSource to select the desired Data Source, and SetCapability to set desired capabilities values, prior to calling this method.

Declaration:

CaptureAutomatically(lImageCount As Long,
lTimeBeforeFirstCapture As Long, lTimeBetweenCaptures As Long,
ImageDirName As String)

Parameters:

lImageCount
The number of images to be captured.
lTimeBeforeFirstCapture
The number of milliseconds before the first picture is to be taken, or the first image is to be scanned.
lTimeBetweenCaptures
The number of milliseconds to wait between pictures taken or images scanned.
ImageDirName
The destination directory within the Source (camera, storage, etc), where captured images will be stored.

Return value:

N/A


ChangeDirectory

Group: Method

Description:

This method selects the current device within the Data Source (camera, storage, etc). If the device is a IG_TW_FY_DOMAIN, then this command enters a directory that can contain IG_TW_FY_HOST files. If the device is a IG_TW_FY_HOST, then this command enters a directory that can contain IG_TW_FY_DIRECTORY files. If the device is a IG_TW_FY_DIRECTORY, then this command enters a directory that can contain IG_TW_FY_DIRECTORY or IG_TW_FY_IMAGE files.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

ChangeDirectory(DirName As String)

Parameters:

DirName
The name of the directory.

Return value:

N/A


CloseFile

Group: Method

Description:

This method closes the file system context associated with pFileInfo. Every call to GetFirstFile must be matched by a call to CloseFile to release the file system context.

Declaration:

CloseFile(pFileInfo As IGTWAINFileInfo)

Parameters:

pFileInfo

Return value:

N/A


CloseSource

Group: Method

Description:

This method closes the currently opened Data Source. When an application is finished with a Data Source, it must formally close the session between them using this method. This is necessary in case the Data Source only supports connection with a single application (many desktop scanners will behave this way). A Data Source such as this cannot be accessed by other applications until its current session is terminated.

Declaration:

CloseSource()

Return value:

N/A


ComponentInfo

Group: Property

Description:

Provides access to the IGComponentInfo object for IGTWAINCtl. The IGComponentInfo object identifies the particular version of IGTWAINCtl installed on the computer.

Property Summary:

Data Type:
IGComponentInfo
Default Value:
N/A
Access:
Read only


ComponentInterface

Group: Property

Description:

Provides access to the IIGComponent interface for IGTWAINCtl. Used in IGCoreCtl.AssociateComponent call.

Property Summary:

Data Type:
IGComponent
Default Value:
N/A
Access:
Read only


CopyFile

Group: Method

Description:

This method copies the specified file from one directory to another. If the Recursive flag is True and the file type specified is IG_TW_FY_DIRECTORY, then that directory, and all the files and directories under it, are copied. The application cannot copy files into the root directory.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

CopyFile(SrcFileName As String, DestFileName As String,
Recursive As Boolean)

Parameters:

SrcFileName
The path to the source file/directory.
DestFileName
The path to the destination file/directory.
Recursive
Specifies whether the copying is recursive or not.

Return value:

N/A


CreateCapability

Group: Method

Description:

This method creates a new capability container.

Declaration:

CreateCapability(ContainerType As enumIGTWAINContainerType) As
IIGTWAINCap

Parameters:

ContainerType
Capability container type. Can be one of the following values:
IG_TW_ON_ONEVALUE - A single value whose current and default values are coincident. The range of available values for this type of capability is simply this single value. For example, a capability that indicates the presence of a document feeder could be of this type.
IG_TW_ON_ARRAY - A rectangular array of values that describe a logical item. It is similar to the IG_TW_ON_ONEVALUE because the current and default values are the same and there are no other values to select from. For example, a list of the names, such as the supported capabilities list returned by the IG_TW_CAP_SUPPORTEDCAPS capability, would use this type of container.
IG_TW_ON_ENUMERATION - This is the most general type because it defines a list of values from which the Current Value can be chosen. The values do not progress uniformly through a range and there is not a consistent step size between the values. For example, if a Source's resolution options did not occur in even step sizes then an enumeration would be used (for example, 150, 400, and 600).
IG_TW_ON_RANGE - Many capabilities allow users to select their current value from a range of regularly spaced values. The capability can specify the minimum and maximum acceptable values and the incremental step size between values. For example, resolution might be supported from 100 to 600 in steps of 50 (100, 150, 200, ..., 550, 600).

Return value:

The newly created capability container. Stores detailed information about a capability.


CreateDirectory

Group: Method

Description:

This method creates a new directory within the current directory. Pathnames are not allowed, only the name of the new directory can be specified.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

CreateDirectory(DirName As String)

Parameters:

DirName
The name of the directory.

Return value:

N/A


DeleteFile

Group: Method

Description:

This method deletes a file or directory on the device. Pathnames are not allowed, only the name of the file or directory to be deleted can be specified. Recursive deletion can be specified by setting the Recursive to True.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

DeleteFile(FileName As String, Recursive As Boolean)

Parameters:

FileName
The name of the file to delete.
Recursive
Specifies whether it is recursive deleting or not.

Return value:

N/A


FormatMedia

Group: Method

Description:

This method formats the specified storage. This operation destroys all images and subdirectories under the selected device. Use with caution!

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

FormatMedia(DeviceName As String)

Parameters:

DeviceName
The name of the scanning device.

Return value:

N/A


GetCapability

Group: Method

Description:

This method gets information about a capability from a Data Source.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

GetCapability(Cap As enumIGTWAINCapabilities, Msg As
enumIGTWAINMessages) As IIGTWAINCap

Parameters:

Cap
The numeric designator of the capability (of the form IG_TW_CAP_xxxx, IG_TW_ICAP_xxxx, or IG_TW_ACAP_xxxx).
Msg
Message ID. Can be one of the following values:
IG_TW_MSG_GET - Get one or more capability values.
IG_TW_MSG_GETCURRENT - Get current capability value.
IG_TW_MSG_GETDEFAULT - Get default (e.g. power up) capability value.

Return value:

One of four container objects where detailed information about the capability is stored.


GetCurrentImage

Group: Method

Description:

This method retrieves the image that the device's file system context currently points to. Use GetFirstFile and GetNextFile to select the file you want to transfer from the device's file system.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

GetCurrentImage(pPage As IGPage, Flags As Long)

Parameters:

pPage
The IGPage that the acquired image will be placed into.
Flags
Specifies the type of data to transfer. Can be one of the following values:
IG_TW_IMAGE - transfer the current image.
IG_TW_AUDIO - transfer the audio snippets associated with the current image.

Return value:

N/A


GetDSInfo

Group: Method

Description:

This method gets the IGTWAINDataSources object that lists the available TWAIN Data Sources and identifies the one that is the default Data Source.

Declaration:

GetDSInfo() As IGTWAINDataSources

Return value:

An IGTWAINDataSources containing information about the available TWAIN Data Sources.


GetFileInfo

Group: Method

Description:

This method gets information about the requested file.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

GetFileInfo(FileName As String) As IGTWAINFileInfo

Parameters:

FileName
The name of the file to get information about.

Return value:

An IGTWAINFileInfo containing information about the requested file.


GetFirstFile

Group: Method

Description:

This method gets the first filename in a directory and returns information about that file (the same information that can be retrieved with GetFileInfo). The Data Source positions the file system context to point to the first filename. IGTWAINFileInfo.Name contains the absolute path and name of the file. If the Application calls GetCurrentImage, the current image will be transferred. Applications must not assume any ordering of the files delivered by the Data Source, with one exception: if GetFirstFile is called in the root directory, the operation must return an IG_TW_FY_CAMERA device.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

GetFirstFile() As IGTWAINFileInfo

Return value:

An IGTWAINFileInfo containing information about the first file in a directory.


GetImageLayout

Group: Method

Description:

This method gets the image layout of the selected TWAIN device. You can use it to limit your capture region to a portion of the device's total area. The units are in inches by default. You can set IG_TW_ICAP_UNITS capability to choose different units.

Use OpenSource to select the desired Data Source prior to calling this method.

NOTE: TWAIN image layout is specified using the Left, Top, Right, and Bottom properties of IGDoubleRectangle. The Width and Height properties should not be used, because they assume endpoint-inclusive semantics. Using endpoint-inclusive semantics, a rectangle with left, top, right, and bottom coordinates all equal to 0 is one pixel wide and one pixel tall. So, for example, the Width property is calculated as Right - Left + 1. This is not appropriate for a TWAIN image layout rectangle. Therefore, use only the Left, Top, Right, and Bottom properties.

Declaration:

GetImageLayout() As IGDoubleRectangle

Return value:

IGDoubleRectangle that represents the physical bounding box of the region to be acquired.


GetNextFile

Group: Method

Description:

This method gets the next filename in a directory, and returns information about that file (the same information that can be retrieved with GetFileInfo). The Data Source positions the file system context to point to the next filename. IGTWAINFileInfo.Name contains the absolute path and name of the file. If the Application calls GetCurrentImage, the current image will be transferred. A call to GetFirstFile must be issued on a given directory before the first call to GetNextFile.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

GetNextFile(pFileInfo As IGTWAINFileInfo)

Parameters:

pFileInfo
The IGTWAINFileInfo object created by GetFirstFile.

Return value:

N/A


GetTWAINInfo

Group: Method

Description:

This method gets the IGTWAINInfo that contains version information about the Data Source Manager.

Declaration:

GetTWAINInfo() As IGTWAINInfo

Return value:

An IGTWAINInfo containing version information about the Data Source Manager.


ImageFileName

Group: Property

Description:

This property specifies the file name for a scanned image when Disk Transfer Mode is used.

If ImageFileName specifies a directory, but not a file name, a separate file for each page will be created, using these names 0000001.tif, 00000002.tif, 00000003.tif, etc. If those files already exist, they will be deleted before being scanned into.

If ImageFileName specifies a filename, a separate file will be created for each page, but will use part of the name that you supplied. If the name you supplied was "ScanTest.bmp", your pages will be named ScanTest1.bmp, ScanTest2.bmp, ScanTest3.bmp ... ScanTest10.bmp, ScanTest11.bmp, etc. If these files already exist, they will be deleted before being scanned into..

Property Summary:

Data Type:
String
Default Value:
Path to the system temp directory.
Access:
Read/Write


KeepOpen

Group: Property

Description:

If set to True, allows the user to continue scanning until closing the UI.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write


OpenSource

Group: Method

Description:

This method loads the specified Data Source into main memory and causes its initialization.

  • If SourceName is an empty string and UseUI is set to True, a call to this method will cause Data Source Manager to display the default source selection dialog.
  • If SourceName is an empty string and UseUI is set to False, the default Data Source will be opened.
  • If SourceName is a name of an existing Data Source, the specified Data Source will be opened.

When an application is finished with the Data Source, call CloseSource to close the session between them.

Declaration:

OpenSource(SourceName As String)

Parameters:

SourceName
The name of the data source to open.

Return value:

N/A


Preview

Group: Method

Description:

This function acquires preview images from the selected TWAIN device and displays them using Data Source's preview user interface.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

Preview()

Return value:

N/A


RenameFile

Group: Method

Description:

This method renames (and optionally moves) a file or directory. Absolute and relative path names are supported. A file may not be overwritten with this command. If an Application wishes to do this, it must first delete the unwanted file, then issue the rename command. Filenames in the root directory cannot be moved or renamed.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

RenameFile(OldName As String, NewName As String)

Parameters:

OldName
The name of the file/directory to be renamed.
NewName
The new name of the file/directory.

Return value:

N/A


SavePageBeforeEvent

Group: Property

Description:

This property specifies if the images saved during an AcquireToFile operation are to be saved before or after an AfterPage event.

Saving the page before the event makes the file available for access during the event.

Saving the page after the event makes the page available for post-processing (before saving the file) during the event.

When using AcquireToFile, you must choose one or the other.

NOTE: If you want to do both post-processing and file access as each page is scanned, you can use Acquire instead of AcquireToFile. You will have to do the work of naming and saving each file in your own code, but you will have more control.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write


SavePagesSeparately

Group: Property

Description:

This property specifies if the images are to be stored in separate files.

If FileName specifies only a directory but not a file name, a separate file for each page will be created, using the names 0000001.tif, 00000002.tif, 00000003.tif, etc. If those files already exist, they will be deleted before being scanned into.

If FileName specifies a filename and SavePagesSeparately is set to True, a separate file for each page will be created, but will use part of the name that you supplied. If the name you supplied was "ScanTest.bmp", your pages will be named as follows: ScanTest1.bmp, ScanTest2.bmp, ScanTest3.bmp ... ScanTest10.bmp, ScanTest11.bmp, etc. If these files already exist, they will be deleted before being scanned into.

If SavePagesSeparately is False and FileFormat is set to a format type that supports multiple pages, such as TIFF, DCX, or MO:DCA, the images are stored in one file identified by the FileName parameter.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write


SetCapability

Group: Method

Description:

This method sets or resets the current value of a capability.

Use OpenSource to select the desired Data Source, prior to calling this method.

Declaration:

SetCapability(pCap As IIGTWAINCap, Msg As enumIGTWAINMessages)

Parameters:

pCap
Specifies the capability to change.
Msg
Message ID. Can be one of the following values:
IG_TW_MSG_SET - Set one or more capability values.
IG_TW_MSG_RESET - Set current capability value to default value.

Return value:

N/A


SetImageLayout

Group: Method

Description:

This method sets the image layout of the selected TWAIN device. You can use this to limit your capture region to a portion of the device's total area. The units are in inches by default. You can set the IG_TW_ICAP_UNITS capability to choose different units.

Use OpenSource to select the desired Data Source prior to calling this function.

NOTE: TWAIN image layout is specified using the Left, Top, Right, and Bottom properties of IGDoubleRectangle. The Width and Height properties should not be used, because they assume endpoint-inclusive semantics. Using endpoint-inclusive semantics, a rectangle with left, top, right, and bottom coordinates all equal to 0 is one pixel wide and one pixel tall. So, for example, the Width property is calculated as Right - Left + 1. This is not appropriate for a TWAIN image layout rectangle. Therefore, use only the Left, Top, Right, and Bottom properties.

Declaration:

SetImageLayout(pVal As IGDoubleRectangle)

Parameters:

pVal
IGDoubleRectangle representing the physical bounding box of the region to be acquired.

Return Value:

N/A


UseUI

Group: Property

Description:

If set to True, then a call to AcquireToDoc, AcquireToFile, AcquireToPage will cause the TWAIN Data Source to display its settings dialog so that the user can set the various capability values. If set to False, then a call to one of the AcquireXXX methods will result in the immediate acquisition of the image(s), using the current capability settings.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write


WindowHandle

Group: Property

Description:

This value is simply passed to the TWAIN Data Source when it is called by IGTwainCtl. Your application should set this to the handle of the main window in the application.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write


IGTWAINCap

Group: Object

Description:

This is a base object for all capability containers.

Interface:

IIGTWAINCap extends IDispatchEx

Class Members:

ContainerType
property
This property gets the container type of the capability.
ID
property
This property gets or sets the numeric designator of the capability
ItemType
property
This property gets or sets the capability data type.


ContainerType

Group: Property

Description:

This property gets the container type of the capability.

Property Summary:

Data Type:
enumIGTWAINContainerType
Default Value:
IG_TW_ON_ARRAY
Access:
Read only


ID

Group: Property

Description:

This property gets or sets the numeric designator of the capability (of the form IG_TW_CAP_xxxx, IG_TW_ICAP_xxxx, or IG_TW_ACAP_xxxx).

Property Summary:

Data Type:
enumIGTWAINCapabilities
Default Value:
N/A
Access:
Read/Write


ItemType

Group: Property

Description:

This property gets or sets the capability data type. Can be one of the following values:

  • AM_TID_META_INT8
  • AM_TID_META_UINT8
  • AM_TID_META_INT16
  • AM_TID_META_UINT16
  • AM_TID_META_INT32
  • AM_TID_META_UINT32
  • AM_TID_META_BOOL
  • AM_TID_META_DOUBLE
  • AM_TID_META_STRING32
  • AM_TID_META_STRING64
  • AM_TID_META_STRING128
  • AM_TID_META_STRING255
  • AM_TID_META_STRING1024
  • AM_TID_META_STRING_UNICODE512
  • AM_TID_META_DRECT

Property Summary:

Data Type:
enumIGSysDataType
Default Value:
N/A
Access:
Read/Write


IGTWAINCapArray

Group: Object

Description:

IGTWAINCapArray is a rectangular array of values that describe a logical item. It is similar to the IGTWAINCapOneValue because the current and default values are the same and there are no other values to select from. For example, a list of the names, such as the supported capabilities list returned by the IG_TW_CAP_SUPPORTEDCAPS capability, would use this type of container.

Interface:

IIGTWAINCapArray extends IIGTWAINCap

IIGTWAINCap extends IDispatchEx

Class Members:

ContainerType
property
This property gets the container type of the capability.
ID
property
This property gets or sets the numeric designator of the capability
ItemType
property
This property gets or sets the capability data type.
Values
property
This property gets the array of capability values.


Values

Group: Property

Description:

This property gets the array of capability values.

Property Summary:

Data Type:
IGDataArray
Default Value:
N/A
Access:
Read only


IGTWAINCapEnumeration

Group: Object

Description:

This is the most general type because it defines a list of values from which the Current Value can be chosen. The values do not progress uniformly through a range and there is not a consistent step size between the values. For example, if a Source's resolution options did not occur in even step sizes then an enumeration would be used (for example, 150, 400, and 600).

Interface:

IIGTWAINCapEnumeration extends IIGTWAINCap

IIGTWAINCap extends IDispatchEx

Class Members:

ContainerType
property
This property gets the container type of the capability.
CurrentValueIndex
property
This property gets or sets the index in the array of the current value.
DefaultValueIndex
property
This property gets or sets the index in the array of the default value.
ID
property
This property gets or sets the numeric designator of the capability
ItemType
property
This property gets or sets the capability data type.
Values
property
This property gets the array of capability values.


ContainerType

Group: Property

Description:

This property gets the container type of the capability.

Property Summary:

Data Type:
enumIGTWAINContainerType
Default Value:
IG_TW_ON_ENUMERATION
Access:
Read only


CurrentValueIndex

Group: Property

Description:

This property gets or sets the index in the array of the current value.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write


DefaultValueIndex

Group: Property

Description:

This property gets or sets the index in the array of the default value.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write


ItemType

Group: Property

Description:

This property gets or sets the capability data type. Can be one of the following values:

  • AM_TID_META_INT8
  • AM_TID_META_UINT8
  • AM_TID_META_INT16
  • AM_TID_META_UINT16
  • AM_TID_META_INT32
  • AM_TID_META_UINT32
  • AM_TID_META_BOOL
  • AM_TID_META_DOUBLE
  • AM_TID_META_STRING32
  • AM_TID_META_STRING64
  • AM_TID_META_STRING128
  • AM_TID_META_STRING255
  • AM_TID_META_STRING1024
  • AM_TID_META_STRING_UNICODE512
  • AM_TID_META_DRECT.

Property Summary:

Data Type:
enumIGSysDataType
Default Value:
N/A
Access:
Read/Write


IGTWAINCapOneValue

Group: Object

Description:

IGTWAINCapOneValue is a single value whose current and default values are coincident. The range of available values for this type of capability is simply this single value. For example, a capability that indicates the presence of a document feeder could be of this type.

Interface:

IIGTWAINCapOneValue extends IIGTWAINCap

IIGTWAINCap extends IDispatchEx

Class Members:

ContainerType
property
This property gets the container type of the capability.
ID
property
This property gets or sets the numeric designator of the capability
ItemType
property
This property gets or sets the capability data type.
Value
property
This property gets the IGDataItem object that represents the capability value.


ContainerType

Group: Property

Description:

This property gets the container type of the capability.

Property Summary:

Data Type:
enumIGTWAINContainerType
Default Value:
IG_TW_ON_ONEVALUE
Access:
Read only


Value

Group: Property

Description:

This property gets the IGDataItem object that represents the capability value.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only


IGTWAINCapRange

Group: Object

Description:

Many capabilities allow users to select their current value from a range of regularly spaced values. The capability can specify the minimum and maximum acceptable values and the incremental step size between values. For example, resolution might be supported from 100 to 600 in steps of 50 (100, 150, 200, ..., 550, 600).

Interface:

IIGTWAINCapRange extends IIGTWAINCap

IIGTWAINCap extends IDispatchEx

Class Members:

ContainerType
property
This property gets the container type of the capability.
CurrentValue
property
This property gets the IGDataItem object that represents the current value of the range.
DefaultValue
property
This property gets the IGDataItem object that represents the default value of the range.
ID
property
This property gets or sets the numeric designator of the capability
ItemType
property
This property gets or sets the capability data type.
MaxValue
property
This property gets the IGDataItem object that represents the maximum value of the range.
MinValue
property
This property gets the IGDataItem object that represents the minimum value of the range.
StepSize
property
This property gets the IGDataItem object that represents the step size of the range.


ContainerType

Group: Property

Description:

This property gets the container type of the capability.

Property Summary:

Data Type:
enumIGTWAINContainerType
Default Value:
IG_TW_ON_RANGE
Access:
Read only


CurrentValue

Group: Property

Description:

This property gets the IGDataItem object that represents the current value of the range.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only


DefaultValue

Group: Property

Description:

This property gets the IGDataItem object that represents the default value of the range.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only


ItemType

Group: Property

Description:

This property gets or sets the capability data type. Can be one of the following values:

  • AM_TID_META_INT8
  • AM_TID_META_UINT8
  • AM_TID_META_INT16
  • AM_TID_META_UINT16
  • AM_TID_META_INT32
  • AM_TID_META_UINT32
  • AM_TID_META_DOUBLE

Property Summary:

Data Type:
enumIGSysDataType
Default Value:
N/A
Access:
Read/Write


MaxValue

Group: Property

Description:

This property gets the IGDataItem object that represents the maximum value of the range.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only


MinValue

Group: Property

Description:

This property gets the IGDataItem object that represents the minimum value of the range.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only


StepSize

Group: Property

Description:

This property gets the IGDataItem object that represents the step size of the range.

Property Summary:

Data Type:
IGDataItem
Default Value:
N/A
Access:
Read only


IGTWAINDataSources

Group: Object

Description:

IGTWAINDataSources lists the available TWAIN Data Sources and identifies the one that is the default Data Source.

Interface:

IIGTWAINDataSources extends IDispatchEx

Class Members:

DataSources
property
This property gets the list of the available TWAIN Data Sources.
DefaultDSIndex
property
This property gets the index in the DataSources array of the default Data Source.


DataSources

Group: Property

Description:

This property gets the list of the available TWAIN Data Sources.

Property Summary:

Data Type:
IGStringArray
Default Value:
N/A
Access:
Read only


DefaultDSIndex

Group: Property

Description:

This property gets the index in the DataSources array of the default Data Source.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


IGTWAINFileInfo

Group: Object

Description:

This object holds information about TWAIN file system.

Interface:

IIGTWAINFileInfo extends IDispatchEx

Class Members:

CreateTimeDate
property
This property gets the creation date of the file.
DeviceGroupMask
property
This property is used to group cameras (e.g., front/rear bitonal, front/rear grayscale, etc.).
FileType
property
This property gets the type of the file.
FreeSpace
property
This property gets bytes of free space on the current device.
ModifiedTimeDate
property
This property gets the last date the file was modified.
Name
property
This property gets the name of the file.
NewImageSize
property
This property gets an estimate of the amount of space a new image would take up.
NumberOfFiles
property
This property gets the number of files, depends on FileType.
NumberOfSnippets
property
This property gets the number of audio snippets.
Size
property
This property gets the size of current Type.


CreateTimeDate

Group: Property

Description:

This property gets the creation date of the file.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only


DeviceGroupMask

Group: Property

Description:

This property is used to group cameras (e.g., front/rear bitonal, front/rear grayscale, etc.).

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


FileType

Group: Property

Description:

This property gets the type of the file.

Property Summary:

Data Type:
enumIGTWAINFileType
Default Value:
N/A
Access:
Read only


FreeSpace

Group: Property

Description:

This property gets bytes of free space on the current device.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


ModifiedTimeDate

Group: Property

Description:

This property gets the last date the file was modified.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only


Name

Group: Property

Description:

This property gets the name of the file.

Property Summary:

Data Type:
String
Default Value:
N/A
Access:
Read only


NewImageSize

Group: Property

Description:

This property gets an estimate of the amount of space a new image would take up.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


NumberOfFiles

Group: Property

Description:

This property gets the number of files, depends on FileType.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


NumberOfSnippets

Group: Property

Description:

This property gets the number of audio snippets.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


Size

Group: Property

Description:

This property gets the size of current Type.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


IGTWAINInfo

Group: Object

Description:

This object holds information about the Data Source Manager.

Interface:

IIGTWAINInfo extends IDispatchEx

Class Members:

VersionMajor
property
This property gets the major part of the version number of the TWAIN Data Source Manager.
VersionMinor
property
This property gets the minor part of the version number of the TWAIN Data Source Manager.


VersionMajor

Group: Property

Description:

This property gets the major part of the version number of the TWAIN Data Source Manager.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


VersionMinor

Group: Property

Description:

This property gets the minor part of the version number of the TWAIN Data Source Manager.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only


TWAIN Component Enumerations

The ImageGear TWAIN component exposes the following enumerations:

enumIGTWAINAlarms
Determines specific audible alarms.
enumIGTWAINAudioFormats
Determines which Audio file formats are supported.
enumIGTWAINBarcodeRotation
Determines the bar code's orientation on the scanned image.
enumIGTWAINBarcodeSearchModes
Restricts barcode searching to certain orientations
enumIGTWAINBarcodeType
Determines the type of bar code found on a page.
enumIGTWAINBitDepthReduction
Specifies the Reduction Method the Source should use to reduce the bit depth of the data.
enumIGTWAINBitOrder
Specifies how the bytes in an image are filled by the Source.
enumIGTWAINCapabilities
Specifies ImageGear TWAIN capabilities.
enumIGTWAINCBType
This enumeration determines the type of callback function.
enumIGTWAINClearBuffers
Determines the type of buffer clearing process.
enumIGTWAINColorDataFormats
Allows the application and Source to identify which color data formats are available.
enumIGTWAINContainerType
Capability container type.
enumIGTWAINControlParams
TWAIN control parameters.
enumIGTWAINCountries
Specifies the country originated the scanned document.
enumIGTWAINDeskewStatus
Determines the status of the deskew operation.
enumIGTWAINDeviceEvents
Determines the device event.
enumIGTWAINDuplex
Determines whether the scanner supports duplex.
enumIGTWAINFeederAlignment
Determines which special actions applicetion may need to take when negotiating frames with the Source.
enumIGTWAINFeederOrder
Determines the order of scanning.
enumIGTWAINFileSystem
This enumeration determines the configuration of TWAIN file system.
enumIGTWAINFileType
File types in the device's file system.
enumIGTWAINFilterType
Determines the color characteristic of the subtractive filter applied to the image data.
enumIGTWAINFlashUsed
Determines which flash the image was acquired to use.
enumIGTWAINFlipRotation
Determines the orientation of images that flip orientation of every other image.
enumIGTWAINImageFilter
Determines the algorithm used to improve the quality of the image.
enumIGTWAINJobControl
Determines how the job can be processed,
enumIGTWAINJPEGQuality
Specifies the kind of JPEG quantization tables that tradeoff quality versus compressed image size.
enumIGTWAINLanguages
Specifies language of the scanned document.
enumIGTWAINLigthPath
Determines whether the image is captured transmissively or reflectively.
enumIGTWAINLightSource
Determines the general color characteristic of the light source used to acquire the image.
enumIGTWAINMessages
This enumeration represents capability control messages.
enumIGTWAINNoiseFilter
Selects the algorithm used to remove noise.
enumIGTWAINOrientation
Determines which edge of the "paper" the image's "top" is aligned with.
enumIGTWAINOverscanModes
Determines the overscanning mode.
enumIGTWAINPatchCode
Determines prioritized list of patch code types dictating the order in which patch codes will be sought
enumIGTWAINPixelFlavor
Describes the sense of the pixel whose numeric value is zero (minimum data value).
enumIGTWAINPixelType
Specifies the type of pixel data that a Source is capable of acquiring (for example, black and white, gray, RGB, etc.).
enumIGTWAINPowerSupply
Reports the kinds of power available to the device.
enumIGTWAINPrinter
Determines the printer devices being used by application.
enumIGTWAINPrinterModes
Specifies current printer mode.
enumIGTWAINSupportedSizes
Specifies the size(s) the Source can/should use to acquire image data.
enumIGTWAINUnits
Determines the unit of measure for all quantities.
enumIGTWAINXferFlags
This enumeration provides the flags for transfer mechanism.
enumIGTWAINXferType
Determines which type of transfer mechanisms the application and Source have in common.


enumIGTWAINAlarms

Group: Enumeration

Description:

This enumeration determines specific audible alarms.

Values:

IG_TW_AL_ALARM
Catchall for alarms not explicitly listed. It is also used where a device only provides control over a single, multi-use alarm.
IG_TW_AL_BARCODE
Barcode alarm
IG_TW_AL_DOUBLEFEED
Cover paper handling errors.
IG_TW_AL_FEEDERERROR
Covers paper handling errors such as jams, double-feeds, skewing and the like; conditions that most likely stop scanning.
IG_TW_AL_FEEDERWARNING
Covers non-fatal events, such as feeder empty.
IG_TW_AL_JAM
Cover paper handling errors.
IG_TW_AL_PATCHCODE
Patchcode alarm
IG_TW_AL_POWER
Generates alarms for any changes in power to the device.
IG_TW_AL_SKEW
Cover paper handling errors.


enumIGTWAINAudioFormats

Group: Enumeration

Description:

This enumeration determines which Audio file formats are supported.

Values:

IG_TW_AF_AIFF
AIFF format
IG_TW_AF_AU
AU format
IG_TW_AF_SND
SND format
IG_TW_AF_WAV
WAV format


enumIGTWAINBarcodeRotation

Group: Enumeration

Description:

This enumeration determines the bar code's orientation on the scanned image.

Values:

IG_TW_BCOR_ROT0
Normal reading orientation
IG_TW_BCOR_ROT180
Rotated 180 degrees clockwise
IG_TW_BCOR_ROT270
Rotated 270 degrees clockwise
IG_TW_BCOR_ROT90
Rotated 90 degrees clockwise
IG_TW_BCOR_ROTX
The orientation is not known.


enumIGTWAINBarcodeSearchModes

Group: Enumeration

Description:

This enumeration restricts barcode searching to certain orientations, or prioritizes one orientation over the other.

Values:

IG_TW_BD_HORZ
Horizontal mode
IG_TW_BD_HORZVERT
Horizontal/Vertical mode
IG_TW_BD_VERT
Vertical mode
IG_TW_BD_VERTHORZ
Vertical/Horizontal mode


enumIGTWAINBarcodeType

Group: Enumeration

Description:

This enumeration determines the type of bar code found on a page.

Values:

IG_TW_BT_2OF5DATALOGIC
2OF5DATALOGIC
IG_TW_BT_2OF5IATA
2OF5IATA
IG_TW_BT_2OF5INDUSTRIAL
2OF5INDUSTRIAL
IG_TW_BT_2OF5INTERLEAVED
2OF5INTERLEAVED
IG_TW_BT_2OF5MATRIX
2OF5MATRIX
IG_TW_BT_2OF5NONINTERLEAVED
2OF5NONINTERLEAVED
IG_TW_BT_3OF9
3OF9
IG_TW_BT_3OF9FULLASCII
3OF9FULLASCII
IG_TW_BT_CODABAR
CODABAR
IG_TW_BT_CODABARWITHSTARTSTOP
CODABARWITHSTARTSTOP
IG_TW_BT_CODE128
CODE128
IG_TW_BT_CODE93
CODE93
IG_TW_BT_EAN13
EAN13
IG_TW_BT_EAN8
EAN8
IG_TW_BT_MAXICODE
MAXICODE
IG_TW_BT_PDF417
PDF417
IG_TW_BT_POSTNET
POSTNET
IG_TW_BT_UCC128
UCC128
IG_TW_BT_UPCA
UPCA
IG_TW_BT_UPCE
UPCE


enumIGTWAINBitDepthReduction

Group: Enumeration

Description:

This enumeration specifies the Reduction Method the Source should use to reduce the bit depth of the data.

Values:

IG_TW_BR_CUSTHALFTONE
Custom Halftone method
IG_TW_BR_DIFFUSION
Diffusion method
IG_TW_BR_HALFTONE
Halftone method
IG_TW_BR_THRESHOLD
Threshold method


enumIGTWAINBitOrder

Group: Enumeration

Description:

This enumeration specifies how the bytes in an image are filled by the Source. IG_TW_BO_MSBFIRST indicates that the leftmost bit in the byte (usually bit 7) is the byte's Most Significant Bit.

Values:

IG_TW_BO_LSBFIRST
LSB
IG_TW_BO_MSBFIRST
MSB


enumIGTWAINCapabilities

Group: Enumeration

Description:

This enumeration specifies ImageGear TWAIN capabilities.

Values:

See Appendix D: TWAIN Scanning Capabilities and accucnst.h file.


enumIGTWAINCBType

Group: Enumeration

Description:

This enumeration determines the type of callback function.

Values:

IG_TW_CBT_AFTER_DOC
IG_TW_CBT_AFTER_PAGE
IG_TW_CBT_AFTER_TRANSFORM_PAGE
IG_TW_CBT_BEFORE_DOC
IG_TW_CBT_BEFORE_PAGE
IG_TW_CBT_CAP_SET_5
IG_TW_CBT_DEVICE_EVENT


enumIGTWAINClearBuffers

Group: Enumeration

Description:

This enumeration determines the type of buffer clearing process.

Values:

IG_TW_CB_AUTO
Causes the Source to automatically clear the buffers
IG_TW_CB_CLEAR
Causes the Source to immediately clear its buffers.
IG_TW_CB_NOCLEAR
Causes the Source to preserve images in the buffers.


enumIGTWAINColorDataFormats

Group: Enumeration

Description:

This enumeration allows the application and Source to identify which color data formats are available.

There are two options, "planar" and "chunky."For example, planar RGB data is transferred with the entire red plane of data first, followed by the entire green plane, followed by the entire blue plane (typical for three-pass scanners). "Chunky" mode repetitively interlaces a pixel from each plane until all the data is transferred (R-G-B-R-G-B...) (typical for one-pass scanners).

Values:

IG_TW_PC_CHUNKY
Chunky mode
IG_TW_PC_PLANAR
Planar mode


enumIGTWAINContainerType

Group: Enumeration

Description:

Capability container type.

Values:

IG_TW_ON_ARRAY
Indicates Array container
IG_TW_ON_ENUMERATION
Indicates Enumeration container
IG_TW_ON_ONEVALUE
Indicates OneValue container
IG_TW_ON_RANGE
Indicates Range container


enumIGTWAINControlParams

Group: Enumeration

Description:

This enumeration determines TWAIN control parameters.

Values:

IG_TW_CTRL_APP_NAME
IG_TW_CTRL_AUDIO_FILE_NAME
IG_TW_CTRL_IMAGE_FILE_NAME
IG_TW_CTRL_SAVE_PAGE_BEFORE_CB
IG_TW_CTRL_SAVE_PAGES_SEPARATELY


enumIGTWAINCountries

Group: Enumeration

Description:

This enumeration specifies the country originated the scanned document.

Values:

See igtwain15a.h file.


enumIGTWAINDeskewStatus

Group: Enumeration

Description:

This enumeration determines the status of the deskew operation.

Values:

IG_TW_DSK_DISABLED
Deskew engine not enabled
IG_TW_DSK_FAIL
Deskew failed
IG_TW_DSK_REPORTONLY
Deskew information only
IG_TW_DSK_SUCCESS
Image successfully deskewed


enumIGTWAINDeviceEvents

Group: Enumeration

Description:

This enumeration determines the device event.

Values:

IG_TW_DE_CHECKAUTOMATICCAPTURE
The automatic capture settings on the device have been changed by the user.
IG_TW_DE_CHECKBATTERY
The status of the battery has changed.
IG_TW_DE_CHECKDEVICEONLINE
The device has been turned off and on.
IG_TW_DE_CHECKFLASH
The flash setting on the device has been changed by the user.
IG_TW_DE_CHECKPOWERSUPPLY
The power supply has been changed
IG_TW_DE_CHECKRESOLUTION
The x/y resolution setting on the device has been changed by the user.
IG_TW_DE_CUSTOMEVENTS
Baseline for events specific to a given Source.
IG_TW_DE_DEVICEADDED
The user has added a device (for instance a memory card in a digital camera).
IG_TW_DE_DEVICEOFFLINE
A device has become unavailable, but has not been removed.
IG_TW_DE_DEVICEREADY
The device is ready to capture an image.
IG_TW_DE_DEVICEREMOVED
The user has removed a device.
IG_TW_DE_IMAGECAPTURED
The user has captured an image to the device's internal storage.
IG_TW_DE_IMAGEDELETED
The user has removed an image from the device's internal storage.
IG_TW_DE_LAMPFAILURE
The device's light source has failed.
IG_TW_DE_PAPERDOUBLEFEED
Two or more sheets of paper have been fed together.
IG_TW_DE_PAPERJAM
The device's document feeder has jammed.
IG_TW_DE_POWERSAVE
The device has powered down to save energy.
IG_TW_DE_POWERSAVENOTIFY
The device is about to power down to save energy.


enumIGTWAINDuplex

Group: Enumeration

Description:

This enumeration determines whether the scanner supports duplex.

Values:

IG_TW_DX_1PASSDUPLEX
One duplex is supported.
IG_TW_DX_2PASSDUPLEX
Two duplex is supported.
IG_TW_DX_NONE
No duplex support


enumIGTWAINFeederAlignment

Group: Enumeration

Description:

This enumeration determines which special actions applicetion may need to take when negotiating frames with the Source.

Values:

IG_TW_FA_CENTER
The alignment is centered. This means that the paper will be fed in the middle of the ICAP_PHYSICALWIDTH of the device.
IG_TW_FA_LEFT
The alignment is to the left.
IG_TW_FA_NONE
The alignment is free-floating.
IG_TW_FA_RIGHT
The alignment is to the right.


enumIGTWAINFeederOrder

Group: Enumeration

Description:

This enumeration determines the order of scanning.

Values:

IG_TW_FO_FIRSTPAGEFIRST
Feeder starts with the top of the first page.
IG_TW_FO_LASTPAGEFIRST
Feeder starts with the top of the last page.


enumIGTWAINFileSystem

Group: Enumeration

Description:

This enumeration determines the configuration of TWAIN file system.

Values:

IG_TW_FS_FILESYSTEM
IG_TW_FS_RECURSIVEDELETE


enumIGTWAINFileType

Group: Enumeration

Description:

File types in the device's file system.

Values:

IG_TW_FY_CAMERA
IG_TW_FY_CAMERABOTTOM
IG_TW_FY_CAMERAPREVIEW
IG_TW_FY_CAMERATOP
IG_TW_FY_DIRECTORY
IG_TW_FY_DOMAIN
IG_TW_FY_HOST
IG_TW_FY_IMAGE
IG_TW_FY_UNKNOWN


enumIGTWAINFilterType

Group: Enumeration

Description:

This enumeration determines the color characteristic of the subtractive filter applied to the image data.

Values:

IG_TW_FT_BLACK
Black filter
IG_TW_FT_BLUE
Blue filter
IG_TW_FT_CYAN
Cyan filter
IG_TW_FT_GREEN
Green filter
IG_TW_FT_MAGENTA
Magenta filter
IG_TW_FT_NONE
No filter
IG_TW_FT_RED
Red filter
IG_TW_FT_WHITE
White filter
IG_TW_FT_YELLOW
Yellow filter


enumIGTWAINFlashUsed

Group: Enumeration

Description:

This enumeration determines which flash the image was acquired to use.

Values:

IG_TW_FL_AUTO
Auto flash
IG_TW_FL_NONE
No flash
IG_TW_FL_OFF
Flash is off
IG_TW_FL_ON
Flash is on
IG_TW_FL_REDEYE
Redeye flash


enumIGTWAINFlipRotation

Group: Enumeration

Description:

This enumeration determines the orientation of images that flip orientation of every other image.

Values:

IG_TW_FR_BOOK
The images to be scanned are viewed in book form, flipping each page from left to right or right to left.
IG_TW_FR_FANFOLD
The images to be scanned are viewed in fanfold paper style, flipping each page up or down.


enumIGTWAINImageFilter

Group: Enumeration

Description:

This enumeration determines the algorithm used to improve the quality of the image.

Values:

IG_TW_IF_AUTO
Auto
IG_TW_IF_BANDPASS
Bandpass algorithm. Good for improving text.
IG_TW_IF_FINELINE
Fineline algorithm.
IG_TW_IF_HIGHPASS
Highpass algorithm. Good for improving fine lines.
IG_TW_IF_LOWPASS
Lowpass algorithm. Good for halftone images.
IG_TW_IF_NONE
No algorithm
IG_TW_IF_TEXT
Text algorithm.


enumIGTWAINJobControl

Group: Enumeration

Description:

This enumeration determines how the job can be processed,

Values:

IG_TW_JC_JSIC
Detect and include job separator and continue scanning.
IG_TW_JC_JSIS
Detect and include job separator and stop scanning.
IG_TW_JC_JSXC
Detect and exclude job separator and continue scanning.
IG_TW_JC_JSXS
Detect and exclude job separator and stop scanning.
IG_TW_JC_NONE
No job control.


enumIGTWAINJPEGQuality

Group: Enumeration

Description:

This enumeration specifies the kind of JPEG quantization tables that tradeoff quality versus compressed image size.

Values:

IG_TW_JQ_HIGH
Write-only; implies high quality; the images display the maximum quality that produces any kind of meaningful compression. Note that images at this setting are still considered to be lossy.
IG_TW_JQ_LOW
Write-only; implies low quality; the images are at the maximum compression recommended by the Source.
IG_TW_JQ_MEDIUM
Write-only; implies medium quality; the images are at the balance point between good compression and good images. This is an arbitrary setting on the part of the Source writer that is expected to best represent their device. This is the value that Applications are most encouraged to use.
IG_TW_JQ_UNKNOWN
Read-only; must be the setting for this capability if the user sets the JPEG compression tables using DAT_JPEGCOMPRESSION, and the Source is not able to map the
selected tables to a specific percentage of quality.


enumIGTWAINLanguages

Group: Enumeration

Description:

This enumeration specifies language of the scanned document.

Values:

Please see igtwain15a.h file.


enumIGTWAINLigthPath

Group: Enumeration

Description:

This enumeration determines whether the image is captured transmissively or reflectively.

Values:

IG_TW_LP_REFLECTIVE
Reflective capture
IG_TW_LP_TRANSMISSIVE
Transmissive capture


enumIGTWAINLightSource

Group: Enumeration

Description:

This enumeration determines the general color characteristic of the light source used to acquire the image.

Values:

IG_TW_LS_BLUE
Blue
IG_TW_LS_GREEN
Green
IG_TW_LS_IR
IR
IG_TW_LS_NONE
None
IG_TW_LS_RED
Red
IG_TW_LS_UV
UV
IG_TW_LS_WHITE
White


enumIGTWAINMessages

Group: Enumeration

Description:

This enumeration represents capability control messages.

Values:

IG_TW_MSG_GET
Get one or more values.
IG_TW_MSG_GETCURRENT
Get current value.
IG_TW_MSG_GETDEFAULT
Get default (e.g., power up) value.
IG_TW_MSG_GETFIRST
Get first value.
IG_TW_MSG_GETNEXT
Get next value.
IG_TW_MSG_QUERYSUPPORT
Query capability support.
IG_TW_MSG_RESET
Set current value to default value.
IG_TW_MSG_SET
Set one or more values.


enumIGTWAINNoiseFilter

Group: Enumeration

Description:

This enumeration selects the algorithm used to remove noise.

Values:

IG_TW_NF_AUTO
Auto
IG_TW_NF_LONEPIXEL
Lonepixel
IG_TW_NF_MAJORITYRULE
Majority rule
IG_TW_NF_NONE
None


enumIGTWAINOrientation

Group: Enumeration

Description:

This enumeration determines which edge of the "paper" the image's "top" is aligned with.

Values:

IG_TW_OR_LANDSCAPE
equals IG_TW_OR_ROT270
IG_TW_OR_PORTRAIT
equals IG_TW_OR_ROT0
IG_TW_OR_ROT0
normal orientation
IG_TW_OR_ROT180
Rotated 180 degrees clockwise
IG_TW_OR_ROT270
Rotated 270 degrees clockwise
IG_TW_OR_ROT90
Rotated 90 degrees clockwise


enumIGTWAINOverscanModes

Group: Enumeration

Description:

This enumeration determines the overscanning mode.

Values:

IG_TW_OV_ALL
Overscan all
IG_TW_OV_AUTO
Auto mode
IG_TW_OV_LEFTRIGHT
Left-Right mode
IG_TW_OV_NONE
None
IG_TW_OV_TOPBOTTOM
Top-Bottom mode


enumIGTWAINPatchCode

Group: Enumeration

Description:

This enumeration determines prioritized list of patch code types dictating the order in which patch codes will be sought.

Values:

IG_TW_PCH_PATCH1
Patch 1
IG_TW_PCH_PATCH2
Patch 2
IG_TW_PCH_PATCH3
Patch 3
IG_TW_PCH_PATCH4
Patch 4
IG_TW_PCH_PATCH6
Patch 6
IG_TW_PCH_PATCHT
Patch T


enumIGTWAINPixelFlavor

Group: Enumeration

Description:

This enumeration correctly describes the sense of the pixel whose numeric value is zero (minimum data value).

Values:

IG_TW_PF_CHOCOLATE
This pixel represents the darkest data value that can be generated by the device (the darkest available optical value may measure greater than 0).
IG_TW_PF_VANILLA
This pixel represents the lightest data value that can be generated by the device (the lightest available optical value may measure greater than 0).


enumIGTWAINPixelType

Group: Enumeration

Description:

This enumeration specifies the type of pixel data that a Source is capable of acquiring (for example, black and white, gray, RGB, etc.).

Values:

IG_TW_PT_BW
Black and white
IG_TW_PT_CIEXYZ
CIEXYZ
IG_TW_PT_CMY
CMY
IG_TW_PT_CMYK
CMYK
IG_TW_PT_GRAY
GRAY
IG_TW_PT_PALETTE
PALETTE
IG_TW_PT_RGB
RGB
IG_TW_PT_YUV
YUV
IG_TW_PT_YUVK
YUVK


enumIGTWAINPowerSupply

Group: Enumeration

Description:

This enumeration reports the kinds of power available to the device.

Values:

IG_TW_PS_BATTERY
Battery supply
IG_TW_PS_EXTERNAL
External supply


enumIGTWAINPrinter

Group: Enumeration

Description:

This enumeration determines the printer devices being used by application.

Imprinters are used to print data on documents at the time of scanning, and may be used for any purpose. Endorsers are more specific in nature, stamping some kind of proof of scanning on the document.

Top/Bottom refer to duplex devices, and indicate if the printer is writing on the top or the bottom of the sheet of paper. Simplex devices use the top settings.

Before/After indicates whether printing occurs before or after the sheet of paper has been scanned.

Values:

IG_TW_PR_ENDORSERBOTTOMAFTER
Endorser bottom/after
IG_TW_PR_ENDORSERBOTTOMBEFORE
Endorser bottom/before
IG_TW_PR_ENDORSERTOPAFTER
Endorser top/after
IG_TW_PR_ENDORSERTOPBEFORE
Endorser top/before
IG_TW_PR_IMPRINTERBOTTOMAFTER
Imprinter bottom/after
IG_TW_PR_IMPRINTERBOTTOMBEFORE
Imprinter bottom/before
IG_TW_PR_IMPRINTERTOPAFTER
Imprinter top/after
IG_TW_PR_IMPRINTERTOPBEFORE
Imprinter top/before


enumIGTWAINPrinterModes

Group: Enumeration

Description:

This enumeration specifies current printer mode.

Values:

IG_TW_PM_COMPOUNDSTRING
The printed string will consist of a compound of a String followed by a value followed by a suffix string.
IG_TW_PM_MULTISTRING
The printed text will consist of an enumerated list of strings to be printed in order.
IG_TW_PM_SINGLESTRING
The printed text will consist of a single string.


enumIGTWAINSupportedSizes

Group: Enumeration

Description:

This enumeration specifies the size(s) the Source can/should use to acquire image data.

Values:

IG_TW_SS_2A0
IG_TW_SS_4A0
IG_TW_SS_A0
IG_TW_SS_A1
IG_TW_SS_A10
IG_TW_SS_A2
IG_TW_SS_A3
IG_TW_SS_A4
IG_TW_SS_A4LETTER
IG_TW_SS_A5
IG_TW_SS_A6
IG_TW_SS_A7
IG_TW_SS_A8
IG_TW_SS_A9
IG_TW_SS_B3
IG_TW_SS_B4
IG_TW_SS_B5LETTER
IG_TW_SS_B6
IG_TW_SS_BUSINESSCARD
IG_TW_SS_C0
IG_TW_SS_C1
IG_TW_SS_C10
IG_TW_SS_C2
IG_TW_SS_C3
IG_TW_SS_C4
IG_TW_SS_C5
IG_TW_SS_C6
IG_TW_SS_C7
IG_TW_SS_C8
IG_TW_SS_C9
IG_TW_SS_ISOB0
IG_TW_SS_ISOB1
IG_TW_SS_ISOB10
IG_TW_SS_ISOB2
IG_TW_SS_ISOB3
IG_TW_SS_ISOB4
IG_TW_SS_ISOB5
IG_TW_SS_ISOB6
IG_TW_SS_ISOB7
IG_TW_SS_ISOB8
IG_TW_SS_ISOB9
IG_TW_SS_JISB0
IG_TW_SS_JISB1
IG_TW_SS_JISB10
IG_TW_SS_JISB2
IG_TW_SS_JISB3
IG_TW_SS_JISB4
IG_TW_SS_JISB5
IG_TW_SS_JISB6
IG_TW_SS_JISB7
IG_TW_SS_JISB8
IG_TW_SS_JISB9
IG_TW_SS_NONE
IG_TW_SS_USEXECUTIVE
IG_TW_SS_USLEDGER
IG_TW_SS_USLEGAL
IG_TW_SS_USLETTER
IG_TW_SS_USSTATEMENT


enumIGTWAINUnits

Group: Enumeration

Description:

This enumeration determines the unit of measure for all quantities.

Values:

IG_TW_UN_CENTIMETERS
Centimeters
IG_TW_UN_INCHES
Inches
IG_TW_UN_PICAS
Picas
IG_TW_UN_PIXELS
Pixels
IG_TW_UN_POINTS
Points
IG_TW_UN_TWIPS
Twips


enumIGTWAINXferFlags

Group: Enumeration

Description:

This enumeration provides the flags for transfer mechanism.

Values:

IG_TW_AUDIO
Audio
IG_TW_IMAGE
Image


enumIGTWAINXferType

Group: Enumeration

Description:

This enumeration determines which type of transfer mechanisms the application and Source have in common.

Values:

IG_TW_SX_FILE
File type
IG_TW_SX_FILE2
File to File type
IG_TW_SX_MEMORY
Memory type
IG_TW_SX_NATIVE
Native type


ImageGear Vector Component API Reference

ImageGear Vector Component API Reference

ImageGear Vector component provides the base operations for reading such vector formats as CAD (DXF/DWG), DGN, CGM, HPGL and SVG and drawing vector data during display operations. It also allows manipulating the camera parameters and light sources. Vector component should be loaded and associated with Core component before any vector operations. The component exposes the following objects:

IGVector3DIVObject
This object provides access to the 3DIV isosurface algorithm.
IGVector3DIVOptions
This object contains all the options for the isosurface algorithm.
IGVectorCtl
Vector control.
IGVectDrawing
Object for access to the vector data.
IGVectColor
This object defines an RGBA color for views and entities. The type of color components is Byte.
IGVectColorD
This object defines an RGBA color for light sources. The type of color components is Single.
IGVectLightSource
This object represents the Light source API.
IGVectMatrix
This object implements a transformation matrix.
IGVectMinMax
This object defines min and max coordinates of views and entities.
IGVectPoint3D
This object represents the 3D point structure.
IGVectView
This object represents a camera and lighting model for displaying the vector content.

The following enumerations are used in ImageGear Vector component:

enumIGVectGraphics
Identifies a type of graphics for displaying vector data
enumIGVectMeasurementUnits
Identifies measurement units
enumIGVectorObjType
Identifies the types of objects that can be created by method CreateObject of object IGVectorCtl.

Below is an alphabetized reference of ImageGear Vector Component objects and their API.


IGVector3DIVObject

Group: Object

Description:

This object provides access to the 3DIV isosurface algorithm.

The object of this type can be created by calling function CreateObject() of IGVectorCtl object, with parameter VECTOR_OBJ_3DIV_OBJECT for the object type.

Interface:

IIGVector3DIVObject

Class Members:

CanApplyGenerateIsosurface
method
This method checks whether the isosurface algorithm can be applied on the given IGDocument object.
GenerateIsosurface
method
This method applies the isosurface algorithm on the given IGDocument object and generates a vector page as the result.


CanApplyGenerateIsosurface

Group: Method

Description:

This method takes an IGDocument object and determines whether GenerateIsosurface () can be applied to it to calculate an isosurface.

It checks to make sure the following are all satisfied:

  1. The IGDocument object is valid.
  2. There is more than one page in the IGDocument object.
  3. The pages in the IGDocument object all have the same width and height.
  4. The pages in the IGDocument object all have the same color space.
  5. The pages in the IGDocument object all have the same bits per channel.
  6. The "bits per channel" in the pages is one of the supported values, i.e., 8, 16, or 32.

Declaration:

CanApplyGenerateIsosurface(Document As IGDocument) As Boolean

Parameters:

Document
An IGDocument object to check whether the isosurface algorithm can be applied.

Return value:

True/False

Bits Per Pixel: 8, 16 and 32

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GenerateIsosurface

Group: Method

Description:

This method takes an IGDocument object and extracts the 3D surface into a vector page, based on the options specified by Options.

The pages in Document must be in the desired order as it would be in the 3D object. If the user has a series of single-page images to start with, necessary operations are needed to stack those single-page images together to form a multi-page IGDocument.

Declaration:

GenerateIsosurface(Document As IGDocument, Options As
IGVector3DIVOptions) As IGPage

Parameters:

Document
An IGDocument object to apply the isosurface algorithm on.
Options
An IGVector3DIVOptions object, containing all the options for isosurface algorithm.

Return value:

This method returns an IGPage object, which contains data for the resulted isosurface.

Bits Per Pixel: 8, 16 and 32

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGVector3DIVOptions

Group: Object

Description:

This object contains all the options for the isosurface algorithm.

The object of this type can be created by calling function CreateObject of IGVectorCtl object, with parameter VECTOR_OBJ_3DIV_OPTIONS for the object type.

The option IsAddCoverSlices indicates whether "cover-up" slices should be added at both ends. If True, the first and last slices will be placed at both ends, with pixels outside of the 3D object set to transparent.

When the isosurface is generated, a lot of triangles are also generated inside the 3D object despite sometimes we are only interested in the outside surface. The flag IsLimitDepth allows the surface to be limited to certain depth, thus any triangles deeper inside will be discarded. This greatly improves the rendering performance, for example, when rotating the 3D object. On the other side, if the surface depth limit is set too low, it is possible that "artificial holes" will be created on the surface because of excessive discarding of triangles.

Parameters IsDecimateY, YDecimFactor, IsDecimateZ and ZDecimFactor further refine the process of limiting surface depth. The higher the decimation factors, the better the surface looks. But that also means the more number of triangles. So a balance point is required. For example, values [10, 5, 5] for [SurfaceDepth, YDecimFactor, ZDecimFactor] reduced the number of triangles by about a half while still producing a reasonable 3D surface.

Parameters LowExcluRange and HighExcluRange are designed to exclude certain pixels whose intensities fall within the specified range. If this feature is not desired, the user can simply set both of those two parameters to 0.

Interface:

IIGVector3DIVOptions

Class Members:

IsoValue
Property
Intensity value of pixels on the isosurface.
LowExcluRange
Property
Lower limit of exclusion region.
HighExcluRange
Property
Upper limit of exclusion region.
IsDoNorms
Property
Flag for calculating normals along with vertices.
IsFlipNorms
Property
Flag for flipping normals after calculation.
IsAddCoverSlices
Property
Flag for adding cover-up slices at the ends.
IsLimitDepth
Property
Flag for limiting surface depth.
SurfaceDepth
Property
Depth of the surface, in effect only if IsLimitDepth is true.
IsDecimateY
Property
Flag for decimating Y direction when considering surface depth, in effect only if IsLimitDepth is true.
YDecimFactor
Property
Decimation factor in Y direction, in effect only if both IsLimitDepth and IsDecimateY are true.
IsDecimateZ
Property
Flag for decimating Z direction when considering surface depth, in effect only if IsLimitDepth is true.
ZDecimFactor
Property
Decimation factor in Z direction, in effect only if both IsLimitDepth and IsDecimateZ are true.


IsoValue

Group: Property

Description:

This property indicates the intensity value of pixels on the isosurface.

Property Summary:

Data Type:
Double
Default Value:
120.0
Access:
Read/Write
Settings:
Any
Sample:
Med


LowExcluRange

Group: Property

Description:

This property indicates the lower limit of exclusion region.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Sample:
Med


HighExcluRange

Group: Property

Description:

This property indicates the upper limit of exclusion region.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
Any
Sample:
Med


IsDoNorms

Group: Property

Description:

This property indicates whether to calculate normals along with vertices.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True/False
Sample:
Med


IsFlipNorms

Group: Property

Description:

This property indicates whether to flip normals after calculation.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Sample:
Med


IsAddCoverSlices

Group: Property

Description:

This property indicates whether to add cover-up slices at the ends.

Property Summary:

Data Type:
Boolean
Default Value:
True
Access:
Read/Write
Settings:
True/False
Sample:
Med


IsLimitDepth

Group: Property

Description:

This property indicates whether to limit surface depth of the isosurface.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Sample:
Med


SurfaceDepth

Group: Property

Description:

This property indicates the depth of the isosurface.

It is in effect only if IsLimitDepth is True.

Property Summary:

Data Type:
Long
Default Value:
20
Access:
Read/Write
Settings:
Any
Sample:
Med


IsDecimateY

Group: Property

Description:

This property indicates whether to decimate Y direction when considering surface depth.

It is in effect only if IsLimitDepth is True.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Sample:
Med


YDecimFactor

Group: Property

Description:

This property indicates the decimation factor in Y direction.

It is in effect only if both IsLimitDepth and IsDecimateY are True.

Property Summary:

Data Type:
Long
Default Value:
1
Access:
Read/Write
Settings:
Any
Sample:
Med


IsDecimateZ

Group: Property

Description:

This property indicates whether to decimate Z direction when considering surface depth.

It is in effect only if IsLimitDepth is True.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True/False
Sample:
Med


ZDecimFactor

Group: Property

Description:

This property indicates the decimation factor in Z direction.

It is in effect only if both IsLimitDepth and IsDecimateZ are True.

Property Summary:

Data Type:
Long
Default Value:
1
Access:
Read/Write
Settings:
Any
Sample:
Med


IGVectorCtl

Group: Control

Description:

The vector component control. It should be included into every application using ImageGear and working with vector formats. The instance of IGVectCtl should be either added to the form during design time, or created dynamically during run time.

Interface:

IIGVectorCtl extends IIGVector

Class Members:

CreateObject
method
Creates an object of the specified type.
GetVectorData
method
Returns vector data associated with the page.


CreateObject

Group: Method

Description:

This method takes a Type argument and creates an object of the specified type.

Declaration:

CreateObject(Type As enumIGVectorObjType) As IGObject

Parameters:

Type
Type of object to be created.

Return value:

This method returns an IGObject object.

Bits Per Pixel: N/A

Sample: Med

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetVectorData

Group: Method

Description:

This method returns vector data associated with the page.

Declaration:

GetVectorData(Page as IGPage) as IGVectDrawing

Parameters:

Page
Page vector data is associated with.

Return value:

Vector data object associated with the page if any or Null (Nothing) otherwise.

Bits Per Pixel: N/A

Sample: Display_View, Vector

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGVectColor

Group: Object

Description:

This object defines an RGBA color for views and entities. The type of the color components is Byte.

Interface:

interface IIGVectColor : IDispatch

Class Members:

Alpha
property
Alpha channel intensity.
Blue
property
Blue channel intensity.
Green
property
Green channel intensity.
Red
property
Red channel intensity.


Alpha

Group: Property

Description:

This property gets/sets Alpha channel intensity.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


Blue

Group: Property

Description:

This property gets/sets Blue channel intensity.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


Green

Group: Property

Description:

This property gets/sets Green channel intensity.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


Red

Group: Property

Description:

This property gets/sets Red channel intensity.

Property Summary:

Data Type:
Long
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


IGVectColorD

Group: Object

Description:

This object defines an RGBA color for light sources. The type of color components is Single.

Interface:

interface IIGVectColorD : IDispatch

Class Members:

Alpha
property
Alpha channel intensity.
Blue
property
Blue channel intensity.
Green
property
Green channel intensity.
Red
property
Red channel intensity.


Alpha

Group: Property

Description:

This property gets/sets Alpha channel intensity.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


Blue

Group: Property

Description:

This property gets/sets Blue channel intensity.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


Green

Group: Property

Description:

This property gets/sets Green channel intensity.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


Red

Group: Property

Description:

This property gets/sets Red channel intensity.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
Vector


IGVectDrawing

Group: Object

Description:

An object that describes vector data associated with the page.

Interface:

IIGVectDrawing

Class Members:

ActiveViewIndex
property
Gets/sets an index of the active view.
CreateView
method
Creates the new view and returns its interface.
DeleteView
method
Deletes the specified view.
GetView
method
Returns the view specified by index.
GraphicsType
property
Get/set type of the vector graphics.
Units
property
Sets/gets measurement units associated with a drawing.
UnitFactor
property
Sets/gets measurement units associated with a drawing.
ViewCount
property
The total view count.


ActiveViewIndex

Group: Property

Description:

This property gets/sets an index of the active view.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
A number in the range 0..ViewCount-1
Bits Per Pixel:
N/A
Sample:
Vector


CreateView

Group: Method

Description:

This method creates the new view and returns its interface.

Declaration:

CreateView() As IGVectView

Return value:

IGVectView interface.

Bits Per Pixel: N/A

Sample: Vector

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DeleteView

Group: Method

Description:

This method deletes the specified view.

Declaration:

Sub DeleteView(Index As Long)

Parameters:

Index
Index of the view to delete.

Return value:

None.

Bits Per Pixel: N/A

Sample: Vector

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GetView

Group: Method

Description:

This method returns the view specified by index.

Declaration:

GetView(Index As Long) As IGVectView

Parameters:

Index
Index of the view to return.

Return value:

IGVectView object.

Bits Per Pixel: N/A

Sample: Vector

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


GraphicsType

Group: Property

Description:

This property gets or sets type of the vector graphics used in display operations.

Property Summary:

Data Type:
enumIGVectGraphics
Default Value:
IG_VECT_GRAPH_AUTO
Access:
Read/Write
Settings:
One of the following constants:
IG_VECT_GRAPH_AUTO
IG_VECT_GRAPH_OPENGL
IG_VECT_GRAPH_WINAPI
Bits Per Pixel:
N/A
Sample:
Display_View, Vector


Units

Group: Property

Description:

Sets/gets measurement units associated with a drawing. The measurement units, combined with view size from the GetMinMax and SetMinMax methods of IIGVectView, can be used to determine the physical size of the drawing.

Property Summary:

Data Type:
enumIGVectMeasurementUnits
Default Value:
N/A
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
N/A


UnitFactor

Group: Property

Description:

Sets/gets unit factor, a multiplier of unit values used for informational purposes.

Property Summary:

Data Type:
Double
Default Value:
N/A
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
N/A


ViewCount

Group: Property

Description:

This property provides the total view count.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any non-negative number
Bits Per Pixel:
N/A
Sample:
Vector


IGVectLightSource

Group: Object

Description:

This object represents the Light source API.

Interface:

interface IIGVectLightSource : IIGObject

Class Members:

ConstantAttenuation
property
Constant attenuation factor.
CutoffAngle
property
Cutoff angle of the light, 0..90 or 180 (uniform distribution).
Enabled
property
Enables/disables the Light source.
Exponent
property
Intensity distribution of the light, 0..128.
GetAmbientColor
method
Gets ambient color of the light source.
GetDiffuseColor
method
Gets diffuse color of the light source.
GetDirection
method
Gets light direction, array of 3 floats - nx, ny, nz.
GetPosition
method
Gets light position, array of 3 floats - x, y, z.
GetSpecularColor
method
Gets specular color of the light source.
LinearAttenuation
property
Linear attenuation factor.
QuadraticAttenuation
property
Quadratic attenuation factor.
SetAmbientColor
method
Sets ambient color of the light source.
SetDiffuseColor
method
Sets diffuse color of the light source.
SetDirection
method
Sets light direction, array of 3 floats - nx, ny, nz.
SetPosition
method
Sets light position, array of 3 floats - x, y, z.
SetSpecularColor
method
Sets specular color of the light source.


ConstantAttenuation

Group: Property

Description:

This property gets/sets the constant attenuation factor.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
None


CutoffAngle

Group: Property

Description:

This property gets/sets cutoff angle of the light.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
0..90 or 180 (uniform distribution)
Sample:
Vector


Enabled

Group: Property

Description:

This property enables/disables the Light source.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Sample:
Vector


Exponent

Group: Property

Description:

This property gets/sets intensity distribution of the light.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
0..128
Sample:
Vector


GetAmbientColor

Group: Method

Description:

This method returns ambient color of the light source.

Declaration:

GetAmbientColor() As IGVectColorD

Return value:

IGVectColorD object.

Bits Per Pixel: N/A

Sample:

Vector


GetDiffuseColor

Group: Method

Description:

This method returns diffuse color of the light source.

Declaration:

GetDiffuseColor() As IGVectColorD

Return value:

IGVectColorD object.

Bits Per Pixel: N/A

Sample:

None


GetDirection

Group: Method

Description:

This method returns the light direction.

Declaration:

GetDirection() As IGVectPoint3D

Return value:

IGVectPoint3D object.

Bits Per Pixel: N/A

Sample:

Vector


GetPosition

Group: Method

Description:

This method returns the light position.

Declaration:

GetPosition() As IGVectPoint3D

Return value:

IGVectPoint3D object.

Bits Per Pixel: N/A

Sample:

Vector


GetSpecularColor

Group: Method

Description:

This method returns the specular color of the light source.

Declaration:

GetSpecularColor() As IGVectColorD

Return value:

IGVectColorD object.

Bits Per Pixel: N/A

Sample:

None


LinearAttenuation

Group: Property

Description:

This property gets/sets linear attenuation factor.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
None


QuadraticAttenuation

Group: Property

Description:

This property gets/sets quadratic attenuation factor.

Property Summary:

Data Type:
Single
Default Value:
0
Access:
Read/Write
Settings:
any positive value
Sample:
None


SetAmbientColor

Group: Method

Description:

This method sets the ambient color of the light source.

Declaration:

Sub SetAmbientColor(lpColor As IGVectColorD)

Parameters:

lpColor
IGVectColorD object handle.

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


SetDiffuseColor

Group: Method

Description:

This method sets the diffuse color of the light source.

Declaration:

Sub SetDiffuseColor(lpColor As IGVectColorD)

Parameters:

lpColor
IGVectColorD object handle.

Return value:

None.

Bits Per Pixel: N/A

Sample:

None


SetDirection

Group: Method

Description:

This method sets the light direction.

Declaration:

Sub SetDirection(lpDirection As IGVectPoint3D)

Parameters:

lpDirection
IGVectPoint3D object handle.

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


SetPosition

Group: Method

Description:

This method sets the light position.

Declaration:

Sub SetPosition(lpPosition As IGVectPoint3D)

Parameters:

lpPosition
IGVectPoint3D object handle.

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


SetSpecularColor

Group: Method

Description:

This method sets the specular color of the light source.

Declaration:

Sub SetSpecularColor(lpColor As IGVectColorD)

Parameters:

lpColor
IGVectColorD object handle.

Return value:

None.

Bits Per Pixel: N/A

Sample:

None


IGVectMatrix

Group: Object

Description:

This object implements a transformation matrix consisting of 16 values of type Single

Interface:

interface IIGVectMatrix : IIGObject

Class Members:

Item
property
This property provides an access to the matrix values


Item

Group: Property

Description:

This indexed property gets an item specified by the Index.

Declaration:

Item(Index As Long) As Single

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read only
Settings:
Any floating-point value
Sample:
None


IGVectMinMax

Group: Object

Description:

This object defines min and max coordinates of views and entities.

Interface:

interface IIGVectMinMax : IIGObject

Class Members:

XMax
property
x max coordinate
XMin
property
x min coordinate
YMax
property
y max coordinate
YMin
property
y min coordinate
ZMax
property
z max coordinate
ZMin
property
z min coordinate


XMax

Group: Property

Description:

This property gets/sets x max coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value
Sample:
Vector


XMin

Group: Property

Description:

This property gets/sets x min coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value
Sample:
Vector


YMax

Group: Property

Description:

This property gets/sets y max coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value
Sample:
Vector


YMin

Group: Property

Description:

This property gets/sets y min coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value
Sample:
Vector


ZMax

Group: Property

Description:

This property gets/sets z max coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value
Sample:
Vector


ZMin

Group: Property

Description:

This property gets/sets z min coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value
Sample:
Vector


IGVectPoint3D

Group: Object

Description:

This object represents the 3D point structure.

Interface:

interface IIGVectPoint3D : IIGObject

Class Members:

X
property
X coordinate.
Y
property
Y coordinate.
Z
property
Z coordinate.


X

Group: Property

Description:

This property gets/sets X coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value.
Sample:
Vector


Y

Group: Property

Description:

This property gets/sets Y coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value.
Sample:
Vector


Z

Group: Property

Description:

This property gets/sets Z coordinate.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value
Sample:
Vector


IGVectView

Group: Object

Description:

This object represents a camera and lighting model for displaying the vector content.

Interface:

interface IGVectView : IIGComponent

Class Members:

Center
method
Moves the camera according to the specified offsets. Current distance to the look point is not taken into accoun
DisplayHiddenLayers
property
Controls displaying the layers that are marked as hidden.
Focus
property
Defines the view lens focus.
GetAmbientColor
method
Returns the current ambient color of the view.
GetBkColor
method
Returns the current background color of the view.
GetMatrix
method
Returns the current transformation matrix of the view.
GetMinMax
method
Returns the bounding parallelepiped of the view.
LightingEnabled
property
Enables or disables lighting for the view.
LightSource
property
Provides an access to the light source with the specified index.
MaxLights
property
Returns the number of the available light sources.
Move
method
Moves the camera according to the specified offsets.
Name
property
Returns the name of the view.
Rotate
method
Rotates a camera on the specified angle about the specified vector.
ScaleView
method
Scales the camera according to the specified scale factors.
SetAmbientColor
method
Sets the current ambient color of the view.
SetBkColor
method
Sets the current background color of the view.
SetMatrix
method
Sets the current transformation matrix of the view.
SetMinMax
method
Sets the bounding parallelepiped of the view.


Center

Group: Method

Description:

This method moves the camera according to the specified offsets. Current distance to the look point is not taken into account.

Declaration:

Sub Center(X As Single, Y As Single, Z As Single)

Parameters:

X
X coordinate.
Y
Y coordinate.
Z
Z coordinate.

Return value:

None.

Bits Per Pixel: N/A

Sample:

None


DisplayHiddenLayers

Group: Property

Description:

This property controls displaying the layers that are marked as hidden.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Sample:
Vector


Focus

Group: Property

Description:

This property defines the view lens focus.

Property Summary:

Data Type:
Single
Default Value:
N/A
Access:
Read/Write
Settings:
any floating-point value.
Sample:
Vector


GetAmbientColor

Group: Method

Description:

This method gets an ambient color of the view.

Declaration:

GetAmbientColor() As IGVectColorD

Return value:

New instance of IGVectColorD object.

Bits Per Pixel: N/A

Sample:

Vector


GetBkColor

Group: Method

Description:

This method returns the current background color of the view.

Declaration:

GetBkColor() As IGVectColor

Return value:

New instance of IGVectColor object.

Bits Per Pixel: N/A

Sample:

Vector


GetMatrix

Group: Method

Description:

This method returns the current transformation matrix of the view. The matrix consists of 16 floating-point values ordered by the columns, that is:

a11 a21 a31 a41

a12 a22 a32 a42

a13 a23 a33 a43

a14 a24 a34 a44

Declaration:

GetMatrix() As IGVectMatrix

Return value:

New instance of IGVectMatrix object.

Bits Per Pixel: N/A

Sample:

None


GetMinMax

Group: Method

Description:

This method returns the bounding parallelepiped of the view.

Declaration:

GetMinMax() As IGVectMinMax

Return value:

New instance of IGVectMinMax object.

Bits Per Pixel: N/A

Sample:

Vector


LightingEnabled

Group: Property

Description:

This property enables or disables lighting for the view.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Sample:
Vector


LightSource

Group: Property

Description:

This property provides an access to the light source with the specified index.

Property Summary:

Data Type:
IGVectLightSource
Default Value:
N/A
Access:
Read only
Settings:
IGVectLightSource.
Sample:
Vector


MaxLights

Group: Property

Description:

This property returns the number of the available light sources.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
any non-negative value.
Sample:
Vector


Move

Group: Method

Description:

This method moves the camera according to the specified offsets.

Declaration:

Sub Move(X As Single, Y As Single, Z As Single)

Parameters:

X
X offset
Y
Y offset
Z
Z offset

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


Name

Group: Property

Description:

This property gets/sets the name of the view.

Property Summary:

Data Type:
String
Default Value:
""
Access:
Read/Write
Settings:
any string
Sample:
Vector


Rotate

Group: Method

Description:

This method rotates a camera on the specified angle about the specified vector.

Declaration:

Sub Rotate(Angle As Single, I As Single, J As Single, K As
Single, LookPoint As Boolean)

Parameters:

Angle
Rotation angle, radians.
I
X coordinate of the rotation vector.
J
Y coordinate of the rotation vector.
K
Z coordinate of the rotation vector.
LookPoint
Specifies the rotation center. If true then camera is rotated about the current look point, otherwise about point (0, 0, 0)

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


ScaleView

Group: Method

Description:

This method scales the camera according to the specified scale factors.

Declaration:

Sub ScaleView(X As Single, Y As Single, Z As Single)

Parameters:

X
X scale factor.
Y
Y scale factor.
Z
Z scale factor.

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


SetAmbientColor

Group: Method

Description:

This method sets the ambient color of the view.

Declaration:

Sub SetAmbientColor(lpColor As IGVectColorD)

Parameters:

lpColor
Ambient color.

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


SetBkColor

Group: Method

Description:

This method sets the current background color of the view.

Declaration:

Sub SetBkColor(bkColor As IGVectColor)

Parameters:

bkColor
Background color of the view.

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


SetMatrix

Group: Method

Description:

This method sets the current transformation matrix of the view.

Declaration:

Sub SetMatrix(lpMatrix As IGVectMatrix)

Parameters:

lpMatrix
Transformation matrix.

Return value:

None.

Bits Per Pixel: N/A

Sample:

None


SetMinMax

Group: Method

Description:

This method sets the bounding parallelepiped of the view.

Declaration:

Sub SetMinMax(lpMinMax As IGVectMinMax)

Parameters:

lpMinMax
The bounding parallelepiped.

Return value:

None.

Bits Per Pixel: N/A

Sample:

Vector


Vector Component Enumerations

This section represents the reference of enumeration defined in ImageGear Vector component:

    • enumIGVectGraphics
    • enumIGVectorObjType


enumIGVectGraphics

Group: Enumeration

Description:

Identifies a type of graphics used to display vector data.

Values:

IG_VECT_GRAPH_AUTO
the type of graphics (OpenGL or WindowsAPI) is detected automatically
IG_VECT_GRAPH_OPENGL
OpenGL graphics is used
IG_VECT_GRAPH_WINAPI
Windows API graphics is used


enumIGVectMeasurementUnits

Group: Enumeration

Description:

Measurement units

Values:

IG_VECT_MUNIT_UNKNOWN
Unknown
IG_VECT_MUNIT_MM
Metrics units - millimeters
IG_VECT_MUNIT_CM
Metrics units - centimeters
IG_VECT_MUNIT_M
Metrics units - meters
IG_VECT_MUNIT_INCHES
English units - inches
IG_VECT_MUNIT_PLTS
plot units - 1/40 mm
IG_VECT_MUNIT_TWIPS
plot units - 1/1440 inch


enumIGVectorObjType

Group: Enumeration

Description:

This enumeration identifies the types of objects that can be created by method CreateObject of object IGVectorCtl.

Values:

VECTOR_OBJ_3DIV_OBJECT
IGVector3DIVObject type.
VECTOR_OBJ_3DIV_OPTIONS
IGVector3DIVOptions type.


ImageGear View Component API Reference

ImageGear View Component API Reference

ImageGear View component provides access to IG page view API and contains one ActiveX control:

    • IGPageViewCtl

and one object:

    • IGViewMouseWheelParams

The following enumerations are used in ImageGear View component:

enumIGViewDrawEvent
Used to enable or disable draw events
enumIGViewDrawTextAlign
This enumeration identifies the alignment of the text drawn on the image.
enumIGViewSelectEvent
Identifies the different types of SelectEvent event firing modes.


IGPageViewCtl

Group: Control

Description:

The instance of IGPageViewCtl should be either added to the form during design time, or created dynamically during run time.

Interface:

IIGPageViewCtl

Class Members:

DrawEvent
property
Used to enable or disable draw events.
Enabled
property
Specifies whether the object can respond to user-generated events.
hWnd
property
This is the standard object property specifying the window handle of window associated with control.
MouseIcon
property
Provides a custom icon
MousePointer
property
This is standard object property specifying the type of mouse pointer.
PageDisplay
property
This property specifies IGPageDisplay object assigned to this View control.
SelectEvent
property
This property sets the SelectEvent event that occurs when the user depresses the left mouse button.
DrawText
method
Use this method in IGPageViewCtl control's AfterDraw event to draw a text over the image.
UpdateView
method
This method causes redraw of the View control window.
AfterDraw
event
Fires after the image is drawn on the device contect.
BeforeDraw
event
Fires before the image is drawn on the device contect.
DropFiles
event
Fires when the user drops files on the control's window.
KeyDown
event
Occurs when the user presses a key on the keyboard.
KeyPress
event
Occurs when the user presses and releases a key on the keyboard.
KeyUp
event
Occurs when the user releases a key on the keyboard.
MouseDblClick
event
Mouse event, fired for each mouse double click..
MouseDown
event
Mouse event, fired each time any mouse button is pressed.
MouseMove
event
Mouse event, fired each time mouse is moved accross the View control window.
MouseUp
event
Mouse event, fired each time any mouse button is released.
MouseWheel
event
Mouse event, fired each time the mouse wheel is scrolled over the View control window.
Scroll
event
Scroll event is fired each time the state of the image scroll bars is changed.
SelectEvent
event
This event is evoked when the user releases the left mouse button after selecting a rectangle.


AfterDraw

Group: Event

Description:

This event fires after the image is drawn on the device contect.

Declaration:

Sub IGPageViewCtl_AfterDraw(hDC As Long)

Parameters:

hDC
Handle of Windows device context used for image draw


BeforeDraw

Group: Event

Description:

This event fires before the image is drawn on the device contect.

Declaration:

Sub IGPageViewCtl_BeforeDraw(hDC As Long)

Parameters:

hDC
Handle of Windows device context used for image draw


DrawEvent

Group: Property

Description:

This property used to enable or disable draw events.

Property Summary:

Data Type:
enumIGViewDrawEvent
Default Value:
IG_VIEW_DRAW_EVENT_NO
Access:
Read/Write
Settings:
any value of enumIGViewDrawEvent
Bits Per Pixel:
N/A


DrawText

Group: Method

Description:

Use this method in IGPageViewCtl control's AfterDraw event to draw a text over the image.

Declaration:

DrawText (hDC As Long, TextToDraw As String, RGBColor As
IGPixel, FontName As String, lFontHeight As Long, Location As
IGRectangle, nTextAlign As enumIGViewDrawTextAlign, lTabSize As
Long, dLineSpacing As Double)

Parameters:

hDC
Device context to draw to
TextToDraw
Text string to draw
RGBColor
Text color to use. Only RGB mode is supported.
FontName
Text font name to use
lFontHeight
Text font height to use
Location
Text location coordinates
nTextAlign
Text align mode to use. One of enumIGViewDrawTextAlign values.
lTabSize
Tab size in device unites.
dLineSpacing
Line space size in device unites..

Return value: N/A

Bits Per Pixel: N/A

Example:

Private Sub IGPageViewCtl1_AfterDraw(ByVal hDC As Long)
    Dim location As IGRectangle
    Set location = IGCoreCtl1.CreateObject(IG_OBJ_RECTANGLE)
    location.Left = 0
    location.Top = 0
    location.Right = 100
    location.Bottom = 100

    Dim rgbColor As IGPixel
    Set rgbColor = IGCoreCtl1.CreateObject(IG_OBJ_PIXEL)
    rgbColor.RGB_R = 0
    rgbColor.RGB_G = 0
    rgbColor.RGB_B = 255

    IGPageViewCtl1.DrawText hDC, "Text", rgbColor, "Verdana",
12, location, _
        IG_VIEW_DRAW_TEXT_LEFT, 10, 4
End Sub

Sample: None

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


DropFiles

Group: Event

Description:

This event fires when the user drops files on the control's window.

Declaration:

Sub IGPageCtl_DropFiles(FileList as Variant)

Parameters:

FileList
An array with the dropped file names.

Example:

`Get the first file on the list and load it to the page view
control
Private Sub IGPageViewCtl1_DropFiles(ByVal FileList As Variant)
Me.IGFormatsCtl1.LoadPageFromFile IGPage, FileList(0), 0
IGPageViewCtl1.UpdateView
End Sub


Enabled

Group: Property

Description:

Specifies whether the object can respond to user-generated events.

Property Summary:

Data Type:
Boolean
Default Value:
TRUE
Access:
Read/Write
Settings:
True/False
Bits Per Pixel:
N/A
Sample:
Core


hWnd

Group: Property

Description:

This is the standard object property specifying the window handle of window associated with control.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read only
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
Core


KeyDown

Group: Event

Description:

Occurs when the user presses a key on the keyboard.

Declaration:

Sub IGPageViewCtl_KeyDown(KeyCode As Integer, Shift As Integer)

Parameters:

KeyCode
A virtual key code such as vbKeyEscape
Shift
A combination of bit flags indicating state of Shift, Ctrl, and Alt keys at time of key press. Shift is bit 0 (LSB), Ctrl is bit 1, and Alt is bit 2. If only Shift was held, the value will be 1. If only Ctrl was held, it will be 2. If only Alt was held, it will be 4. If Ctrl and Alt were both held, it will be 6.


KeyPress

Group: Event

Description:

Occurs when the user presses and releases a key on the keyboard.

Declaration:

Sub IGPageViewCtl_KeyPress(KeyAscii As Integer)

Parameters:

KeyAscii
ASCII code of key pressed.


KeyUp

Group: Event

Description:

Occurs when the user releases a key on the keyboard.

Declaration:

Sub IGPageViewCtl_KeyUp(KeyCode As Integer, Shift As Integer)

Parameters:

KeyCode
A virtual key code such as vbKeyEscape
Shift
A combination of bit flags indicating state of Shift, Ctrl, and Alt keys at time of key press. Shift is bit 0 (LSB), Ctrl is bit 1, and Alt is bit 2. If only Shift was held, the value will be 1. If only Ctrl was held, it will be 2. If only Alt was held, it will be 4. If Ctrl and Alt were both held, it will be 6.


MouseDblClick

Group: Event

Description:

Mouse event, fired for each mouse double click.

Declaration:

Sub IGPageViewCtl_MouseDblClick(Button As Integer, Shift As
Integer, X As Long, Y As Long)

Parameters:

Button
Mouse button pressed. It can be ORed combination of following constants:
  • VK_LBUTTON (1)
  • VK_MBUTTON (4)
  • VK_RBUTTON (2)
Shift
State of Shift keyboard key
X
X mouse position in windows (device) coordinates
Y
Y mouse position in windows (device) coordinates


MouseDown

Group: Event

Description:

Mouse event, fired each time any mouse button is pressed.

Declaration:

Sub IGPageViewCtl_MouseDown(Button As Integer, Shift As Integer,
X As Long, Y As Long)

Parameters:

Button
Mouse button pressed. It can be ORed combination of following constants:
  • VK_LBUTTON (1)
  • VK_MBUTTON (4)
  • VK_RBUTTON (2)
Shift
State of Shift keyboard key
X
X mouse position in windows (device) coordinates
Y
Y mouse position in windows (device) coordinates


MouseIcon

Group: Property

Description:

The MouseIcon property provides a custom icon that is used when the MousePointer property is set to 99.

Property Summary:

Data Type:
IPictureDisp
Default Value:
N/A
Access:
Read/Write
Settings:
N/A
Bits Per Pixel:
N/A
Sample:
N/A


MouseMove

Group: Event

Description:

Mouse event, fired each time mouse is moved accross the View control window.

Declaration:

Sub IGPageViewCtl_MouseMove(Button As Integer, Shift As Integer,
X As Long, Y As Long)

Parameters:

Button
Mouse button pressed. It can be ORed combination of following constants:
  • VK_LBUTTON (1)
  • VK_MBUTTON (4)
  • VK_RBUTTON (2)
Shift
State of Shift keyboard key
X
X mouse position in windows (device) coordinates
Y
Y mouse position in windows (device) coordinates


MousePointer

Group: Property

Description:

This is standard object property specifying the type of mouse pointer displayed when the mouse is over a particular part of an object at run-time.

Property Summary:

Data Type:
Long
Default Value:
N/A
Access:
Read/Write
Settings:
Any
Bits Per Pixel:
N/A
Sample:
N/A


MouseUp

Group: Event

Description:

Mouse event, fired each time any mouse button is released.

Declaration:

Sub IGPageViewCtl_MouseUp(Button As Integer, Shift As Integer, X
As Long, Y As Long)

Parameters:

Button
Mouse button pressed. It can be ORed combination of following constants:
  • VK_LBUTTON (1)
  • VK_MBUTTON (4)
  • VK_RBUTTON (2)
Shift
State of Shift keyboard key
X
X mouse position in windows (device) coordinates
Y
Y mouse position in windows (device) coordinates


MouseWheel

Group: Event

Description:

Mouse event, fired each time the mouse wheel is scrolled over the View control window.

Declaration:

Sub IGPageViewCtl1_MouseWheel(Delta As Integer, Shift As
Integer, X As Long, Y As Long, ReturnParams As
GearVIEWLibCtl.IIGViewMouseWheelParams)

Parameters:

Delta
Distance and direction of wheel rotation. This is a positive or negative integer which is typically a multiple of 120. (120 represents one 'notch' on a standard scroll wheel.) Positive values indicate forward rotation and negative values indicate backward rotation.
Shift
A combination of bit flags indicating state of Shift, Ctrl, and Alt keys at time of key press. Shift is bit 0 (LSB), Ctrl is bit 1, and Alt is bit 2. If only Shift was held, the value will be 1. If only Ctrl was held, it will be 2. If only Alt was held, it will be 4. If Ctrl and Alt were both held, it will be 6.
X
X mouse position in windows (device) coordinates
Y
Y mouse position in windows (device) coordinates
ReturnParams
A structure that is used to pass return parameter (Handled). Set ReturnParams.Handled to True to indicate that you've handled the mouse wheel event. Otherwise, the event may propagate to parent windows and possibly mouse software/drivers, which could initiate additional scrolling action.

Sample: DISPLAY

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


PageDisplay

Group: Property

Description:

This property specifies IGPageDisplay object assigned to this View control.

Property Summary:

Data Type:
IGPageDisplay
Default Value:
N/A
Access:
Read/Write
Settings:
IGPageDisplay object interface
Bits Per Pixel:
N/A
Sample:
Core


Scroll

Group: Event

Description:

Scroll event is fired each time the state of the image scroll bars is changed.

Declaration:

Sub IGPageViewCtl_Scroll(Scrolltype As Long)

Parameters:

Scrolltype
Type of scroll bar changed, 1 for horizontal, 2 for vertical


SelectEvent

Group: Event

Description:

This event is evoked when the user releases the left mouse button after selecting a rectangle and the property SelectEvent is set to IG_VIEW_SELECT_FIRE or IG_VIEW_SELECT_FIRE_AND_ZOOM.

Declaration:

Sub IGPageViewCtl1_SelectEvent(lplLeft As Long, lplTop As Long,
lplRight As Long, lplBottom As Long)

Parameters:

lplLeftX
X coordinate of the left-top corner of the rectangle selected
lplTopY
Y coordinate of the left-top corner of the rectangle selected
lplRightX
X coordinate of the bottom-right corner of the rectangle selected
lplBottomY
Y coordinate of the bottom-right corner of the rectangle selected

Sample: Display_View

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


SelectEvent

Group: Property

Description:

This property sets the select event that occurs when the user depresses the left mouse button. If you set this property to value different than IG_VIEW_SELECT_NO, a rubber rectangle is drawn in the control when the user depresses the left mouse button and drags the mouse. When set to IG_VIEW_SELECT_FIRE, the rectangle values are sent to the SelectEvent Event procedure. When set to IG_VIEW_SELECT_FIRE_AND_ZOOM, selection rectangle is drawn according with current image display settings, SelectEvent is fired and image is automatically zoomed-in according with the rectange selected.

Property Summary:

Data Type:
enumIGViewSelectEvent
Default Value:
IG_VIEW_SELECT_NO
Access:
Read/Write
Settings:
enumIGViewSelectEvent values
Bits Per Pixel:
N/A
Sample:
Display_View


UpdateView

Group: Method

Description:

This method causes redraw of View control window.

Declaration:

 UpdateView()

Return value: N/A

Bits Per Pixel: N/A

Sample: Core

AccuSoft Corporation
 AccuSoft.com
sales@accusoft.com


IGViewMouseWheelParams

Group: Control

Description:

This object contains parameters that are used by the MouseWheel event.

Interface:

IIGViewMouseWheelParams

Class Members:

Handled
property
Used by the application to indicate that the mouse wheel event has been handled.


Handled

Group: Property

Description:

This property is used by the application to indicate that the mouse wheel event has been handled. Set this to true if you don't want the mouse wheel event to propagate to parent windows and possibly mouse software/drivers, which could initiate additional scrolling action.

Property Summary:

Data Type:
Boolean
Default Value:
False
Access:
Read/Write
Settings:
True, False
Bits Per Pixel:
N/A
Sample:
Display


View Component Enumerations

This section represents an alphabetized reference of enumerations defined in ImageGear View component:

  • enumIGViewDrawEvent
  • enumIGViewDrawTextAlign
  • enumIGViewSelectEvent


enumIGViewDrawEvent

Group: Enumeration

Description:

This enumeration used to enable or disable draw events.

Values:

IG_VIEW_DRAW_EVENT_NO
No Draw event is enabled.
IG_VIEW_DRAW_EVENT_BEFORE
BeforeDraw event is enabled.
IG_VIEW_DRAW_EVENT_AFTER
AfterDraw event is enabled.


enumIGViewDrawTextAlign

Group: Enumeration

Description:

This enumeration identifies the alignment of the text drawn on the image.

Values:

IG_VIEW_DRAW_TEXT_LEFT
Left alignment
IG_VIEW_DRAW_TEXT_CENTER
Center alignment
IG_VIEW_DRAW_TEXT_RIGHT
Right alignment


enumIGViewSelectEvent

Group: Enumeration

Description:

This enumeration identifies the different types of SelectEvent event firing modes.

Values:

IG_VIEW_SELECT_NO
SelectEvent event is disabled
IG_VIEW_SELECT_FIRE
Fires SelectEvent event when the left mouse button is released after user draws rectangle on image.
IG_VIEW_SELECT_FIRE_AND_ZOOM
Fires SelectEvent event when the left mouse button is released after user draws rectangle on image. Also perform zoom to the rectangle selected.