Multiple thumbnails

Branched Pipeline Resize Thumbnail

Creates two different-sized images from a single read of the source image. In most cases, reading the image is the bottleneck, so this approach significantly improves performance.

Сode Snippet

// reader --->  resizeBig    --->  writerBig
//        \-->  resizeSmall  --->  writerSmall
using (var reader = ImageReader.Create("Venice.jpg"))
using (var resizeBig = new Resize(640, 0, ResizeInterpolationMode.High))
using (var writerBig = ImageWriter.Create("Venice_thumbnail_big.jpg"))
using (var resizeSmall = new Resize(128, 0, ResizeInterpolationMode.High))
using (var writerSmall = ImageWriter.Create("Venice_thumbnail_small.jpg"))
{
    reader.Receivers.Add(resizeBig);
    resizeBig.Receivers.Add(writerBig);

    reader.Receivers.Add(resizeSmall);
    resizeSmall.Receivers.Add(writerSmall);

    Pipeline.Run(reader);
}

Input

Venice.jpg

Output

Venice_thumbnail_big.jpg

Venice_thumbnail_small.jpg

For AI-assisted development: Download Graphics Mill Code Samples XML Catalog