X9Ware TIFF Kit User Guide
- June 6, 2024
- X9Ware
Table of Contents
**X9Ware TIFF Kit User Guide
**
Overview
Check21 Image Exchange image preparation can be a complex effort. There are multiple reasons:
- The TIFF 6 and x9.100-181 standards are complex.
- It is difficult to determine if a given image actually agrees with the standards.
- Due to the relative age of the TIFF image format, there are a limited number of tools that are available to developers to work with these images.
- There is a lack of industry tools that have been explicitly written to create conforming images.
- Many organizations are faced with the issue of consolidating images that are created by their own customers. In these situations, they do not have control of the original capture process, but instead must attempt to work with the images as they are received.
The X9Ware TIFF KIT has been developed to address these specific issues. It has the following capabilities:
- Process at either the individual image or folder levels.
- Interrogate an image to determine if it is in a support format. This is expected to be TIFF, but could also be PNG, JPG, or BMP.
- Further interrogate TIFF images to determine if their structure is compatible with the x9.199- 181 image standard.
- Convert non-conforming images from their original format to TIFF. This operation may be as simple as updating the TIFF tags, but may be more complex such as converting to single strip, changing photometric interpretation for existing black-white images, converting images from gray scale or even color to black-white, and converting other image formats (eg, PNG) to TIFF.
- Provide summary statistics regarding actions taken.
Our goals for the TIFF KIT package are as follows:
- Provide a supported tool for image inspection and manipulation.
- Support as much image conversion as is possible subject to technical considerations.
- Only manipulate incoming images that absolutely need to be changed.
TIFF KIT
The TIFF KIT is built using proven TIFF imaging tools as developed and supported by X9Ware. It is imperative that we all realize that TIFF image conversion is an extremely complex topic. Not every image can be fixed. The TIFF KIT is designed to provide the facilities needed to fix what it can, while leaving all other images unchanged. The primary mission is to do no harm. The TIFF KIT is targeted specifically for compliance to the x9.100-181 image exchange standard.
Modified images will always be in compliance to this standard, since they are written using a small set of tiff tags as required by the Check21 image exchange process. Because of this, our output images should contain conforming images.
The TIFF KIT is a licensed product that is activated using a runtime license key that is provided to your organization by X9Ware. Evaluations are available so you can take a detailed look at the functionality in your environment. Purchased licenses are typically perpetual, with a cost that is dependent on your organizational size and planned usage. Please contact X9Ware for specific pricing.
The TIFF KIT is a relatively small Java JAR (currently less than 800k) with an API that provides the following capabilities:
- Read/write image byte arrays to the file system.
- Inspect an image byte array to determine the attributes including format and dpi.
- Interrogate the directory of a tiff image to determine if it conforms with x9.100-181.
- Create a conforming tiff image from a non-conforming tiff image.
- Convert images from gray scale or color to black-white.
- Provide optional facilities to lighten/darken images.
- Provide optional facilities to re-scale images.
- Provide optional facilities to de-skew images.
Given the complexity of these topics, we provide a sample program X9TiffKitDemo which is an example of performing image conversions using the TIFF KIT. X9Ware will be glad to expand upon this example based on your specific requirements.
TIFF KIT Installation
The TIFF KIT requires an installed JVM that is JRE 1.8 or higher. Internally, we use OpenJDK and have tested using both OpenJDK 11 and OpenJDK 17.
The TIFF KIT jar has been processed through ProGuard to protect our intellectual property. Please let us know if you have questions regarding how the public API is exposed or if you have changes that might be required subject to your usage.
The TIFF KIT uses SLF4J as a logging facade, which allows you to select and implement the appropriate logging library that best meets your needs. Logging is done through the SLF4J, which is a generic API that provides access to other logging frameworks including the Java Utility Logger (JUL), Log4J, Logback, etc. SLF4J is not an actual logger, but instead a plugable façade that translates logging calls to the logging framework that is installed under it.
In terms of the TIFF KIT, we have implemented JUL for simple logging, where that linkage is established dynamically by X9JdkLogger.initialize(). You do not need to add any logging libraries since JUL is part of the JDK itself.
If you want to run with some other logger (like Logback), then you would add the Logback library jar to the runtime, remove the call to X9JdkLogger.initialize(), and then initialize the Logback environment using your own code (with a properties file, etc).
Other than logging, there are no other external library requirements to implement the TIFF KIT into your development and production environments.
TIFF KIT Disclaimers
Customers area fully responsible to test the applicability of the TIFF KIT for their environment. Due to the inherent variability of images, X9Ware cannot warrant that every image can be accurately converted from some arbitrary and perhaps invalid condition into a resulting accurate image.
Because of this, customers should use the TIFF KIT to only update those images that do not conform with x9.100-181 and are identified as repairable. This would be expected to be a small percentage of the total images within the customer environment. You should always retain your incoming images, as they are originally received.
These original images should be archived so you can always provide this image should you be asked for a copy from your archive. You cannot assume that a modified image, as created by the TIFF KIT, will be as good as the original non-conforming image. Although the TIFF KIT is capable of doing gray scale conversions, we recommend that this facility be used only in exceptional situations, and not as part of your standard item flow.
There are many issues associated with gray scale conversion to black-white. In particular, this requires thresholding, which is the assignment of the logical division point from black to white. This calculation can be imperfect, which can result in images being pushed to all-white or all-black. These conversions should be used with extreme caution
Intellectual Property
- Ownership. All title, including but not limited to copyrights, in and to the SOFTWARE PRODUCT and any copies thereof are owned by X9Ware.
- Intellectual Property. All title and intellectual property rights in and to the content which may be accessed through use of the SOFTWARE PRODUCT is the property of the respective content owner and may be protected by applicable copyright or other intellectual property laws and treaties. This EULA grants you no rights to use such content. All rights not expressly granted are reserved by X9Ware.
Warranty Disclaimer
- As Is. X9Ware licenses, and Licensee accepts, the licensed programs “AS IS.” X9Ware PROVIDES NO WARRANTIES AS TO THE FUNCTION OR USE OF THE LICENSED PROGRAMS, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LICENSED PROGRAM IS WITH LICENSEE. LICENSOR DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE LICENSED PROGRAMS WILL MEET LICENSEE’S REQUIREMENTS OR THAT THE OPERATION OF THE LICENSED PROGRAMS WILL BE UNINTERRUPTED OR ERROR FREE.
- No Warranties. X9Ware does not warrant or assume responsibility for the accuracy or completeness of any functionality, accuracy, information, text, graphics, or other items contained within the SOFTWARE PRODUCT. X9Ware makes no warranties respecting any harm that may be caused by the transmission of computer viruses or other such malicious computer programs. X9Ware further expressly disclaims any warranty or representation to Authorized Users or to any third party
Limitation of Liability
- Damages. In no event shall either party be liable for any damages (including, without limitation, lost profits, business interruption, or lost information) arising out of ‘Authorized Users’ use of or inability to use the SOFTWARE PRODUCT, even if X9Ware has been advised of the possibility of such damages.
- Liability. In no event will either party be liable for loss of data or for indirect, special, incidental, consequential (including lost profit), or other damages based in contract, tort or otherwise. In no event shall either party shall have liability with respect to the content of the SOFTWARE PRODUCT or any part thereof, including but not limited to errors or omissions contained therein, libel, infringements of rights of publicity, privacy, trademark rights, business interruption, personal injury, loss of privacy, or the disclosure of confidential information.
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>