aboutsummaryrefslogtreecommitdiff
path: root/Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs')
-rw-r--r--Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs75
1 files changed, 75 insertions, 0 deletions
diff --git a/Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs b/Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs
new file mode 100644
index 000000000..c53140099
--- /dev/null
+++ b/Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs
@@ -0,0 +1,75 @@
+using ImageMagickSharp;
+using MediaBrowser.Common.Configuration;
+using MediaBrowser.Model.Drawing;
+using System.Globalization;
+using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.IO;
+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);
+ }
+
+ }
+ }
+ }
+}