|
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.
To compress pen data to screen resolution
- Call MetricScalePenData to convert the ink data from tablet coordinates to display coordinates.
- 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 );
Related Links
Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET
More Online Helps
Win32 Programmer's Reference (win32.hlp)
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages
|