aboutsummaryrefslogtreecommitdiff
path: root/Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs')
-rw-r--r--Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs b/Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs
new file mode 100644
index 000000000..90f9d5609
--- /dev/null
+++ b/Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs
@@ -0,0 +1,40 @@
+using ImageMagickSharp;
+using System;
+
+namespace Emby.Drawing.ImageMagick
+{
+ public class PercentPlayedDrawer
+ {
+ private const int IndicatorHeight = 8;
+
+ public void Process(MagickWand wand, double percent)
+ {
+ var currentImage = wand.CurrentImage;
+ var height = currentImage.Height;
+
+ using (var draw = new DrawingWand())
+ {
+ using (PixelWand pixel = new PixelWand())
+ {
+ var endX = currentImage.Width - 1;
+ var endY = height - 1;
+
+ pixel.Color = "black";
+ pixel.Opacity = 0.4;
+ draw.FillColor = pixel;
+ draw.DrawRectangle(0, endY - IndicatorHeight, endX, endY);
+
+ double foregroundWidth = endX;
+ foregroundWidth *= percent;
+ foregroundWidth /= 100;
+
+ pixel.Color = "#52B54B";
+ pixel.Opacity = 0;
+ draw.FillColor = pixel;
+ draw.DrawRectangle(0, endY - IndicatorHeight, Convert.ToInt32(Math.Round(foregroundWidth)), endY);
+ wand.CurrentImage.DrawImage(draw);
+ }
+ }
+ }
+ }
+}