Create Multiframe TIFF Image File

Create Multiframe TIFF Image File
This example takes a number of input images (PNG files, in this case), and puts them all into a single multiframe TIFF image file. Note that any image file format supported by the Image.FromFile method would work (GIF, BMP, JPEG, PNG, etc).

inputFiles = ['00.png', '01.png', '02.png', '03.png', '04.png'] outputFile = 'output.tiff'

import clr clr.AddReference('System.Drawing') from System.Drawing import Image from System.Drawing.Imaging import (ImageFormat, Encoder, EncoderValue,    EncoderParameter, EncoderParameters, ImageCodecInfo)

codecInfo = [ic for ic in ImageCodecInfo.GetImageEncoders if ic.FormatDescription == 'TIFF'][0]

encoderParams = EncoderParameters(2)

encoderParams.Param[0] = EncoderParameter(     # multiframe TIFF    Encoder.SaveFlag, EncoderValue.MultiFrame) encoderParams.Param[1] = EncoderParameter(     # use LZW compression    Encoder.Compression, EncoderValue.CompressionLZW)

tiff = Image.FromFile(inputFiles[0]) tiff.Save(outputFile, codecInfo, encoderParams)

encoderParams.Param[0] = EncoderParameter(Encoder.SaveFlag,                                         EncoderValue.FrameDimensionPage) for inputFile in inputFiles[1:]: image = Image.FromFile(inputFile) tiff.SaveAdd(image, encoderParams)
 * 1) Use the FrameDimensionPage flag on the middle pages:

encoderParams.Param[0] = EncoderParameter(Encoder.SaveFlag,                                         EncoderValue.Flush) tiff.SaveAdd(encoderParams)
 * 1) Use the Flush flag after the last page:

Back to Contents.