| File: SkiaSharpRasterTools.cs | Web Access |
| Project: src\src\SingleProject\Resizetizer\src\Resizetizer.csproj (Microsoft.Maui.Resizetizer) |
using System; using System.Diagnostics; using SkiaSharp; namespace Microsoft.Maui.Resizetizer { internal class SkiaSharpRasterTools : SkiaSharpTools, IDisposable { SKImage img; public SkiaSharpRasterTools(ResizeImageInfo info, ILogger logger) : this(info.Filename, info.BaseSize, info.Color, info.TintColor, logger) { } public SkiaSharpRasterTools(string filename, SKSize? baseSize, SKColor? backgroundColor, SKColor? tintColor, ILogger logger) : base(filename, baseSize, backgroundColor, tintColor, logger) { var sw = new Stopwatch(); sw.Start(); img = SKImage.FromEncodedData(filename); sw.Stop(); Logger?.Log($"Open RASTER took {sw.ElapsedMilliseconds}ms ({filename})"); } public override SKSize GetOriginalSize() => img.Info.Size; public override void DrawUnscaled(SKCanvas canvas, float scale) => canvas.DrawImage(img, 0, 0, SamplingOptions, Paint); public void Dispose() { img?.Dispose(); img = null; } } }