コード例 #1
0
        public static void Save(this IImage image, Stream stream, IFileFormat imageFormat, IImageEncoderOptions encoderOptions)
        {
            IImageEncoder encoder = ImageCodec.FromFileFormat(imageFormat);

            if (encoder is null)
            {
                throw new UnsupportedFileFormatException();
            }

            encoder.Encode(image, stream, encoderOptions);

            if (stream.CanSeek && encoderOptions.OptimizationMode != ImageOptimizationMode.None)
            {
                IImageOptimizer imageOptimizer = ImageOptimizer.FromImageFormat(imageFormat);

                if (!(imageOptimizer is null))
                {
                    stream.Seek(0, SeekOrigin.Begin);

                    imageOptimizer.Optimize(stream, encoderOptions.OptimizationMode);
                }
            }
        }