Product and Development Musings

ImageMan.Net Version 3.01 Released

2. November 2011 09:54

ImageMan.Net Standard & Document Editions Version 3.01 is now available. This is a maintenance release that also includes a couple of enhancements listed below. The update can be downloaded from the My Products page on our website.

Release Notes - ImageMan.Net - Version 3.01

** Bug
    * [IMN-2] - PDFDecoder creates ImImage with Resolution set to 0
    * [IMN-3] - Installer fails to run toolbox app
    * [IMN-5] - ScaleCommand doesnt set Resolution on processed image
    * [IMN-10] - Exception in ExifParser when a duplicate tag exists
    * [IMN-12] - PdfDecoder class throws NullReference exception from .Load if .Stream property not set, should throw a more meaningful exception
    * [IMN-15] - Memory leak in Deskew Command

** Improvement
    * [IMN-4] - Add missing content to PDF Decoder help
    * [IMN-8] - Update viewer control scollbar thumbs so they show the relative portion of the image displayed
    * [IMN-14] - Minimize number of trial dialog displays at build and runtime

ImageMan.Net Version 3 is now shipping

28. September 2011 10:49

Yes, the next release of our award winning ImageMan.Net Standard & Document edition imaging components is now available. ImageMan.Net Version 3 includes:

  • 32 & 64 bit assemblies
  • Assemblies for .Net 2.0 and .Net 4.0
  • Reading and Writing of EXIF data is supported by the JPG Encoder and Decoder classes
  • New subscription based licensing model
  • Visual Studio 2010 Sample applications in C# and VB.Net
  • Many other new enhancements and performance tweaks

V3ImageManIsHere_thumb2

 

With the release of Version 3 we have also switched to an annual subscription model which will provide developers will all the new major upgrades and updates we develop throughout the year as well as email and forums support. Developers who would like phone based support can also sign up for an optional priority phone support plan.


We've also adopted a new development model with Version 3 which means we'll be providing you with more frequent updates and with major new functionality released over each subscription period. Some of the new features we'll be releasing over the next year includes new searchable PDF support, optional JPBIG encoder and decoder which will provide even better compression for 1 bit images than TIFF group 4 and much more.

Discounted upgrade pricing is available for all current ImageMan.Net developer as well as for users of the ActiveX and DLL components, pricing for the various upgrade options are available after logging in to your My Products page.

A fully functional trial of ImageMan.Net Version 3 can be downloaded from here.

Win $100 in our ImageMan.Net Features Survey

11. July 2011 12:18

We’re working on the feature set for the next ImageMan.Net release and we need your feedback and suggestions. Now is your opportunity to let us know what imaging problems you need solved and how we can help.

Complete our short 5 question survey and you’ll be entered into our drawing for a $100 Amazon.com gift card to be awarded on August 15th.

 

Take the survey

ImageMan.Net Version 3 Beta is here

7. July 2011 14:32

It's here, we've released beta 1 of the ImageMan.Net components. This release includes:

  • 32 and 64 bit Assemblies
  • .Net 2.0 and .Net 4.0 assemblies
  • faster PDF import with less memory consumption
  • EXIF reading/writing support for JPG
  • Performance improvements in the Codecs as well as other image processing classes
  • Misc enhancements such as the hDIB property in the ImImage object

Email us at support@data-tech.com to request a copy of the download details.

 

The ImageMan.Net Dev Team

ImageMan.Net V 2.10 is now available

7. March 2011 09:54

Ok, so what can we say, as soon as we shipped V 2.09 we discovered an issue using the Thumbnail control in Visual Studio 2010 on certain systems. We’ve fixed that issue and released Version 2.10.

We sorry for any inconvenience but wanted to eliminate this issue before it affected any other users.

The installation can be downloaded from the My Products page or from the Trial Downloadspage.

ImageMan.Net Version 3 Beta Testers Needed

4. March 2011 08:19

Spring is officially here and our developers have been busy all winter getting ready to release our ImageMan.Net Version 3.0 components and we are looking for a few good beta testers to help us make sure it’s the best release possible and to make sure we haven’t done anything stupid.

So what’s new in Version 3 ?

  • .Net 4.0 and .Net 2.0 components – No more hassles with app.config when using the existing components in a .Net 4.0 framework application
  • 64 Bit components – Native 64 bit components allow you deploy your applications as 32 or 64 bits.
  • Exif read and write support in the JpegEncoder and JpgDecoder classes including support for the GPS tags.
  • Enhancements to the PDFEncoder class when writing searchable PDF files. Search terms are now highlighted at the appropriate locations on the image.
  • Enhancements to the viewer and thumbnail controls provide even richer functionality.
  • Performance tweeks to the Encoders and Decoders to speed up image loading and saving.

So if you are interested in using this new code and providing us with feedback please let us know at support@data-tech.com and we’ll get you signed up. We anticipate releasing the beta in mid to late March.

ImageMan.Net Twain Version 3

3. September 2010 09:12

The next release of our ImageMan.Net Twain toolkit is ready for beta testing and we are looking for testers.

Among the major new features are:

  • Support for 32 & 64 Bit applications with the same assembly
  • Support for the latest TWAIN Version 2.1 specification
  • New task oriented online help
  • .Net 2.0 and 4.0 assemblies
  • New properties to select the version of TWAIN used

If you are interested in trying out this beta release please drop us a line at support@data-tech.com and we’ll get you a trial.

64 Bit TWAIN Issues

We’ve had lots of folks asking about TWAIN support for their 64 applications and this release adds that support. However due to the architecture of the TWAIN support for 64 applications it will only support 64 bit TWAIN drivers. As of now there are not many, if any, true TWAIN Version 2.x 64 bit drivers that we are aware of. This means that applications that must support twain should continue to run as 32 bit applications for compatibility with the most installed scanners drivers. This limitation is a part of TWAIN and not specific to the ImageMan.Net Twain toolkit.

Scanner Manufacturers and 64 Bit drivers

So from a practical standpoint until manufacturers start producing 64 bit drivers it’s not practical to have 64 bit scanning applications. Note that some manufacturers are saying they have 64 bit drivers for 64 bit operating systems but in actuality they just have 32 bit TWAIN 1.9 drivers that run on 64 bit operating systems. These are not the same as a true TWAIN Version 2.x 64 bit driver.

Efficiently Convert PDF to Multipage TIF

24. May 2010 08:28

One of our ImageMan.Net customers recently asked us to help him convert a multipage PDF file to a single multipage TIF.  His initial attempts to do so were causing memory issues due the resolution and color depth of the source PDF as well as the approach he was taking. 

Inefficient Approach

The less optimized, but convenient, way to solve this problem would be to load the PDF file into an ImageMan.Net image collection (as a standalone ImageCollection object or part of the Viewer's Images property).  Then you can simply save that collection using one of the many overloaded Save methods.  ImageMan.Net handles appending each image in the collection to a single file.

For example, here's one way to simply save the entire collection to a file called image.tif:

[C#]

myImageCollection.Save("image.tif");

[VB.Net]

myImageCollection.Save "image.tif"

Or if you are using a Viewer, then you can save the collection using the Viewer's Save method which will loop through the Images property and create a single file called image.tif:

[C#]

viewer1.Save("image.tif");

[VB.Net]

Viewer1.Save "image.tif"

Additionally, these Save methods have overloads that will allow you to specify the start page, the total number of pages and the image encoder to use.

The problem with this approach is that the larger your ImageCollection, the larger the amount of memory your program will use while running.  Our client was running out memory while trying to process the PDF.

Efficient Approach

The most efficient and less memory intensive (and lowest level) way to solve this problem is to make use of the PdfDecoder class to loop through the pages of the source PDF.  With the PdfDecoder you can also modify some of the source PDF's image details including the resolution and color depth.  Then, for each page in the source image, you can create and append to a single output image file using the TifEncoder's Save method.

At the end of this article, I'll provide links to working sample apps that will contain the code to perform the PDF to TIF conversion.  This sample app will cover all of the details on how to properly work with streams to create the decoder and encoder instances.  I'll cover some of the highlights below:

To loop through the pages of the source PDF, you'll need an instance of the PdfDecoder class which will allow you to retrieve the number of pages (using the Pages property) and set the current page (using the Page property).  Then, you can use an instance of the TifEncoder class to append each page to an output file using the Save method:

[C#]

int totalPageCount = pdfDecoder.Pages;
int currentPageNumber = 0;
 
while (totalPageCount-- > 0)
{
    pdfDecoder.Page = currentPageNumber++;
 
    ImImage tempImage = pdfDecoder.Load(null);
    tifStream.Seek(0, SeekOrigin.Begin);
    tifEncoder.Save(tifStream, tempImage, null);
    tempImage.Dispose();
}

[VB.Net]

Dim totalPageCount As Integer = pdfDecoder.Pages
Dim currentPageNumber As Integer = 0
 
Do While totalPageCount > 0
    pdfDecoder.Page = currentPageNumber
    currentPageNumber += 1  
        
    Dim tempImage As ImImage = pdfDecoder.Load(Nothing)
    tifStream.Seek(0, SeekOrigin.Begin)
    tifEncoder.Save(tifStream, tempImage, Nothing)
    tempImage.Dispose()
 
    totalPageCount = totalPageCount - 1
Loop

The decoder and encoder classes allow you to perform some very low level operations on images that will help your image processing code become much more efficient.  For more details on these ImageMan.Net classes, please refer to the documentation. 

The following sample apps are available online:

ImageMan.Net Twain Now Compatible with .NET 4.0 and Visual Studio 2010

20. May 2010 06:35

Good news, early adopters! ImageMan.Net Twain 2.80, the latest release of our advanced Twain component, fully supports the .NET framework 4.0 and Visual Studio 2010.   This component is now available for downloading from the My Products page.

Separate Assemblies

ImageMan.Net Twain 2.80 ships with two separate DLL's- one for the .NET framework 2.0 and one for the .NET framework 4.0.  You'll find the DLL's in separate folders in the installation path.

Note: You can tell the difference between the similarly named DLLs by right clicking on the file and viewing the Properties dialog.  In the Details tab (for Windows 7) or the Version tab (for XP), view the File description field.  The 2.0 assembly will read "ImageMan.Net Twain for .Net 2.0".  Likewise, the 4.0 assembly will be labeled "ImageMan.Net Twain  for .Net 4.0". 

2010-05-19_1400

Sample Applications and Code

You'll notice new client side and ASP.NET samples (and sample code) that are fully compatible with Visual Studio 2010.  If you have multiple versions of Visual Studio on your system, you can select which samples to install during the installation process. 

Note: The Start menu links to the demo apps will always target the earliest version of the .NET framework you have installed on your computer.

2010-05-14_1042 

Help Format

To better integrate with Visual Studio 2010, we've updated our documentation to the Microsoft Help System format which is available to you when you install Visual Studio 2010.  Previous versions still retain their properly formatted help documentation.

2010-05-14_1049

ImageMan.Net and Visual Studio 2010

15. April 2010 08:26

With the release of Visual Studio 2010, some of you are probably eager to start developing new applications on (or porting existing applications to) the .NET Framework 4 and the new IDE.  You can use ImageMan.Net components in Visual Studio 2010 projects that target .Net Framework 4 but you'll need to be aware of one issue. 

According to Microsoft:

The .NET Framework 4 works side-by-side with older Framework versions.  Applications that are based on older versions of the Framework will continue to run on the version targeted by default.

However, the above statement does not hold true when the older versions involve mixed mode assemblies.  ImageMan.Net was developed on .NET Framework 2 and one of the components, DTI.ImageMan.Codecs.dll, is a mixed-mode assembly which does not get properly loaded into the .NET Framework 4 runtime without additional configuration.

Until the ImageMan.Net source is built in .NET Framework 4, you are going to have to apply a slight workaround to get the components to work properly in a .NET Framework 4 assembly.  Here's an example of the type of exception you can expect to see when you do not apply this workaround:

FileLoadException

To cause this exception, I created a simple Windows application in Visual Studio 2010.  I dropped ImageMan.Net ThumbnailViewer, Viewer, Annotation and AnnotationToolSrip controls onto the form's design surface.  Then I built and ran the application which displayed the exception dialog above.

To fix this problem, you'll simply need to add the useLegacyV2RuntimeActivationPolicy attribute to the application's config file (app.config) like so:

<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
    </startup>
</configuration>

Setting this attribute to true will allow a pre-.NET Framework 4 mixed-mode assembly to load in a .NET Framework 4 process.  With this workaround in place, you'll be able to integrate the ImageMan.Net components in your Visual Studio/.NET Framework 4 projects.  We will soon release .NET Framework 4 targeted ImageMan.Net assemblies which will not require you to modify your app.config files.

Log in