Creating TIFF Documents | Web Document Scanner
The Scanbot Web SDK offers functionality for binary-colored TIFF generation, which allows you to store your scans with minimal file size. Create the appropriate generator as follows:
interface TiffGenerationOptions {
dpi?: number;
}
const options: TiffGenerationOptions = { dpi: 123 };
const generator = await scanbotSDK.beginTiff(options);
Options
- DPI value defaults to 72.
Adding pages
In order to allow for memory optimization, you can load an image from storage one at a time and add it to the generator. The image you add must already be binarized, i.e. contain only black and white pixels. You can pass the image data in one of two ways:
- As an
ArrayBuffer
, containing encoded image data, e.g. as a JPEG or PNG. - An instance of
ImageProcessor
(see Filters and image Processing).
const imageArrayBuffer = await (await fetch("image.png")).arrayBuffer();
// If our image is already binarized, we can add it directly:
await generator.addPage(imageArrayBuffer);
// Otherwise, we can binarize it first:
const imageProcessor = await sdk.createImageProcessor(imageArrayBuffer);
await imageProcessor.applyFilter(new ScanbotSDK.imageFilters.ScanbotBinarizationFilter());
await generator.addPage(imageProcessor);
await imageProcessor.release();
When all images have been added, complete
the transaction and receive the resulting byte array:
const bytes = await generator.complete();
As an example, you can force the tiff download of the pages in the browser via:
static saveBytes(data, name) {
const extension = name.split(".")[1];
const a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
const blob = new Blob([data], {type: `application/${extension}`});
const url = window.URL.createObjectURL(blob);
a.href = url;
a.download = name;
a.click();
window.URL.revokeObjectURL(url);
}
And then call it as such:
saveBytes(bytes, "generated.tiff");
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get your free Trial LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.