source/SkiaSharp.DotNet.Interactive/ColorRenderer.cs (28 lines of code) (raw):
using Microsoft.AspNetCore.Html;
using static Microsoft.DotNet.Interactive.Formatting.PocketViewTags;
namespace SkiaSharp.DotNet.Interactive
{
public static class ColorRenderer
{
public static IHtmlContent Render(this SKColor color)
{
var colorString = color.Alpha == 255
? $"rgb({color.Red},{color.Green},{color.Blue})"
: $"rgba({color.Red},{color.Green},{color.Blue},{color.Alpha / 255.0:0.0##})";
return GetHtml(colorString);
}
public static IHtmlContent Render(this SKColorF color) =>
((SKColor)color).Render();
private static IHtmlContent GetHtml(string colorString) =>
div(
span[style:
$"width: 2em; " +
$"background: {colorString}; " +
$"display: inline-block; " +
$"border: 1px solid black; "](
new HtmlString(" ")),
span(
new HtmlString(" "),
colorString));
}
}