-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSkiaUtils.cs
28 lines (26 loc) · 987 Bytes
/
SkiaUtils.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Copyright (c) Microsoft. All rights reserved.
using SkiaSharp;
using System.Net.Http;
// ReSharper disable InconsistentNaming
public static class SkiaUtils
{
// Function used to display images in the notebook
public static async Task ShowImage(string url, int width, int height)
{
SKImageInfo info = new SKImageInfo(width, height);
SKSurface surface = SKSurface.Create(info);
SKCanvas canvas = surface.Canvas;
canvas.Clear(SKColors.White);
var httpClient = new HttpClient();
using (Stream stream = await httpClient.GetStreamAsync(url))
using (MemoryStream memStream = new MemoryStream())
{
await stream.CopyToAsync(memStream);
memStream.Seek(0, SeekOrigin.Begin);
SKBitmap webBitmap = SKBitmap.Decode(memStream);
canvas.DrawBitmap(webBitmap, 0, 0, null);
surface.Draw(canvas, 0, 0, null);
};
surface.Snapshot().Display();
}
}