Ok, devo elaborare delle immagini fatte da uno scanner abbastanza grosso. Questo scanner produce dei file con 50 documenti e 4 immagini per documento
1 fronte monocromatico
1 retro monocromatico
1 fronte a colori
1 retro a colori
e fa un unico file multitiff (come faccia ad inserire immagini con diversi formati pixel in uno solo per me rimane un mistrero)
l'unico modo per leggere questo file (visto che il normale oggetto bitmap di .net va in errore) è quello di utilizzare un controllo di terze parti ossia al momento ho solo trovato Inlite.ClearImageNet
e vado come segue:
la classe ImageIO è questa:
using Interop.ClearImage;
using System;
using System.Drawing;
using System.Drawing.Imaging;
namespace Inlite.ClearImageNet
{
public class ImageIO
{
public ImageIO();
public EComprBitonal compressionBitonal { get; set; }
public EComprColor compressionColor { get; set; }
public int jpegQuality { get; set; }
public double pdfMinImageHeight { get; set; }
public double pdfMinImageWidth { get; set; }
public EPdfRasterColorMode pdfRasterColorMode { get; set; }
public int pdfRasterDpiBitonal { get; set; }
public int pdfRasterDpiColor { get; set; }
public int pdfRasterDpiGrayscale { get; set; }
public EPdfReadMode pdfReadMode { get; set; }
public void Append(Bitmap bmp, string fileName);
public static void CopyToClipboard(Bitmap bmp);
public static Bitmap Create(int width, int height);
public static Bitmap Create(int width, int height, PixelFormat fmt);
public ImageInfo Info();
public ImageInfo Info(string fileName);
public ImageInfo Info(string fileName, int pageNumber);
public Bitmap Open(string fileName);
public Bitmap Open(string fileName, int pageNumber);
public void SaveAs(Bitmap bmp, string fileName);
}
}
e non possiede nessun metodo er svuotare la memoria.
L'errore di memoria esaurita va circa a 18.000 documenti (qundi 18.000 x 4 immagini)
Suggerimenti?
Vincenzo
Programmatore sbilenco