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;
}
Io non ho questa sensazione, forse sono fortunato con una macchina veloce, però presumo sia un problema possibile...