Below is the code to save the last frame in a multi-frame tiff in a single-page tiff file. (To use this code, you need to add a link to PresentationCore.dll).
Stream imageStreamSource = new FileStream(imageFilename, FileMode.Open, FileAccess.Read, FileShare.Read); MemoryStream memstream = new MemoryStream(); memstream.SetLength(imageStreamSource.Length); imageStreamSource.Read(memstream.GetBuffer(), 0, (int)imageStreamSource.Length); imageStreamSource.Close(); BitmapDecoder decoder = TiffBitmapDecoder.Create(memstream,BitmapCreateOptions.PreservePixelFormat,BitmapCacheOption.Default); Int32 frameCount = decoder.Frames.Count; BitmapFrame imageFrame = decoder.Frames[0]; MemoryStream output = new MemoryStream(); TiffBitmapEncoder encoder = new TiffBitmapEncoder(); encoder.Frames.Add(imageFrame); encoder.Save(output); FileStream outStream = File.OpenWrite("Image.Tiff"); output.WriteTo(outStream); outStream.Flush(); outStream.Close(); output.Flush(); output.Close();
source share