ImageGear for C and C++ on Linux v19.10 - Updated
Important Structures and Types
User Guide > How to Work with... > Annotations > Annotation API: ART > Important Structures and Types

Some arguments in ART component function calls are pointers to the internal ART component structures and data types such as ART_MARK_ATTRIBUTES structure that determines general attributes used by every ART mark. There are such important data types as ART component named blocks (ART_NAMED_BLOCK) that determine, for instance, mark's coordinates and orientation (ART_BLOCK_ANODAT) or the name of file for image marks (ART_BLOCK_FILNAM). For the full list of structures and data types currently provided by ART component please see i_ART.h file.

Declaration:

 
Copy Code
typedef struct tagART_MARK_ATTRIBUTES {
   DWORD dwType;
   AT_RECT rcBounds;
   AT_RGBQUAD rgbColor1;
   AT_RGBQUAD rgbColor2;
   DWORD bHighlighting;
   DWORD bTransparent;
   DWORD dwLineSize;
   LONG lReserved1[2];
   AT_LOGFONT lfFont;      
   LONG dwReserved2;
   DWORD dwTime;
   DWORD bVisible;
   LONG lReserved3[11];
}
ART_MARK_ATTRIBUTES, FAR* LPART_MARK_ATTRIBUTES;

Members:

dwType

The type of mark:

rcBounds Rectangle in image units. Can be a rectangle or two points.
rgbColor1 The main color; for example, the color of all lines, all rectangles, and standalone text.
rgbColor2 The secondary color; for example, the color of the text of an Attach-a-Note.
bHighlighting If TRUE the mark is drawn highlighted. Highlighting performs the same function as a highlighting marker on a piece of paper. Valid only for lines, rectangles and freehand.
bTransparent If TRUE the mark is drawn transparent. A transparent mark does not draw white pixels: transparent replaces white pixels with whatever is behind those pixels. Available only for images.
dwLineSize

The width of the line in pixels. 

It is ignored when setting dwPenStyle for a straight line mark.

lReserved1[2] Reserved; must be set to 0.
lfFont The font information for the text, consisting of standard font attributes of font size, name, style, effects, and background color.
dwReserved2 Reserved; must be set to 0x0FF83F.
dwTime The time that the mark was first saved, in seconds, from 00:00:00 1-1-1970 GMT. Every annotation mark has time as one of its attributes. If you don't set the time before the file is saved, the time is set to date and time that the save was initiated. This time is in the form returned by the "time" C call, which is the number of seconds since midnight 00:00:00 on 1-1-1970 GMT. If necessary, refer to your C manual for a more detailed description.
bVisible If TRUE the mark is currently set to be visible. Annotation marks can be visible or hidden.
Reserved3[11] First 9 elements and Reserved[10] are reserved and must be set to 0. Value Reserved[9] is used by ImageGear to store DISABLE_PPM_FOR_FONTS mark attribute. Its interpretation is identical with global control parameter ART_CONTROL_DISABLE_PPM_FOR_FONTS but affects only one annotation. 2 helper macro-functions has been introduced to get and set this attribute.
  • AT_BOOL ART_DISABLE_PPM_FOR_FONTS_GET(LPART_MARK_ATTRIBUTES pMa);
  • AT_BOOL ART_DISABLE_PPM_FOR_FONTS_SET(LPART_MARK_ATTRIBUTES pMa, AT_BOOL bNewValue);
 
Copy Code
/* Coordinates and orientation      */
#define ART_BLOCK_ANODAT                                        ((const LPART_BLOCK_NAME)"OiAnoDat")
/* Hold a file name for image marks */
#define ART_BLOCK_FILNAM                                        ((const LPART_BLOCK_NAME)"OiFilNam")
/* Stores DIB data                  */
#define ART_BLOCK_DIB                           ((const LPART_BLOCK_NAME)"OiDib\000\000\000")
/* Create sets of marks             */
#define ART_BLOCK_GROUP                                 ((const LPART_BLOCK_NAME)"OiGroup\000")
/* Unique ID for each mark          */
#define ART_BLOCK_INDEX                                 ((const LPART_BLOCK_NAME)"OiIndex\000")
/* Text for annotation marks        */
#define ART_BLOCK_ANTEXT                                        ((const LPART_BLOCK_NAME)"OiAnText")