Recomendações


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

Questões gerais:

 

Redistribuição:

 

Vendas:

 

Visualização da imagem:

 

TIFF:

 

 

Para que propósito posso usar o VintaSoftImaging.NET SDK?

A biblioteca é um conjunto poderoso e fácil de ferramentas para o desenvolvimento .NET que permite carregar, ver, processar, imprimir, salvar imagens, trabalhar diretamente com arquivos multi-páginas TIFF. VintaSoftImaging.NET pode ser usada como um SDK independente ou pode ser extendida com os plug-ins VintaSoftAnnotation.NET, VintaSoftPDF.NET, VintaSoftJBIG2.NET e VintaSoftJPEG2000.NET em qualquer combinação.

 

 

De que partes consiste a biblioteca?

A biblioteca contém:

  • 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)
  • Documentação em formato CHM (arquivo Vintasoft.Imaging.chm)
  • Exemplos para MS Visual Basic.NET, MS Visual C#, ASP.NET (arquivos estão no diretório Examples)
  • Aplicações Demo para sistemas 32-bit (arquivos no diretório Bin\v2.0)
  • Aplicações Demo para sistemas 64-bit (arquivos no diretório Bin\v2.0\64-bit)

 

 

Qual a diferença entre as versões assembly?

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

    Características da versão:

  • Esta versão é compilado sob .NET 2.0
  • Esta versão pode ser usada nos modos x86 e WOW64
  • Esta versão não pode ser usada no modo x64
  • As funções GDI32 são usadas para visualização de imagens no image viewer
  • Alta velocidade da visualização no image viewer

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

    Version features:

  • Esta versão é compilado sob .NET 2.0
  • Esta versão pode ser usada nos modos x86, WOW64 e x64
  • As funções GDI32 NÃO são usadas para visualizar as imagens no image viewer
  • A velocidade de visualização no image viewer é menos do que a velocidade da versão que usa GDI32

 

 

Em que linguagem de programação posso usar o componente VintaSoft.Imaging?

Com uma licença desenvolvedor ou licença para várias estações de trabalho você pode usar o componente em:

  • Microsoft Visual Studio .NET : Visual Basic, Visual C#, Visual C++, Visual J#
  • Borland Delphi 8.0, Borland C# Builder, Borland C++ BuilderX
  • qualquer outra linguagem que seja compatível com o Framework .NET.

Com a licença servidor você pode usar o componente em:

  • Aplicações intranet / internet no lado servidor (ASP.NET ou PHP)

 

 

Que restrições tem os usuários não registrados?

A versão não registrada tem as seguintes restrições:

  • tela de propaganda (nag screen)
  • o texto “Evaluation version” será adicionado em todas as imagens salvas ou impressas
  • a paleta 8-bpp ou imagens cinzas serão salvas como imagens coloridas 24-bpp
  • velocidade de trabalho limitada.

Todas as restrições são removidas na versão registrada.

 

 

Estou com problemas. O que devo fazer?

As respostas para a maior parte as questões pode se encontrada na documentação ou neste FAQ.
Escreva para o nosso suporte para obter mais ajuda.

 

 

Que arquivos eu preciso incluir na instalação do meu programa?

Você precisa incluir apenas um arquivo: Vintasoft.Imaging.dll. Este arquivo precisa ser colocado no mesmo diretório que o executável. Verifique se a versão que você vai distribuir seja a mesma versão que você usou para compilar o programa.

 

 

Posso distribuir o VintaSoft.Imaging.dll com meu programa sem pagar royalties?

Sim, este componente é livre de royalties. Você paga apenas pelo registro uma única vez. Apenas o Vintasoft.Imaging.dll pode ser distribuído junto com sua aplicação. A licença Individual de Desenvolvedor (Single Developer) tem limitação de distribuição. Por favor, leia o contrato de licença para mais informações.

 

 

O que fazer quando minha licença individual de programador para a redistribuição da aplicação estiver prestes a exceder 100 cópias em um ano?

Se você possuir a licença individual para programador você precisa entrar em contato com o pessoal de vendas e explicar que você está prestes a exceder a quantidade de 100 cópias durante o ano. Será oferecido a oportunidade de atualizar sua licença individual de programador para uma licença sítio com desconto de 30% ou para comprar uma licença individual para programador adicional.

 

 

Qual a diferença entre licença individual para programador e licença sítio?

  • Licença individual para programador precisa ser usado no desenvolvimento de software por apenas um programador, onde o nome deste programador será indicado nos dados da licença.
  • A licença sítio precisa ser usado no desenvolvimento de software por qualquer programador que trabalhe em uma empresa que tenha seus dados indicados na licença.
  • A licença individual de programador pode ser usada para o desenvolvimento de software em um PC localizado em qualquer endereço físico.
  • A licença sítio pode ser usada no desenvolvimento de software em qualquer PC localizado em um único endereço físico (apenas em um escritório).
  • Licença individual para programador permite distribuiçăo de livre de royalties de uma aplicaçăo e o SDK redistribuível até o limite de 100 cópias em um ano.
  • A licença sítio permite ilimitada distribuição livre de royalties de uma aplicação e o SDK redistribuível.

 

 

Existe uma diferença em fazer o deploy de minha aplicação em um desktop PC ou em um Server?

Sim, existe. Por favor leia a sessão "Deploying" na documentação do produto para entender a diferença.

Termos: Desktop PC – Windows XP, Vista, 7 SO instalado. Server – Windows Server 2000, 2003, 2008 SO instalado.

 

 

Posso adicionar dois thumbnail viewer para um form de minha aplicação e mover as imagens entre eles?

Sim, você pode fazer isso. Por favor, veja o exemplo 3 aqui.

 

 

O image viewer suporta opção escala em cinza (antialiasing) quando estiver mostrando imagens em preto-e-branco?

Sim, o image viewer suporta a opção escala em cinza desde a versão 2.2. Esta opção pode ser ativada usando a propriedade ScaleToGray do objeto ImageViewer.

 

 

Quero querer armazenar imagens em separado imagem coleção. Quero querer para visualizar apenas necessário imagem. Posso fazer isso?

Sim, aqui está um exemplo:

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

 

 

Eu quero carregar o arquivo de imagem no viewer e apagar após carregar. Posso fazer isso?

O viewer precisa ter acesso aos dados da imagem enquanto ele trabalha com a imagem.

Você precisa seguir os seguintes passos se você quer carregar o arquivo de imagem no viewer e apagar o arquivo após o carregamento:

  • Abra o arquivo de imagem
  • Leia o arquivo bytes dentro de byte buffer (por exemplo com File.ReadAllBytes)
  • Crie o fluxo de memória de byte buffer
  • Feche e apague o arquivo de imagem

 

 

Eu não consigo abrir o arquivo TIFF usando sua biblioteca. O que devo fazer?

Por favor, envie-nos sua imagem "ruim". Nós vamos analizar a imagem e atualizar nosso algoritmo de leitura se a imagem está correta.

 

 

Como posso dividir um arquivo multi-páginas TIFF para vários arquivos JPEG?

Aqui um exemplo simples:

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

 

 

Como posso mudar a resolução da imagem no arquivo TIFF sem carregar a imagem do arquivo?

A resolução da imagem é armazenado em no metadata da página TIFF, assim você pode mudar a resolução sem carregar a imagem do arquivo.

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

 

 

Eu quero imprimir todas as imagens de arquivo TIFF multipage. Qual é o melhor código para isso?

Aqui está um exemplo para 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();
}

 

 

Como posso salvar ImageCollection para um fluxo (stream) como uma imagem TIFF multi-página?

Aqui é a primeira maneira:

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

e aqui está a segunda maneira:

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