Home /
.NET Technical Details
.NET Technical Details
For you curious folks, here are some technical details about our .NET platform imaging tools. We have similar information for iOS/Android.
As always, call or e-mail our experts with your specific questions.
Atalasoft's WebDocumentViewer (WDV) controls let you embed a full document viewer with thumbnails and controls within a web browser to:
- Open any DotImage supported image type (add-ons too)
- View and print from any repository of documents.
- Markup the document with annotations
- Redact content on the document by burning annotations
- Edit, Insert, Reorder, Remove, or Rotate pages
- Cleanup documents using binarize, deskew, despeckle, and all other DotImage ImageCommands
- Capture from a client connected scanner with WingScan
- Go Mobile for Mobile Browsers iOS and Android with built-in gesture support for controlling the viewer
Javascript UI Controls:
- WebDocumentViewer
- Control for viewing multipage images
- Adds native zero footprint html5 browser support for all images supported (see Format Independence)
- Dynamically loads viewed images to avoid excessive memory use
- WebDocumentThumbnailer
- Control for showing a quick view of a complete viewer
Supported by ASP.NET generic handler object (.ashx):
- WebDocumentRequestHandler
- Events for cusomtization
- Allows for custom behavior such as
- Loading files from a database
- Showing all files from a folder
Supported Browsers:
- Microsoft Edge (Desktop Mode Only)
- Internet Explorer 11 and later (Desktop Mode Only)
- Firefox
- Chrome
- Safari
- Mobile Safari
- Android Chrome
Other features:
- Web project templates available for creating AJAX document viewers quickly
- Antialias display for color and grayscale images
- Heavily optimized and efficient Scale-to-Gray Display for high quality bi-tonal image display.
- No-postback Zooming, Zoom to Area and Selection mouse tools
- On-Demand Lazy Loading of images
- Multipage TIFF Support
- Multipage PDF Support (for read/decode capability the PDF Reader Add-On is required)
Support for web annotations:
- Freehand
- Text box
- Custom images (referenced image)
- Rubber Stamp
- Rectangle (Can be use to highlight/cover)
- Ellipse
- Polygon
- Line (line/lines)
Legacy Web Viewers:
- SilverlightViewer - XAML viewer for the silverlight platform (Deprecated)
- WebAnnotationViewer - ASP.NET style zero-footprint viewer
- WebThumbnailViewer - WebAnnotationViewer's thumbnail viewer
Our PDF Reader withText Extarction SDK allows you to open already existing PDF's within DotImage. The SDK allows Developers the ability to integrate PDF viewing, printing, and format conversion within an application. If you're working with existing PDFs, you will need these controls. PDF Reader with Text EXtarction is an add-on to the DotImage SDK.
PdfDecoder - Converts the PDF vector based programmatic image into a pixel based image for use with the AtalaImage object. To have PDF as an openable format using AtalaImage's constructor add a PdfDecoder to the static RegisteredDecoders.Decoders collection.
Supported PDF Reader Features:
Add high-speed viewing of PDF documents to your applications
- Convert PDFs to raster images in the DotImage viewers without the Adobe Acrobat SDK
- Print PDF documents using the DotImage printing components or by rendering onto a printer graphics object
- Convert PDF documents into any supported DotImage image format (multipage TIFF, JPEG, etc).
- Integrates with our web viewers for server-side viewing, panning, and zooming of PDF documents
- Extract all images from a specified PDF page to their native bit depth
- Specify a resolution to use when rasterizing the PDF for instant PDF thumbnails
- Supports CCIT G3, G4, Flate, and JPEG embedded images
- Support for PDF/A, JBIG2, and JPEG2000 compressed images
- Supports PDF Specification versions 1.3, 1.4, 1.5, and 1.6
- Supports all font types: Type1, TrueType, Type0, Type3
- Supports all text rendering modes (full, stroke, clipping)
- Supports tiling patterns and shadings
- Supports all colorspaces: RGB, Gray, CMYK, ICCBased, Lab, Indexed, and Separation.
Full support for viewing and authoring PDF Annotations without requiring Adobe Acrobat
- Built-in support for annotating multipage documents such as multi-page TIFFs
- Vector annotations on the web with AJAX-enabled controls, including FreeHand, Lines, and Polygons
- Out of the box viewing, printing, burning, and editing of images with annotations.
- Add simple document markup capabilities or fully functional annotating to existing projects using DotImage.
- Easily create your own custom annotations.
- Persist Annotations to a file or embedded within an image using the standard WANG format or our own format based on Adobe's XMP standard.
- View and Author PDF Annotations
- The built-in AnnotatePrintDocument can be used to print images with annotations exactly as they appear in the viewer.
- Includes the InkAnnotation object giving Tablet PC developers the ability to ink directly onto images and treat ink as an annotation object.
- Rotate Annotations to any arbitrary angle
- Use professionally designed annotation icons in your own projects
- Annotate documents in a browser using the AJAX enabled Web Annotations Viewer
Support for:
- Freehand
- Text box
- Sticky note
- Custom images
- Signature
- Redactions
- Shapes
- Line
Burning Annotations
To achieve a state of flattened redaction or uneditable annotation in an image or PDF, annotations can be "burned in." See this burning annotations Knowledgebase article for more on this.
Microsoft Office Reader
Microsoft Office Decoder (Word/Excel/PowerPoint) is an add-on to DotImage.
This add-on quickly decodes Word, Powerpoint, and Excel documents into color or grayscale raster images, seamlessly plugging into DotImage and associated image viewing components as an image decoder.
- Convert Office files to raster images in Atalasoft image viewer controls:
See a full list of supported formats
- Use the OfficeDecoder class if you need fast rendering. Results aren't 100% accurate, but there's no requirement for Office to be installed and no security concerns.
- Use the OfficeAdapterDecoder class if you need 100% accuracy. You will need an instance of the required Office application on your server and macros can represent a security threat.
- Print Documents using the DotImage Printing components or by rendering onto a printer graphics object.
- Convert Documents into any supported DotImage image format (multipage TIFF, JPEG, etc).
- Integrates with our AJAX enabled Web Image viewer for server-side viewing, panning, and zooming of documents
- Runtime Royalty Free Desktop Licensing
OCR, or Optical Character Recognition, is a process to locate and identify typed letters in an image. ICR or Intelligent Character Recognition is a process similar to OCR but it is used to identify hand-printed letters in an image. Our toolkit allows OCR and ICR engines to be implemented by extending our base OcrEngine class. The Recognize() method is used to start the process. Additionally, we have partnerships with the following OCR and ICR engines and provide the OcrEngine class overload out of the box:
Start your engines
AbbyyEngine - ABBYY FineReader - a fast, closed-source engine for OCR and ICR
- Supports 201 languages with 99% accuracy
- Hand-printed (ICR) and printed (OCR) documents
- Reports individual character position and size
- Reports character confidence
- Can optionally reject low confidence characters
- Can optionally reject low confidence lines
*Interested in downloading and trying the ABBYY OCR add-on for Atalasoft DotImage? See this Knowledgebase article for ABBYY instructions and full OCR/ICR languages supported.
GlyphreaderEngine - Transym - A closed source OCR engine that vectorizes glyphs then determines all the possible letters that it could be.
- Supports the European Character Set
- Reports individual character position and size
- Reports character confidence
- Properly OCR's rotated pages, reporting the rotation angle
- Has Auto-Rotate functionality, rotating documents to the correct orientation
- Can automatically break merged characters, or merge broken characters
- Can disable recognition of specific characters
- Can optionally reject low confidence characters
- Can optionally reject low confidence lines
- Full Page color OCR can be generated when combined with the Searchable PDF Module
TesseractEngine - Google - An intelligent learning open-source OCR engine with many extended language options.
- Integrated support for the languages Dutch, English, French, German, Italian, Portuguese, and Spanish
- Atalasoft tests additional language add-on packs for: Chinese(Simplified), Chinese(Traditional), Danish, Finnish, Greek, Hebrew, Japanese, Korean, Norwegian, Russian, Swedish, Turkish
- Tesseract provides additional language add-on packs here: http://code.google.com/p/tesseract-ocr/downloads/list
- Ability to determine character, word, and line size and location
- Reports confidence of each recognized character
- Output to Text or Searchable PDF
- Royalty Free Desktop Licensing
Additionally, our engines can be integrated to use the PdfTranslator. This module automatically translates an image into a searchable PDF file. Simply call Translate() in any of our OcrEngines.
Controls for both reading and writing all your favorite symbologies
Barcode Reading:
- Reads all barcodes in an image then returns the string value of each barcode recognized
- Reads 14 industry 1-D barcodes as well as 2 industry 2-D symbologies (full list below)
- Automatically detect orientation of the recognized barcode (East, South, West, North, Northeast, Southeast, Northwest, Southwest)
- Returns the bounding rectangle of all recognized barcodes
- Returns the coordinates of the start and end lines, which can be used to construct a bounding polygon of the barcode area
- Detects the type of barcode recognized
- Integrated with DotImage with the ability to include an image viewer and pre-processing capabilities such as deskew, despeckle, and annotations.
- Returns position of checksum character (if present)
- Returns any supplemental barcodes
- Deploys as a single assembly alongside DotImage dependencies.
AtalaImage objects can be run through a BarcodeReader or can have a barcode OverlayCommand-ed on to itself. The two objects used for this are seperated out by result:
- BarCodeReader
- Engine to find the following barcode formats:
- AustraliaPost
- Codabar
- Code128
- Code32
- Code39
- Code93
- Datamatrix
- Ean13
- Ean8
- I2of5
- IntelligentMail
- Patch
- Pdf417
- Planet
- Postnet
- Plus2
- Plus5
- QR
- Rss14
- Upc-A
- Upc-E
- ReadOpts
- Used for setting specifics for what barcodes to search for in what formats.
Barcode Writer
- Used for writing barcodes programmatically. Best if used with the OverlayCommand to add a barcode to an existing image
- Includes Winform controls that can be dragged onto any window and set up with just a few properties.
- Writes 13 industry 1-D barcodes as well as PDF417 and DataMatrix 2-D symbologies
- Set orientation of the barcode.
- Set the bounding rectangle of barcodes.
- Supports check digits for barcodes that use them.
- Integration with DotImage with the ability to save the image in any format supported by DotImage.
- Also available stand-alone which integrates with .NET's imaging features.
- Deploys as a single assembly alongside DotImage dependencies.
- Supports the following symbologies
- Postnet
- Ean8
- Ean13
- Upc E
- Upc A
- Code128-C
- Code128-B
- Code128-A
- Code93Ext
- Code93
- Code39ExtChk
- Code39Ext
- Code39Chk
- Code39
- Codabar
- I2of5
- MsiPlessey
Multipage documents can be very large when fully loaded into pixel memory. To work with this, we provide:
Classes to change the pages in a document without loading them into memory.
These are useful for removing, rearranging, and adding pages to an existing document with minimal overhead.
- PdfDocument
- Combine static method for quick combining of PDF documents
- PdfDocument.Pages collection contains PdfPage objects that allows pages to be added, removed and rearranged
- PdfPage.Frame can be used with the PdfDecoder object to open the page into an AtalaImage.
- TiffDocument
- Combine static method for quick combining of Tiff documents
- TiffDocument.Pages collection contains TiffPage objects that allows pages to be added, removed and rearranged
- TiffPage.Frame can be used with the TiffDecoder object to open the page into an AtalaImage.
With our WingScan product you can scan directly from a web browser - this improves security and enables end users to scan directly to a repository without the need to save locally first. It is accomplished by using a lightweight http server on the scanning computer that the browser can communicate with and a handler on the serverside. WingScan is a stand alone product with a streamlined viewer - however when you combine WingScan with our DotImage SDK you have superior web based scanning combined with powerful viewing controls to make capturing and processing documents effortless.
What users experience
Users will need to install a windows msi file so your application can talk to their TWAIN-enabled scanner. Why a http server? There needs to be some kind of clientside protocol that exists and browsers have decided to move away from NPAPI (More information on this move http://content.atalasoft.com/h/i/46510612-npapi-has-left-the-building-what-wingscan-users-should-know)
Javascript Controls for embedded web app scanning
- Atalasoft.Controls.Capture.WebScanning
- Configurable options
- Optional Virtual Re-Scan (VRS) Automatic Clean up technology
- PixelType
- Duplex
- Automatically detects compatibility and directs user to installer
- Installs lightweight driver interaction application
- Enables web scanning as a possiblity
Serverside ASP.NET Handler:
- WebCaptureRequestHandler
- Used to provide custom functionality to the scanning control
TWAIN (Technology Without an Interesting Name) is a scanning driver communication specification standard used for writing device drivers for scanner agnostic applications.
Atalasoft DotTwain is a .NET SDK for capturing digital images from scanners, cameras, and other TWAIN devices. It uses the latest TWAIN specifications for ultra fast scanning.
DotTwain can be used in a small footprint web deployment delivered as a .NET "no-touch" or signed ActiveX. Or it can be used in a standalone .NET scanning solution. DotTwain supports 32- and 64-bit TWAIN 1.x/2.X drivers and is included in DotImage Document Imaging.
Acquisition
- UI control that makes connection with twain scanners on the system
- Allows user to select TWAIN scanner to use for capture
- Provides an event interface to set properties and customize the capture process
Atalasoft is a TWAIN board member
www.inspectortwain.com is a database of scanner drivers and their compatability score with the TWAIN specification.
Features
- Create a custom interface to scan images, or use the default TWAIN interface.
- Automatic Document Feeder support, with full control of the feeder operations.
- Built-In Background Scanning support to prevent the UI thread from locking-up while scanning.
- Support for duplex scanning
- File system support for navigating the internal device memory.
- Acquire images directly to file utilizing compression algorithms supported by the device.
- Select a region of the scanning bed to be acquired with frame support.
- Upload a scanned image to a server with the built in HTTP Post class.
- Simplified automatic capture allowing the device to quickly capture multiple images for later acquisition.
- Imprinter/Endorser methods allowing a text string ito be stamped onto the acquired image during the acquisition.
- Barcode/Patchcode classes to access barcode and patchcode recognition abilities of the device.
- A low-level class allowing even more control over the scanning session for advanced users.
- Extensible to allow custom driver capabilities access.
- Image dataset support enables acquisition of specific images from a camera in a single operation.
- Quickly find out what capabilities, compression modes, frame sizes, resolutions and more, are supported by a device.
- Over 80 properties and 50 methods to give total control over the image acquisition.
- Full context sensitive help and documentation.
- Object-oriented design; a TWAIN extension to the .NET Framework.
This format is now included with DotImage
OMR, or Optical Mark Recognition, is commonly used to transform documents with marks into contextual data.
Typical uses include, bubble sheet reading, reading form areas, and survey data extraction.
The process starts with alignment. During alignment a base template image is compared to a scanned image and it is lined up using landmarks on the document. Once this is complete the templates defined areas can be read from.
The following classes can be customized or used to create a custom OMR workflow:
- DocumentAligner - Our base document aligner. Does the transformation to a document to match to a template. Can be replaced with custom code using IDocumentAligner.
- DocumentRejector - Our base document rejector. Determines whether a document is matched or not. Can be replaced with custom code using IDocumentRejector.
- OmrTemplateDocument - Used to define the template. Use code to define target areas and mark areas on a document. This will be used for matching and detecting marks.
- OmrDocument - Used for the scanned multipage image to be compared to a template.
- OmrPage - Represents a single scanned page.
- OmrMark - The structured class to look at a mark area and what the determined result was.
DICOM Format - This format is included with DotImage
Create a medical imaging application for displaying X-Ray DICOM images, a tablet application for doctors to diagnose an image and annotate freehand notes on a separate layer, or build an application to read patient information embedded in a DICOM image. DICOM is included with Atalasoft DotImage.
- Views both old and new style DICOM Formats
- Decodes images into 8-bit Gray, 16-bit gray, 24-bit RGB, or 48-bit RGB colorspaces
- Also supports 10-bit, 12-bit, and 14-bit gray promoting them to 16-bit gray for viewing
- Read all patient metadata from the image
- Support for all DICOM pixel formats in the web controls
- Support for DICOM window and leveling
- Support for reading DICOM sample values before any transformations have been applied
- Reads a specified frame in a multi-framed DICOM image
- Full annotations support
Read more about imaging in Healthcare
See this article for more information on how to integrate DICOM into your project
Read the DICOM Developer's guide for more
JPEG2000/JBIG2 - These formats are included with DotImage
Atalasoft's JBIG2 and JPEG2000 codecs can be used to encode and decode images using the Microsoft .NET Framework. They use wavelet compression technology to compress photographic images further then any other available compression scheme. These codecs are included with Atalasoft DotImage. They're based off of Luratech's Lurawave.jp2 wavelet compression technology.
See JPEG2000 Documentation for more
See JBIG2 Documentation for more
With Atalasoft DotPDF you have the ability to generate PDFs from scratch or manipulate the pages of existing PDF files. DotPdf is licensed per developer with royalty free deployment options and backed by our remarkable in-house phone and web support. DotPdf is a standalone product - DotImage is not required.
Programmatic PDF Template Generation
- Create fillable forms, invoices, POs, quotes, receipts, archival records
- Consume customer filled forms and extract inputted data
- Generate output from reports, e-mail attachments, printable versions of web-pages
- No need to understand the PDF Specification, because we provide an intuitive, object-oriented, shape-based interface.
- Our test app created a 1,000 page PDF document with an image on each page - the result: only 10 seconds.
PDF Forms & Editing Support
- Use with Atalasoft DotImage's WebDocumentViewer control to display forms in HTML 5 native browsers. Users can use the interactive fields to fill in data in the form embedded directly in a webpage.
- PDF Repair Tools to automatically or algorithmically correct common issues with PDFs
Other Features
- Create PDF template blanks that you can fill with data later. Perfect to use for designing the look of your business documents in code that is separate from the code that combines it with the actual values.
- Use a sophisticated shape library to lay out your pages. Includes vector drawing (lines, rectangles, paths), text, images, and tabular data.
- Automatically detect and correct common issues with out of specification PDF
- Import SVG drawings.
- Manipulate the pages of a PDF by reordering, removing or adding pages
- Add and edit the bookmarks of a PDF
- Add encryption to any PDF
- Add and edit the metadata of a PDF
- Integrate with DotImage to include advanced codecs like JPEG2000 and JBig2, our image processing library, or vector versions of 1D and 2D barcodes.
- Interacting with Adobe's AcroForms in PDF documents is simple with Atalasoft's SDK. Using the PdfGeneratedDocument class forms can both easily be read from or created from scratch.
The AtalaImage class is the representation of a single image in any image format. It uses ImageDecoders to load an image and ImageEncoders to save an image. ImageDecoder or Image Encoder can be extended to handle a special image file type. When using AtalaImage's constructor all ImageDecoders in the static RegisteredDecoders collection are used to open the file or stream.
Developer tools that support all your scanned image, document, and PDF formats.
- 1-bit, 4-bit. 8-bit colormapped support
- 8-bit grayscale, 16-bit grayscale w/alpha, 24-bit RGB, 32-bit RGBA, and 32-bit RGB support
- 32-bit CMYK support (w/auto color management)
- 16-bit grayscale, 48-bit RGB, 64-bit RGBA support
- JPEG, JPEG EXIF, PNG, PNM, TIFF, TIFF G3/G4 Fax, PCX, TGA, BMP, PSD, PCD, GIF, Animated GIF, EXIF, WMF/EMF.
- Write-to raster image formats
- Digital Camera RAW Decode Support
- XPS and HD Photo/JpegXR Support
- Image only PDF Encode Support. (See the PDF Reader module for PDF Read Support)
- LZW, Packbits, Deflate, G3/G4, RLE, JPEG, and TIFF JPEG Compression (See JBIG2 and Jpeg2000 for additional compressions)
- Full alpha transparency support
- Multi-page TIFF read support (note: only Document Imaging supports scale to gray display)
- Multi-page TIFF write support
- Lossless JPEG TransformsAuto
- TIFF Directory Manipulation (insert, remove, add pages, and edit/add tags without re-encoding the entire image)
- Tiled TIFF decoding and encoding
- Support for TIFF Type 6 (OJPEG) decoding
- Support for TIFF Type 6 (OJPEG) encoding
The AtalaImage class is the representation of a single image in any image format. It uses ImageDecoders to load an image and ImageEncoders to save an image. ImageDecoder or Image Encoder can be extended to handle a special image file type. When using AtalaImage's constructor all ImageDecoders in the static RegisteredDecoders collection are used to open the file or stream.
Atalasoft provides the following prebuilt Decoders:
- BmpDecoder - Bitmap format
- EmfDecoder - Enhanced Metafiles format
- GifDecoder - Compuserve Graphics Interchange format
- JpegDecoder - Jpeg format
- JpegXrDecoder - Microsoft Windows Media Photo format
- PcdDecoder - Kodak Photo CD format
- PcxDecoder - Zsoft Paintbrush format
- PdfDecoder* - Adobe's Portable Document format
- PngDecoder - Portable Network Graphics format
- PnmDecoder - PNM, PBM, PGM, PPM formats
- PsdDecoder - Adobe Photoshop format
- RawDecoder - Digital Camera Raw format
- TgaDecoder - Truevision Targa format
- TiffDecoder - Tagged Image File Format
- TlaDecoder - Tla format
- WbmpDecoder - Wireless Bitmap format
- WmfDecoder - Windows Metafile format
- XpsDecoder - XPS Document format
- DwgDecoder* - Autocad DWG and DXF file formats
- DicomDecoder* - DICOM meta
- Jb2Decoder* - JBIG2 black and white compression optimized file format
- Jp2Decoder* - Jpeg2000 color compression optimized file format
- OfficeDecoder* - Microsoft Office Word documents and Excel documents
*This decoder is not included in RegisteredDecoders and requires special licensing. Adding this decoder to RegisteredDecoders after licensing is in place is done with RegisteredDecoders.Decoders.Add(decoder);
ImageCommand is the base class for doing a pixel operation on an image.
The most useful commands for document imaging are:
- CropCommand - Convert image into a subset of its pixels
- OverlayCommand - Put an image on top of another
- ResampleCommand - resize an image
- DynamicThresholdCommand - compress a document to black and white from color
Beyond these commands we also have libraries of additional commands broken down in to groups. Check out these namespaces for additional commands:
- Atalasoft.Imaging.ImageProcessing.Channels - Commands to work with color images
- Atalasoft.Imaging.ImageProcessing.Document - Commands optimized for textual scanned documents
- Atalasoft.Imaging.ImageProcessing.Effects - Commands that alter pixel content
- Atalasoft.Imaging.ImageProcessing.Fft
- Atalasoft.Imaging.ImageProcessing.Filters - Commands that mimic photoshop commands
- Atalasoft.Imaging.ImageProcessing.Transforms - Commands that alter pixel alignment
Easy-to-use Windows Forms viewing controls
ImageViewer - Our basic lightweight WinForms viewer. Designed to show a single AtalaImage at a time.
WorkspaceViewer - A WinForms viewer, with additional built in functionality
AnnotateViewer - Our WorkspaceViewer with built in annotation functionality.
Features
- Scrollable, Zoomable Image Viewer Controls
- Multi-Threaded Thumbnail Viewer Control
- Automatically watch folders and update the thumbnail if there is a change.
- View multi-page TIFF documents
- Vertical or Horizontal Layout
- Custom Captions
- On Demand Thumbnail Loading
- Advanced Styling and Control
- Automatically watch folders and update the thumbnail if there is a change.
- Antialias Display for color and grayscale images
- Heavily optimized Scale-to-Gray Display for high quality document image display
- Pan, Zoom, ZoomArea, Select Mouse Tools
- Autozoom including Best Fit, Fit to Width, and Fit to Height
- Magnifier Component
- Animated Rectangle, Ellipse, and Line rubberbands
- Printing Component to print images, one per page
- Pan, Zoom, Zoom Area, Select Mouse Tools
- Composite Image Printing Control to print image composites
- Open Image Dialog Control
- Undo / Redo Capability