private Task EncodeImageAsync <TPixel>(ImageFrame <TPixel> image, TiffImageFileDirectoryWriter ifdWriter, CancellationToken cancellationToken) where TPixel : unmanaged, IPixel <TPixel> { ITiffEncoderOptions options = _options; var builder = new TiffImageEncoderBuilder(); builder.MemoryPool = _memoryPool; builder.PhotometricInterpretation = options.PhotometricInterpretation; builder.Compression = options.Compression; builder.IsTiled = options.IsTiled; builder.RowsPerStrip = options.RowsPerStrip; builder.TileSize = new TiffSize(options.TileSize.Width, options.TileSize.Height); builder.Predictor = options.Predictor; builder.EnableTransparencyForRgb = options.EnableTransparencyForRgb; builder.Orientation = options.Orientation; builder.DeflateCompressionLevel = options.DeflateCompressionLevel; builder.JpegOptions = new TiffJpegEncodingOptions { Quality = options.JpegQuality, OptimizeCoding = options.JpegOptimizeCoding }; builder.HorizontalChromaSubSampling = options.HorizontalChromaSubSampling; builder.VerticalChromaSubSampling = options.VerticalChromaSubSampling; TiffImageEncoder <TPixel> encoder = builder.BuildForImageSharp <TPixel>(); return(encoder.EncodeAsync(ifdWriter, image, cancellationToken)); }
public TiffEncoderCore(Configuration configuration, ITiffEncoderOptions options) { _configuration = configuration; _options = options; _memoryPool = new ImageSharpMemoryPool(configuration.MemoryAllocator); }