libbsb 0.0.7 review

by on

libbsb is a portable C library for reading and writing BSB format image files

License: LGPL (GNU Lesser General Public License)
File size: 0K
Developer: Stuart Cunningham
0 stars award from

libbsb is a portable C library for reading and writing BSB format image files. Typically used for nautical charts, BSB charts use the .KAP or .CAP extension and store cartographic information in addition to a run-length encoded raster image. libbsb is capable of recovering truncated or otherwise corrupted .KAP files. The library is released under the terms of the LGPL.

A number of utilities to convert and work with BSB charts are included in the libbsb ackage. Sample files and instructions on how to use these tools are available on the Examples page.

bsb2tif - convert BSB image to TIFF format
bsb2ppm - convert BSB image to PPM format
bsb2png - convert BSB image to PNG format
tif2bsb - convert TIFF image to BSB image
ppm2bsb - convert PPM image to BSB image
bsbfix - fix the index table in a BSB file

The source code for the libbsb library and utility programs can be downloaded or browsed online directly from the CVS repository.

The BSB file format stores raster image data in a run-length encoded binary form along with ASCII text describing the projection, datum and other information necessary for GIS applications. Used initially for nautical charts and marine charts by NOAA and the Canadian Hydrographic Service, it is increasingly being used for GIS raster maps in general.

The libbsb library and the BSB file format description were written due to the lack of information and utilities supporting this format. At the time libbsb was first written, November 2000, the only GNU/Linux software library the author could find which could read BSB files was Hugo. However, the code for reading BSB files was distributed as a binary-only module and limited to the i386 platform.

If you have a query or wish to contribute to libbsb please get in touch.

What's New in This Release:
Fix buffer overflow in next_line() function which can be exploited by carefully crafted BSB file
Fix incorrect num_colors computation for some tif images. Use a rigorous scan of the entire tif image first to count the number of colors.
Add trap in bsb_read_row() to avoid slow reading on corrupted rows.
Add valgrind-check make target which runs valgrind over all tests.
Moved test images under tests/ subdir.

libbsb 0.0.7 keywords