Отзывы


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

Общие вопросы:

 

Распространение:

 

Продажи:

 

Визуализация изображений:

 

TIFF:

 

 

Для каких целей я могу использовать библиотеку VintaSoftImaging.NET?

Библиотека поддерживает такие функции как загрузка, просмотр, изменение, печать и сохранение изображений, работа с многостраничными TIFF файлами и др. VintaSoftImaging.NET может использоваться как отдельный компонент или его функции могут быть расширены встраиваемыми модулями VintaSoftAnnotation.NET, VintaSoftPDF.NET, VintaSoftJBIG2.NET и VintaSoftJPEG2000.NET в любой их комбинации.

 

 

Что включает в себя библиотека?

Библиотека включает в себя:

  • Сборка Vintasoft.Imaging использующая GDI32 (Bin\v2.0\Vintasoft.Imaging.dll)
  • Сборка Vintasoft.Imaging не использующая GDI32 (Bin\v2.0\64-bit\Vintasoft.Imaging.dll)
  • Документацию в формате MS Help Workshop (файл VintaSoft.Imaging.chm)
  • Примеры для MS VB.NET, MS C#, ASP.NET (каталог Examples)
  • Демо приложение для 32-битных систем (файлы в директории Bin\v2.0)
  • Демо приложение для 64-битных систем (файлы в директории Bin\v2.0\64-bit)

 

 

В чем разница между двумя версиями сборки?

1. Bin\v2.0\Vintasoft.Imaging.dll

    Возможности версии:

  • Версия скомпилирована под .NET 2.0
  • Версия может быть использована в режимах x86 и WOW64
  • Версия не может быть использована в режиме x64
  • Функции GDI32 используются для просмотра изображений
  • Самая высокая скорость предпросмотра изображений

2. Bin\v2.0\64-bit\Vintasoft.Imaging.dll

    Возможности версии:

  • Версия скомпилирована под .NET 2.0
  • Версия может быть использована в режимах x86, WOW64 и x64
  • Функции GDI32 не используются для просмотра изображений
  • Скорость предпросмотра изображений ниже чем в версии использующей GDI32

 

 

В каких языках программирования могу я использовать библиотеку?

Лицензия разработчика и лицензия для компании позволяют использовать компонент в:

  • Microsoft Visual Studio .NET : Visual Basic, Visual C#, Visual C++, Visual J#
  • Borland Delphi 8.0, Borland C# Builder, Borland C++ BuilderX
  • любых других языках программирования совместимых с .NET Framework.

Лицензия для сервера позволяет использовать компонент в:

  • В интернет / интранет приложениях на стороне сервера (ASP.NET или PHP)

 

 

Какие ограничения имеет незарегистрированная версия библиотеки?

Какие ограничения имеет незарегистрированная версия?

  • возникает экран "О программе" при первом использовании библиотеки
  • текст "Evaluation version" будет добавлен ко всем сохраненным и распечатанным изображениям
  • 8-bpp или серые изображения будут сохранены как 24-bpp цветное изображение
  • ограничения скорости работы.

Все эти ограничения отсутствуют в зарегистрированной версии.

 

 

Я не нашел ответа на свой вопрос. Что мне делать?

Информация по большинству вопросов может быть найдена в документации или в этом FAQ. Если Вы не нашли ответа на свой вопрос, тогда напишите письмо в службу технической поддержки.

 

 

Какие файлы мне нужно включать в дистрибутив моей программы?

Вам нужно включить в дистрибутив Вашей программы только один файл: VintaSoft.Imaging.dll. При установке Вашей программы этот файл должен быть помещен в каталог на который была ссылка при компиляции программы.

 

 

Могу ли я распространять VintaSoft.Imaging компонент вместе с моим приложением без какой либо дополнительной оплаты?

Да, Вы можете распространять компонент вместе со своим приложением. Вы платите только за первоначальную регистрацию. Лицензия для компании не имеет ограничений в распространении. Лицензия для разработчика имеет некоторые ограничения в распространении. Распространение с Лицензией для сервера требует оплаты для каждого сервера. Пожалуйста, читайте лицензионное соглашение.

 

 

Что делать если распространение моей программы, созданной на основе Лицензии для разработчика, может превысить 100 копий в текущем году?

Если Вы обладаете Лицензией для разработчика и распространение Вашей программы может превысить 100 копий в текущем году, Вам необходимо обратиться в Отдел продаж "ВинтаСофт", где Вам будет предоставлена возможность апгрейда до Лицензии для организации со скидкой 30% или предложено купить дополнительную Лицензию для разработчика.

 

 

Каковы различия между Лицензией для разработчика и Лицензией для организации?

  • Лицензия для разработчика должна быть использована в разработке программ только одним программистом, чьё имя указано в данных лицензии.
  • Лицензия для организации должна быть использована в разработке программ любым программистом работающим на компанию, чьё название указано в данных лицензии.
  • Лицензия для разработчика может быть использована в разработке программ на любом ПК находящемся по любому физическому адресу.
  • Лицензия для организации должна быть использована в разработке программ на любом ПК находящемся по одному физическому адресу (только в одном офисе).
  • Лицензия для разработчика разрешает распространение программ, включающих в себя предназначенные для распространения файлы SDK, не более 100 копий в год.
  • Лицензия для организации разрешает неограниченное распространение программ, включающих в себя предназначенные для распространения файлы SDK.

 

 

Есть ли разница в использовании моего приложения на настольном ПК или на сервере?

Да, есть. Пожалуйста, прочитайте раздел "Deploying" в документации этого продукта, чтобы понять в чем разница.

Термины: Desktop PC - установлена ОС Windows XP, Vista, 7. Server - установлена ОС Windows Server 2000, 2003, 2008.

 

 

Могу ли я добавить два средства просмотра изображений на форму моего приложения и перемещать изображения между ними?

Да, пожалуйста используйте Пример 3 здесь.

 

 

Поддерживает ли просмотрщик изображений функцию сглаживания (преобразования в серое) при отображении черно-белых изображений?

Да, просмотрщик изображений поддерживает функцию преобразования в серое (сглаживание) с версии 2.2. Эта опция м.б. применена при использовании ScaleToGray свойства объекта ImageViewer.

 

 

Я хочу сохранить несколько изображений в отдельную коллекцию и просмотреть только необходимое из них. Могу я это сделать?

Да, вот пример:

[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))
...

 

 

Я хочу загрузить изображение в просмотрщик и удалить его после загрузки. Как это сделать?

Просмотрщик должен иметь доступ к данным изображения пока работает с ним.

Чтобы загрузить файл изображения в просмотрщик и удалить его после загрузки, нужно сделать следующее:

  • Откройте файл с изображением
  • Считайте байты файла в буфер (например используя File.ReadAllBytes)
  • Создайте поток из буфера
  • Закройте и удалите файл изображения

 

 

Я не могу открыть TIFF файл. Что мне делать?

Пожалуста пришлите нам "плохой" файл. Мы его проанализируем и обновим алгоритм чтения файлов, если изображение является корректным.

 

 

Как разделить многостраничный TIFF файл на несколько JPEG файлов?

Вот пример:

[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");
}

 

 

Как я могу изменить разрешение TIFF изображения без загрузки изображения из файла?

Разрешение изображения хранится в метаданных страницы TIFF, поэтому Вы можете изменить разрешение без загрузки зображения из файла.

[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();

 

 

Я хочу распечатать все изображения из многостраничного TIFF файла. Подскажите самый оптимальный код для этого?

Вот пример для 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();
}

 

 

Как мне сохранить ImageCollection в потоке как многостраничный TIFF?

Вот первый способ:

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

а вот второй способ:

[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();