| File: ImageExtensions.cs | Web Access |
| Project: src\src\Graphics\src\Graphics\Graphics.csproj (Microsoft.Maui.Graphics) |
using System; using System.IO; using System.Threading.Tasks; namespace Microsoft.Maui.Graphics { public static class ImageExtensions { public static byte[] AsBytes(this IImage target, ImageFormat format = ImageFormat.Png, float quality = 1) { if (target == null) return null; using (var stream = new MemoryStream()) { target.Save(stream, format, quality); return stream.ToArray(); } } public static Stream AsStream(this IImage target, ImageFormat format = ImageFormat.Png, float quality = 1) { if (target == null) return null; var stream = new MemoryStream(); target.Save(stream, format, quality); stream.Position = 0; return stream; } public static async Task<byte[]> AsBytesAsync(this IImage target, ImageFormat format = ImageFormat.Png, float quality = 1) { if (target == null) return null; using (var stream = new MemoryStream()) { await target.SaveAsync(stream, format, quality); return stream.ToArray(); } } public static string AsBase64(this IImage target, ImageFormat format = ImageFormat.Png, float quality = 1) { if (target == null) return null; var bytes = target.AsBytes(format, quality); return Convert.ToBase64String(bytes); } public static Paint AsPaint(this IImage target) { if (target == null) return null; return new ImagePaint { Image = target }; } public static void SetFillImage(this ICanvas canvas, IImage image) { if (canvas != null) { var paint = image.AsPaint(); if (paint != null) { canvas.SetFillPaint(paint, RectF.Zero); } else { canvas.FillColor = Colors.White; } } } } }