Freeteo


Pensieri e C#dice di Matteo Raumer

Generare TIFF da un set di immagini

Tempo fa avevo postato il codice per creare un PDF da un TIFF, iterando per le varie immagini e stampandone una per pagina.
Posto per completezza anche qualcos'altro di analogo che è stato richiesto sul forum, ossia la creazione una TIFF partendo da un set di immagini.
Il codice è molto simile:
 
private void GeneraTIFF(IList<string> files, string destinazione)
{
    Image tiff = Bitmap.FromFile(files[0]);
   
//--- i vari encoder necessari
   
Encoder enc = Encoder.SaveFlag;
    ImageCodecInfo info = GetEncoderInfo("image/tiff");
    EncoderParameters ep = new EncoderParameters(1);

    //--- prepari il file di destinazione
    ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
    tiff.Save(destinazione, info, ep);
    //--- aggiungi il resto delle immagini
    ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);

    for (int i = 1; i < files.Count; i++)
    {
       
using (Image img = Image.FromFile(files[i])) {
              tiff.SaveAdd(img, ep);
        }
    }

    //--- chiudi il file.
    ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
    tiff.SaveAdd(ep);

    tiff.Dispose();
}


private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
   
int j;
   
ImageCodecInfo[] encoders;
    encoders =
ImageCodecInfo.GetImageEncoders();

   
for (j = 0; j < encoders.Length; ++j)
    {
       
if (encoders[j].MimeType == mimeType)
       
return encoders[j];
   
}
   
return null;
}
 
Anche se devo essere onesto, non ho ancora capito se c'è qualcosa da poter migliorare e soprattutto dove, ma nel forum dicono che per un numero elevato di immagini accodate è lento: http://www.dotnethell.it/forum/messages.aspx?ThreadID=31741
Io non ho questa sensazione, forse sono fortunato con una macchina veloce, però presumo sia un problema possibile...
Categoria: Tips
martedì, 28 lug 2009 Ore. 17.14

Messaggi collegati






  • Views Home Page: 248.544
  • Views Posts: 427.050
  • Views Gallerie: 597.108
  • n° Posts: 163
  • n° Commenti: 148
Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003