Testimonials


I have used many different Imaging products. Hands down you have the best product out of the bunch. I love the fact it is extendable - it works fast and it just works. Keep up the fantastic work.

Steve Thompson
Electrical Resources, Inc





VintaSoftImaging.NET SDK - FAQ

General questions:

 

Redistribution:

 

Sales:

 

Image preview:

 

TIFF:

 

 

For which purposes can I use the VintaSoftImaging.NET SDK?

The library itself allows to load, view, process, print and save images, work with multipage TIFF files directly. VintaSoftImaging.NET can be used as standalone SDK or its functions can be extended with VintaSoftAnnotation.NET, VintaSoftPDF.NET, VintaSoftJBIG2.NET and VintaSoftJPEG2000.NET plug-ins features in any combination.

 

 

From which parts does the library consist?

The library contains:

  • Vintasoft.Imaging assembly which uses GDI32 (Bin\v2.0\Vintasoft.Imaging.dll file)
  • Vintasoft.Imaging assembly which does not use GDI32 (Bin\v2.0\64-bit\Vintasoft.Imaging.dll file)
  • Documentation in CHM format (Help\VintaSoft.Imaging.chm file)
  • Examples for MS Visual Basic.NET, MS Visual C#, ASP.NET (files in the Examples directory)
  • Demo applications for 32-bit systems (files in Bin\v2.0 directory)
  • Demo applications for 64-bit systems (files in Bin\v2.0\64-bit directory)

 

 

What is the difference between versions of assembly?

1. Bin\vX.0\Vintasoft.Imaging.dll file

Version features:

  • Version is compiled under .NET 2.0 or 4.0
  • Version can be used in x86 and WOW64 modes
  • Version cannot be used in x64 mode
  • GDI32 functions are used to preview images in the image viewer
  • High speed of preview in the image viewer

2. Bin\vX.0\64-bit\Vintasoft.Imaging.dll file

Version features:

  • Version is compiled under .NET 2.0 or 4.0
  • Version can be used in x86, WOW64 and x64 modes
  • GDI32 functions are NOT used to preview images in the image viewer
  • Speed of preview in the image viewer is less than speed of version which uses GDI32

 

 

In which programming languages can I use the Vintasoft.Imaging component?

With the Single Developer license or Site license you can use library in:

  • Microsoft Visual Studio .NET : Visual Basic, Visual C#, Visual C++, Visual J#
  • Borland Delphi 8.0, Borland C# Builder, Borland C++ BuilderX
  • any other languages which are compatible with .NET Framework.

With the Server license you can use library in:

  • Intranet / internet applications on a server-side (ASP.NET or PHP)

 

 

What restrictions does the unregistered version contain?

Unregistered version has the following restrictions:

  • nag screen
  • the "Evaluation version" text will be added to all saved or printed images
  • 8-bpp palette or gray images will be saved as 24-bpp color images
  • speed of work limitation.

All these restrictions are removed in registered version.

 

 

I have problems. What should I do?

Answers to the majority of questions can be found in the documentation or this web site. Please write to our support team to get more help.

 

 

What files do I need to include in the setup package of my program?

You need include only one file: Vintasoft.Imaging.dll. This file must be placed in the same folder as the assembly that references it. Make sure that the version you distribute is the version your assembly was compiled with.

 

 

Can I re-distribute the VintaSoft.Imaging.dll with my application without royalties?

Yes, the library is royalty free. You pay only for registration one time.
Only the Vintasoft.Imaging.dll can be re-distributed with your application. Site license has no limitations in re-distribution. Single Developer license has limitation in re-distribution. Server license is not royalty free. Please read the the license agreement for more info.

 

 

What to do when my Single developer license application redistribution count is about to exceed 100 copies in a year?

If you own Single developer license you must contact Sales in an event your application redistribution count is about to exceed 100 copies in current year. You'll be provided with an opportunity to upgrade your Single developer license to Site license with 30% discount or to buy additional Single developer license.

 

 

What is the difference between Single developer license and Site license?

  • Single developer license must be used in software development by only one programmer whose name is indicated in the license data.
  • Site license must be used in software development by any programmer who works for a company which name is indicated in the license data.
  • Single developer license may be used in software development on any PC located at any physical address.
  • Site license may be used in software development on any PC located at single physical address (at only one office).
  • Single developer license permits a royalty free distribution of an application which integrates the SDK redistributable assemblies up to 100 copies in a year.
  • Site license permits an unlimited royalty free distribution of an application which integrates the SDK redistributable assemblies.

 

 

Is there a difference in deploying my application on a desktop PC or on a server?

Yes, there is. Please read the "Deploying" section in this product documentation to understand the difference.

Terms: Desktop PC - Windows XP, Vista, 7 OS installed. Server - Windows Server 2000, 2003, 2008 OS installed.

 

 

Can I add two thumbnail viewers to a form of my application and move images between them?

Yes, you can do this. Please see example 3 here.

 

 

Does the image viewer supports has scale to gray (antialiasing) option for displaying black-and-white images?

Yes, image viewer supports scale to gray option since version 2.2. This option can be enabled using the ScaleToGray property of the ImageViewer object.

 

 

I want to store images in a separate image collection and preview only necessary one. Can I do this?

Yes, you can store images in a separate collection of images and preview only necessary image in the image viewer.
Here is an example:

[VB.NET]
' Create the image collection and load images.
Dim images As ImageCollection = New ImageCollection
images.Add("test-image1.jpg")
images.Add("test-image2.png")
images.Add("test-image3.gif")
images.Add("test-image4.bmp")
images.Add("test-image5.jpg")
' Preview the first image from collection. 
imageViewer1.Images.Add(images(0))
...
' Preview the second image from collection. 
' Remove the first image from the image viewer. 
imageViewer1.Images.RemoveAt(0)
' Preview the second image in the image viewer. 
imageViewer1.Images.Add(images(1))
...
' Returns back to the first image. 
' Remove the second image from the image viewer. 
imageViewer1.Images.RemoveAt(0)
' Preview the first image in the image viewer. 
imageViewer1.Images.Add(images(0))
...

 

 

I want to load an image file into the viewer and delete it after loading. How can I do this?

Viewer must have access to the image data while it works with the image.

You should do the following steps if you want to load image file into the viewer and delete file after loading:

  • Open the image file
  • Read file bytes into the byte buffer (for example with File.ReadAllBytes)
  • Create the memory stream from byte buffer
  • Close and delete the image file

 

 

I cannot open TIFF file using your library. What should I do?

Please send us your "bad" file. We will analyze it and update our reading algorithm if the image is correct.

 

 

How can I split multipage TIFF file to many JPEG files?

Here is a simple code:

[VB.NET]
Dim images As ImageCollection = New ImageCollection()
images.Add("multipage.tif")
Dim i As Integer
For i = 0 To images.Count - 1
  images(i).Save("page-" + i.ToString() + ".jpg")
Next i

[C#]
ImageCollection images = new ImageCollection();
images.Add("multipage.tif");
for (int i = 0; i < images.Count; i++)
{
  images[i].Save("page-" + i.ToString() + ".jpg");
}

 

 

How can I change resolution of the image in TIFF file without it loading from file?

Resolution of the image is stored in metadata of TIFF page so you can change resolution without loading image from the file.

[VB.NET]
Dim tiff As TiffFile = New TiffFile("multipage.tif")
Dim page As TiffPage = tiff.Pages(necessaryPage)
Dim tags As TiffTagCollection = page.Tags
' The Add method adds/updates a tag of TIFF page.
tags.Add(TiffTagId.XResolution, New Rational(300, 1))
tags.Add(TiffTagId.YResolution, New Rational(300, 1))
tags.SaveChanges()
tiff.Dispose()

[C#]
TiffFile tiff = new TiffFile("multipage.tif"); 
TiffPage page = tiff.Pages[necessaryPage];
TiffTagCollection tags = page.Tags; 
// The Add method adds/updates a tag of TIFF page.
tags.Add(TiffTagId.XResolution, new Rational(300, 1)); 
tags.Add(TiffTagId.YResolution, new Rational(300, 1)); 
tags.SaveChanges();
tiff.Dispose();

 

 

I want to print all images from multipage TIFF file. What is the most optimal code for this?

Here is an example for C#:

[C#]
int currentPrintIndex;

private void allPagesPrintToolStripMenuItem_Click(object sender, EventArgs e)
{
  PrintAllPages = true;
  currentPrintIndex = 0;
  imagePrintDocument1.PrintScaleMode = PrintScaleMode.BestFit;
  imagePrintDocument1.Print();
}

private void imagePrintDocument1_PrintImage(object sender, Vintasoft.Imaging.Print.
                                                             PrintImageEventArgs e)
{
  e.HasMoreImages = false;
  if (PrintAllPages)
  {
    if (currentPrintIndex < imageViewer1.Images.Count - 1)
    {
      e.Image = imageViewer1.Images[currentPrintIndex].GetAsBitmap();
      currentPrintIndex++;
      if (currentPrintIndex >= imageViewer1.Images.Count)
      {
        e.HasMoreImages = false;
      }
      else
      {
        e.HasMoreImages = true;
      }
    }
  }
  else
    e.Image = imageViewer1.Images[imageViewer1.FocusedIndex].GetAsBitmap();
}

 

 

How can I save ImageCollection to a stream as multipage TIFF image?

Here is the first way:

[C#]
// using Vintasoft.Image and TiffEncoder
VintasoftImage image1 = new VintasoftImage("image1.png");
VintasoftImage image2 = new VintasoftImage("image2.jpg"); 
TiffEncoder tiffEncoder = new TiffEncoder(false);
MemoryStream mem = new MemoryStream();
image1.Save(mem, tiffEncoder);
image2.Save(mem, tiffEncoder);

and here is the second way:

[C#]
// using TiffFile
VintasoftImage image1 = new VintasoftImage("image1.png");
VintasoftImage image2 = new VintasoftImage("image2.jpg"); 
MemoryStream mem = new MemoryStream();
TiffFile tiff = new TiffFile(mem, false);
tiff.Pages.Add(image1);
tiff.Pages.Add(image2);
tiff.SaveChanges();