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 Java and for iOS/Android.

As always, call or e-mail our experts with your specific questions.

Atalasoft's WDV controls let you embed a full document viewer with thumbnails and controls 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:

  • Internet Explorer 8 and later
  • 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
  • Server-Side Image Viewing
  • On-Demand Tiled Loading of images
  • Multipage TIFF Support
  • Multipage PDF Support (for read/decode capability the PDF Reader Add-On is required)
  • Remote Invoke Methods for no-postback "AJAX" processing
  • Undo / Redo Capability

Support for web annotations:

  • Freehand
  • Text box
  • Sticky note
  • Custom images
  • Signature
  • Redactions
  • Shapes
  • Line

Legacy Web Viewers:

  • SilverlightViewer - XAML viewer for the silverlight platform
  • WebAnnotationViewer - ASP.NET style zero-footprint viewer
  • WebThumbnailViewer - WebAnnotationViewer's thumbnail viewer

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
  • 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);

Some of our decoders are provided as separate add-ons:
Microsoft Office, DICOM, and JPEG2000/JBIG2

Microsoft Office Decoder (Word/Excel/PowerPoint)

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
  • 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
  • Requires Microsoft Office dependencies - learn more

DICOM Format

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.

  • 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


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 available as a plug-in and integrate with Atalasoft DotImage seamlessly. They're based off of Luratech's Lurawave.jp2 wavelet compression technology.

See JPEG2000 Documentation for more

See JBIG2 Documentation for more

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.

Scanning directly from a web browser enables end users and back offices to not have to handle any kind of file mainipulation on their computer to get the scanned image directly into a repository or process. It is accomplished by using a plugin on the scanning computer and a handler on the serverside.

What users experience

Users will need to install a browser plugin so your application can talk to their TWAIN-enabled scanner. Why a plug-in? There needs to be some kind of clientside protocol that exists and we have found that a Windows service/system tray icon style is more intrusive and wouldn't be a smooth experience.

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

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
      • Code11
      • Code128
      • Code32
      • Code39 - Additional Reading Options
      • Code93
      • Datamatrix
      • Ean13
      • Ean8
      • I2of5
      • IntelligentMail
      • Itf14
      • MicroQr
      • Patch
      • Pdf417 - Additional Reading Options
      • Planet
      • Postnet
      • Plus2
      • Plus5
      • QR
      • Rm4scc
      • Rss14
      • RssLimited
      • Telepen
      • 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

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

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 handwritten 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

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 optionally reject low confidence characters
  • Can optionally reject low confidence lines
  • Can disable recognition of specific characters
  • 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

RecostarEngine - Open Text - A fast closed source engine that provides both OCR and ICR

  • Supports the European Character Set
  • Reports individual character position and size
  • Reports character confidence
  • Properly OCR's rotated pages, reporting the rotation angle
  • Can automatically break merged characters, or merge broken characters
  • Can optionally reject low confidence characters
  • Can optionally reject low confidence lines
  • Can disable recognition of specific characters
  • Full Page color OCR can be generated when combined with the Searchable PDF Module

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.  

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.


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.

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. 
Developers can integrate PDF viewing, printing, and format conversion. If you're working with existing PDFs, you will need these controls.

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.

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.


  • 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

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.


  • 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.


  • 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.