| Herd Software Development
DaVinci Graphics Library
DaVinci Documentation Home Search Order

Current limitations relating to specific file formats

Operating system related limitations

Maximum image sizes for 16 bit environments

16 bit Microsoft Windows platforms limit the size of any data block, including DIBs managed in memory by DaVinci, to a maximum size of 16MB minus 64KB. Effectively, this means that the maximum image size for any decompressed image file within DaVinci is limited to 16 MB.

Fax files can still be read in with DIN A1 size at 200x200 DPI resolution, while DIN A0 can be read no more.

This restriction does not apply to 32 bit applications running under Windows 95 and NT. Win32s-capable applications, however, must still abide by the limitations of the 16 bit Windows operating system on which Win32s is installed.

GUI bugs in 16 bit Windows

The Windows API functions StretchDIBits and StretchBlt fail when compressing images with very high scale factors, for example when reducing a massive DIN A4 fax to a preview image of 100x100 pixels. Use the Leonardo function ScaleToGray as a workaround for this bug.

Problems with the standard VGA driver in Win31

Windows 3.1's standard VGA driver contained an undocumented bug in its handling of the SetDIBitsToDevice API function. When attempting to display of DIBs with a block size divisible evenly by 16, it raised a GPF (General Protection Fault). Use of the slower StretchDIBits function is recommended as a workaround. This error was corrected in the VGA driver supplied with Windows for Workgroups 3.11, and should not be a problem with third-party drivers.

DDB memory requirements for 16 and 32 bit environments

When converting colored DIBs into DDBs the color depth of the loaded graphics driver is used. This means that a 4bpp (16 color) DIB processed on a graphics driver set to 32 bits of color depth will require eight times more memory and/or disk space as a DDB.

If you need to display large images using the least amount of memory, use the API functions StretchDIBits and SetDIBitsToDevice. There may be a slight reduction in processing efficiency, but the tradeoff is the ability to display just a few lines of the image at one time for reduced memory requirement.

Unsupported DIB functions

DaVinci and Leonardo do not support the following DIB functions:

Supported TIFF formats

TIFF compression technologies supported by DaVinci include CCITT, PACKBITS,CCITT G3 (fax), and CCITT G4 (fax). LZW is also supported, but requires a corresponding usage license from Unisys Corporation. JPEG-compressed TIFF is not supported.

GIF palette size, animation and transparency

Both GIF89a and GIF87a formats are supported. The GIF import filter can only support a maximum of 256 colors. In the case animated GIFs, only the last frame (not the first) is displayed. The background color of transparent GIFs is not taken into consideration when importing GIF images; the background will display in the original color used as the background color for that image.

16 bit BMPs

DIB formats using 16 bits of color depth, introduced with Video for Windows and Windows NT, are supported only in a limited fashion since some Leonardo functions do not support this data format.

DXF filters

The metric size specifications returned in the METARESOLUTION function are random values, but the aspect ration is always correct.

Three-dimensional DXF images are not supported.

Black lines are generated by DaVinci in place of white lines on import. This decision was made because white lines appear invisible when printing.

PCX specifications

The PCX file format used by DaVinci corresponds to the format description in c't, dated 8/91 pp. 214. PCX images are limited to 256 colors.

JPG filter

While JPEG permits a wide range of adjustment in its compression parameters, we did not implement an interface to these parameters in DaVinci, either in the dialogs contained in the DLL itself or in the API. DaVinci compresses JPEGs using the Independent JPEG Group's recommended default parameters.