12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using ImageMagickSharp;
- using MediaBrowser.Common.Configuration;
- using MediaBrowser.Model.Drawing;
- using System.Globalization;
- using MediaBrowser.Model.IO;
- namespace Emby.Drawing.ImageMagick
- {
- public class UnplayedCountIndicator
- {
- private const int OffsetFromTopRightCorner = 38;
- private readonly IApplicationPaths _appPaths;
- private readonly IFileSystem _fileSystem;
- public UnplayedCountIndicator(IApplicationPaths appPaths, IFileSystem fileSystem)
- {
- _appPaths = appPaths;
- _fileSystem = fileSystem;
- }
- public void DrawUnplayedCountIndicator(MagickWand wand, ImageSize imageSize, int count)
- {
- var x = imageSize.Width - OffsetFromTopRightCorner;
- var text = count.ToString(CultureInfo.InvariantCulture);
- using (var draw = new DrawingWand())
- {
- using (PixelWand pixel = new PixelWand())
- {
- pixel.Color = "#52B54B";
- pixel.Opacity = 0.2;
- draw.FillColor = pixel;
- draw.DrawCircle(x, OffsetFromTopRightCorner, x - 20, OffsetFromTopRightCorner - 20);
- pixel.Opacity = 0;
- pixel.Color = "white";
- draw.FillColor = pixel;
- draw.Font = PlayedIndicatorDrawer.ExtractFont("robotoregular.ttf", _appPaths, _fileSystem);
- draw.FontStyle = FontStyleType.NormalStyle;
- draw.TextAlignment = TextAlignType.CenterAlign;
- draw.FontWeight = FontWeightType.RegularStyle;
- draw.TextAntialias = true;
- var fontSize = 30;
- var y = OffsetFromTopRightCorner + 11;
- if (text.Length == 1)
- {
- x += 1;
- }
- else if (text.Length == 2)
- {
- x += 1;
- }
- else if (text.Length >= 3)
- {
- //x += 1;
- y -= 2;
- fontSize = 24;
- }
- draw.FontSize = fontSize;
- draw.DrawAnnotation(x, y, text);
- draw.FillColor = pixel;
- wand.CurrentImage.DrawImage(draw);
- }
- }
- }
- }
- }
|