PlayedIndicatorDrawer.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using MediaBrowser.Model.Drawing;
  2. using SkiaSharp;
  3. namespace Emby.Drawing
  4. {
  5. public static class PlayedIndicatorDrawer
  6. {
  7. private const int OffsetFromTopRightCorner = 38;
  8. public static void DrawPlayedIndicator(SKCanvas canvas, ImageSize imageSize)
  9. {
  10. var x = imageSize.Width - OffsetFromTopRightCorner;
  11. using (var paint = new SKPaint())
  12. {
  13. paint.Color = SKColor.Parse("#CC52B54B");
  14. paint.Style = SKPaintStyle.Fill;
  15. canvas.DrawCircle((float)x, OffsetFromTopRightCorner, 20, paint);
  16. }
  17. using (var paint = new SKPaint())
  18. {
  19. paint.Color = new SKColor(255, 255, 255, 255);
  20. paint.Style = SKPaintStyle.Fill;
  21. paint.TextSize = 30;
  22. paint.IsAntialias = true;
  23. var text = "✔️";
  24. var emojiChar = StringUtilities.GetUnicodeCharacterCode(text, SKTextEncoding.Utf32);
  25. // or:
  26. //var emojiChar = 0x1F680;
  27. // ask the font manager for a font with that character
  28. var fontManager = SKFontManager.Default;
  29. var emojiTypeface = fontManager.MatchCharacter(emojiChar);
  30. paint.Typeface = emojiTypeface;
  31. canvas.DrawText(text, (float)x - 20, OffsetFromTopRightCorner + 12, paint);
  32. }
  33. }
  34. }
  35. }