Separation of multipage tiff with compression "CCITT T.6" very slow

Posted by Alex on Stack Overflow See other posts from Stack Overflow or by Alex
Published on 2010-05-08T21:01:06Z Indexed on 2010/05/09 0:08 UTC
Read the original article Hit count: 489

Filed under:
|
|

I need to separate multiframe tiff files, and use the following method:

public static Image[] GetFrames(Image sourceImage)
{
    Guid objGuid = sourceImage.FrameDimensionsList[0];
    FrameDimension objDimension = new FrameDimension(objGuid);
    int frameCount = sourceImage.GetFrameCount(objDimension);
    Image[] images = new Image[frameCount];
    for (int i = 0; i < frameCount; i++)
    {
        MemoryStream ms = new MemoryStream();
        sourceImage.SelectActiveFrame(objDimension, i);
        sourceImage.Save(ms, ImageFormat.Tiff);
        images[i] = Image.FromStream(ms);
    }
    return images;
}

It works fine, but if the source image was encoded using the CCITT T.6 compression, separating a 20-frame-file takes up to 15 seconds on my 2,5ghz CPU.(edit: One core is at 100% during the process)

When saving the images afterward to a single file using standard compression (LZW), the separation time of the LZW-file is under 1 second.

Saving with CCITT compression also takes very long.

Is there a way to speed up the process?

© Stack Overflow or respective owner

Related posts about c#

Related posts about tiff