Softek Barcode Toolkit Version 6.2.1 Release Notes ================================================== 1. Code 39, Code 25 and Codabar Recognition The rules for the above barcode symbologies have been tightened to reduce the possibility of a false positive reading. Softek Barcode Toolkit Version 6.2.0 Release Notes ================================================== 1. Code 39 Recognition Further enhancements have been made to Code 39 recognition: If the Code39Checksum property is set to True then the toolkit will only report Code 39 barcodes where the last character is a valid checksum for the rest of the string. If the ExtendedCode39 property is set to True then the toolkit will attempt to interpret the barcode in the Code 39 Extended symbol set. 2. Code 25 Recognition The Code 25 recognition module has been modified to allow for barcodes where the width of a module for a bar may be different to that of a space. 3. Regular Expression Matching The Pattern property now allows applications to specify a regular expression that all reported barcodes must match against. For example, Pattern = "^ABC[0-9]+XYZ$" would match barcodes similar to "ABC123456XYZ". If the related property called Numeric is set to True then it is the equivalent of setting Pattern to "^[0-9]+$". 4. Improved Code 128 Recognition The Code 128 recognition module has been improved to cope with barcodes where the bar widths have been distorted by the process of scanning or faxing. 5. Error Correction If the ErrorCorrection property is set to True then the toolkit will attempt to find the best match for a barcode character where it is practical to do so. This currently only applies to Code 39 barcodes, but will be extended to other types in the future. 6. Minimum Space Bar Width The MinSpaceBarWidth property specifies the smallest width of a space in a barcode. Any spaces smaller than this width will be ignored by the toolkit. This is very useful when a scanned image contains lots of white dots in the black bars. Setting the property to a value of 2 or 3 can often result in a reliable read for such images. 8. Improvement in speed Optimization in the Code 25, Code 39 and Code 128 module has given a significant improvement in speed. Softek Barcode Toolkit Version 6.1.1 Release Notes ================================================== 1. The bardecode program no longer supports the defunct -r flag for setting the rotation of the image. 2. The bardecode program can now control the skew angle via the -A flag. -A 0 (the default) allows for up to 5 degrees of skew and -A 5 allows for any angle of skew. 3. Mapping mode when setting the barcode zone. A new property has been added to specify the mapping mode when setting the barcode zone in an image. ST_MAPPING_MODE can have the following values: 0 = Units in pixels (default) 1 = Units are a percentage of the image width and height. Example: uint16 val = 1 ; STSetParameter(hBarcode, ST_MAPPING_MODE, &val) ; 4. UPC-E Recognition A bug that prevented the recognition of valid UPC-E barcodes has been fixed. 5. Images with Small Height The toolkit now correctly handles images with a height of less than 4 pixels. 6. Old JPEG Compression If a TIF file contains pages that use old jpeg compression then the return value will either be the number of barcodes found on other pages or, if no other barcodes were found, a value of -5. 7. Code 39 and Code 25 Recognition The algorithms for Code 39 and Code 25 have been improved to cope better with poor quality barcodes. 8. Duplicate Barcodes You can suppress the reporting of duplicate barcodes on the same page with the ST_DUPLICATE_BARCODES property. 0 = suppress duplicate values. 1 = allow duplicate values (default). 9. Minimum Separation of Barcodes on a Page You can control the minimum distance allowed between 2 identical barcodes. If the distance between 2 identical barcodes is less than the value of this property then the barcodes are considered to be part of a single barcode that has been damaged in some way. The units of this property are measured in 300th's of an inch (i.e a value of 300 represents 1 inch). The default value is 180. Example: uint16 val = 100 ; STSetParameter(hBarcode, ST_MIN_SEPARATION, &val) ; 10. Minimum and Maximum length of a barcode The minimum and maximum length of a barcode can be controlled through the ST_MIN_LEN and ST_MAX_LEN properties. uint16 val = 10 ; STSetParameter(hBarcode, ST_MIN_LEN, &val) ; val = 20 ; STSetParameter(hBarcode, ST_MAX_LEN, &val) ; Softek Barcode Toolkit Version 6.0.10 Release Notes =================================================== 1. The version numbering system has been brought in line with the Windows version of the toolkit. 2. Segmentation Fault Problems with OverSampling When OverSampling was used with certain images the barcode toolkit read 1 scan line beyond the length of the image and caused an access violation. This has now been corrected. 3. ColorThreshold level problem resolved A problem with setting high values for ColorThreshold has been resolved. Softek Barcode Toolkit Version 6.09 Release Notes ================================================= 1. The barcode library is now available in both static and shared forms. The shared library is called libbardecode.so. This file needs to be installed in /usr/lib and can then be linked using a command line such as: cc myfile.c -lbardecode -ltiff -ljpeg 2. The recognition of Codabar barcodes has been improved in line with the changes made for Code 39 and Code 25 barcodes. Softek Barcode Toolkit Version 6.07 Release Notes ================================================= 1. Splitting of TIF Files into sub-files A bug has been fixed in the splitting of TIF files into sub-files, based on the position of barcodes in the master image. It was found that it was possible, in certain situations, for barcodes to be repeated. This has been fixed. 2. Default size of the Quiet Zone The default size of the quiet zone has been reduced slightly to accommodate the quiet zone found between barcodes on products (e.g EAN-13 barcodes on magazines) Softek Barcode Toolkit Version 6.03 Release Notes ================================================= 1. Code 39 barcodes with length less than 4 characters would not read. Solution: The toolkit will now read Code 39 barcodes of any length. Remember though that the purpose of the MinLength setting is to cut down on the chance of a false positive reading. Changes for Version 6.01 ======================== The main change to the barcode toolkit for version 6 is the ability to work in a multi-threaded environment. The algorithms for the Code 3 of 9 and Code 2 of 5 Interleaved barcode types have been re-written to provide a better success rate with low resolution images. It's also worth noting why version 5 was never released. Just as version 5 got to the pre-release stage, the need for a thread safe version of the toolkit was identified and was given top priority. Summary of changes: 1. Support for the Codabar symbology. The toolkit now supports recognition of the Codabar barcode type. The ST_READ_CODABAR setting has been added, with a default value of True. 2. Improved recognition algorithms for Code 3 of 9 and Code 2 of 5 Interleaved. Both of the algorithms for detecting Code 3 of 9 and Code 2 of 5 Interleaved barcodes have been improved. This particularly applies to low resolution images where there may only be minor differences between the wide and narrow bars. 3. UPC-E to EAN-13 Conversion UPC-E is a zero suppressed version of UPC-A/EAN-13 and the default in version 4 was to restore the suppressed zero's. The option has been added in version 6 to leave the barcode as it is printed, via the CONVERT_UPCE_TO_EAN13 setting. The default value is True - which means that the zero's will be restored (the behaviour in version 4). 4. Retrieve the Direction of a Barcode in an Image A new function has been added to retrieve the orientation of a barcode. The STGetBarCodeDirection function returns a value that, if used for the ST_ORIENTATION_MASK setting, would detect the barcode. Some barcodes can be read from left to right or right to left. In these cases the direction returned is the first match found. 5. 45 degree angle scanning 4 new scan directions are available in the toolkit. The default value for the ST_ORIENTATION_MASK is still set to 15, which covers left-right and top-down directions. Please refer to the C_API for full details of the new values for the mask. 6 TIF Split Mode The way in which a multi-page TIF file can be split into smaller files is now more flexible. The TIFF_SPLIT_MODE setting allows for the barcode to be on either the first or the last page of each of the new files. Changes for Version 5.01pre2 ============================ 1. This version of the toolkit can scan images at angles of 45 degrees and the following mask values are available through the -d flag: 16 = Top Left to Bottom Right 32 = Top Right to Bottom Left 64 = Bottom Right to Top Left 128 = Bottom Left to Top Right. 2. Codabar barcodes are now recognised and can be checked for using the "-t codabar" option. 3. The Mimumum and Maximum lengths for barcodes can be specified using the -c and -C flags respectively. Check digits are included in the length. e.g -c 10 -C 15 will look for barcodes of length 10 to 15 inclusive. Changes for Version 4.04 ======================== 1. Improved recognition of Code 2 of 5 (Interleaved) barcodes. 2. Added -P flag to bardecode command to show page numbers. Changes for Version 4.02 ======================== 1. Fixed bug in loading of jpeg images. 2. Added support for image "over sampling". The value of a pixel is worked out from the average value of itself, the pixel n rows above and the pixel n rows below. Where n is determined by the value passed with the -L flag. This method is reasonably fast and tends to remove the effect of speckles in an image. The bardecode command implements this as the -O flag. 3. Previous versions of the toolkit have only scanned for a barcode in one orientation or rotation. This version can check for barcode in any direction in a single call to the barcode reader. The directions to use are specified in a mask built up from the values 1 for Left to Right, 2 for Top to Bottom, 4 for Right To Left and 8 for Bottom to Top. The default value if 15. 4. An option of advanced noise reduction has been added. It works in the same way as normal noise reduction but removes white speckles as well as black. Turn on advanced noise reduction with the -N flag. Changes for Version 3.07 ======================== 1. Fixed bug in Code 128 barcodes. 2. Increased size of default quiet zone to 0.1 inch 3. Support added for patch codes in toolkit (though not in demo code yet) 4. Support for TIF LZW images added. 5. Fixed bug that stopped recognition of barcodes at extreme edges of an image. Changes for Version 3.02 ======================== 1. Support for Code 128 barcode 2. The toolkit now handles monochrome JPEG files correctly. Changes for Version 3.01 ======================== 1. Support for Jpeg format. 2. Support for UPC-A, UPC-E, EAN-8 and EAN-13 barcode formats added. Changes for Version 2.07 Alpha ============================== 1. Splitting Multi-Page TIF Files on Pages Containing Barcodes A new feature has been added to the toolkit that will split multi-page TIF files on pages containing barcodes. e.g. If the 10 page file multipage.tif contains barcodes on pages 2 6 and 7 then the command: ./code39trial -m -S output%d.tif multipage.tif will produce files: output1.tif containing pages 2, 3, 4 and 5 output2.tif with page 6 output3.tif with pages 7, 8, 9 and 10 Changes for Version 2.06 ======================== 1. Support for color RGB TIFF images. 2. Multi-page Image Support Default behaviour changed to examine all pages in an image for a barcode - rather than just the first page. e.g. A. If a TIF file called multi.tif contains 2 pages with barcodes "AAAA" and "BBBB" then: ./code39trial multi.tif will output "AAAA" ./code39trial multi.tif -m will output "AAAA" and "BBBB" The previous version would only have checked page 1 and so found no barcode. ./code39trial multi.tif -i 2 will output "BBBB" B. If a TIF file called multi.tif contains 2 pages with one barcode "BBBB" on page 2 then: ./code39trial multi.tif will output "BBBB" The previous version would only have checked page 1 and so found no barcode. Changes for V2.05 ================= 1. C Programmers API Included the C programmers API. For more details see the C_API folder. 2. Variable Quiet Zone Sizes Added -q flag to code39trial command to allow the use of non-standard quiet zones around barcodes. For example: ./code39trial -q 3 file.tif ...specifies a quiet zone of 3 pixels around the barcode. i.e. There has to be at least 3 white pixels surrounding the barcode.