From 520d181b0dcbb11a5b8226c4d38e1438178599a7 Mon Sep 17 00:00:00 2001 From: Shane Woolcock Date: Fri, 14 Dec 2018 20:16:20 +1030 Subject: [PATCH] AoT seed image encoders as well as decoders --- src/ImageSharp/Advanced/AotCompilerTools.cs | 22 ++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/ImageSharp/Advanced/AotCompilerTools.cs b/src/ImageSharp/Advanced/AotCompilerTools.cs index c9c0e40146..db46ab4ad3 100644 --- a/src/ImageSharp/Advanced/AotCompilerTools.cs +++ b/src/ImageSharp/Advanced/AotCompilerTools.cs @@ -43,10 +43,10 @@ namespace SixLabors.ImageSharp.Advanced System.Runtime.CompilerServices.Unsafe.SizeOf(); - AotDecoder(new Formats.Png.PngDecoder()); - AotDecoder(new Formats.Bmp.BmpDecoder()); - AotDecoder(new Formats.Gif.GifDecoder()); - AotDecoder(new Formats.Jpeg.JpegDecoder()); + AotCodec(new Formats.Png.PngDecoder(), new Formats.Png.PngEncoder()); + AotCodec(new Formats.Bmp.BmpDecoder(), new Formats.Bmp.BmpEncoder()); + AotCodec(new Formats.Gif.GifDecoder(), new Formats.Gif.GifEncoder()); + AotCodec(new Formats.Jpeg.JpegDecoder(), new Formats.Jpeg.JpegEncoder()); // TODO: Do the discovery work to figure out what works and what doesn't. } @@ -122,11 +122,12 @@ namespace SixLabors.ImageSharp.Advanced } /// - /// This method pre-seeds the decoder for a given pixel format in the AoT compiler for iOS. + /// This method pre-seeds the decoder and encoder for a given pixel format in the AoT compiler for iOS. /// - /// The image decoder to seed.. + /// The image decoder to seed. + /// The image encoder to seed. /// The pixel format. - private static void AotDecoder(IImageDecoder decoder) + private static void AotCodec(IImageDecoder decoder, IImageEncoder encoder) where TPixel : struct, IPixel { try @@ -136,6 +137,13 @@ namespace SixLabors.ImageSharp.Advanced catch { } + try + { + encoder.Encode(null, null); + } + catch + { + } } } } \ No newline at end of file