Converting Data to Display Resolution

Converting the points in an HPENDATA block to display resolution effectively compresses the data because display coordinates are coarser than tablet coordinates and therefore occupy less memory. However, the conversion is irreversible; an application cannot convert the points back to their original tablet resolution. Moreover, converting to display coordinates virtually disallows subsequent recognition of the data because recognizers lose accuracy when dealing with data at coarse screen coordinates.

pics/PENAPI00000000.gif To compress pen data to screen resolution

  1. Call MetricScalePenData to convert the ink data from tablet coordinates to display coordinates.

  2. Call TrimPenData with the TPD_COLLINEAR flag to remove the duplicate and collinear points.

These two steps substantially reduce the number of points in the pen data by removing many high-resolution digitizer points. The following code fragment demonstrates these steps:

HPENDATA hpendata; // Handle to HPENDATA object




if (MetricScalePenData( hpendata, PDTS_DISPLAY ))

iRet = TrimPenData( hpendata, TPD_COLLINEAR );

After converting the HPENDATA block to display resolution, the application can call CompressPenData or TrimPenData to compress the points even more. For maximum compression of data intended only for display, use the following instructions instead of the preceding example:

if (MetricScalePenData( hpendata, PDTS_DISPLAY ))

if (TrimPenData( hpendata, TPD_EVERYTHING ) == PDR_OK)

CompressPenData( hpendata, CMPD_COMPRESS );

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database