aboutsummaryrefslogtreecommitdiff
path: root/Emby.Drawing/ImageMagick
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-09-13 17:33:49 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-09-13 17:33:49 -0400
commit6cb184fcf8ea7803626e0f3e0a3c7f118e4328e9 (patch)
treead536b9317ce6bff56df0050c7299b754f4dc292 /Emby.Drawing/ImageMagick
parent21a2160fca35720e3d887b328a0b45a703baaad0 (diff)
parent14de062681026157c6917779a51af6fb7046cec2 (diff)
Merge branch 'dev' of https://github.com/MediaBrowser/MediaBrowser into dev
Diffstat (limited to 'Emby.Drawing/ImageMagick')
-rw-r--r--Emby.Drawing/ImageMagick/ImageMagickEncoder.cs11
-rw-r--r--Emby.Drawing/ImageMagick/PlayedIndicatorDrawer.cs27
-rw-r--r--Emby.Drawing/ImageMagick/StripCollageBuilder.cs7
-rw-r--r--Emby.Drawing/ImageMagick/UnplayedCountIndicator.cs2
4 files changed, 28 insertions, 19 deletions
diff --git a/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs b/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs
index 6ff40d1cf2..1fa93d5fbf 100644
--- a/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs
+++ b/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs
@@ -8,6 +8,7 @@ using MediaBrowser.Model.Logging;
using System;
using System.IO;
using System.Linq;
+using MediaBrowser.Common.IO;
namespace Emby.Drawing.ImageMagick
{
@@ -15,13 +16,15 @@ namespace Emby.Drawing.ImageMagick
{
private readonly ILogger _logger;
private readonly IApplicationPaths _appPaths;
- private readonly IHttpClient _httpClient;
+ private readonly IHttpClient _httpClient;
+ private readonly IFileSystem _fileSystem;
- public ImageMagickEncoder(ILogger logger, IApplicationPaths appPaths, IHttpClient httpClient)
+ public ImageMagickEncoder(ILogger logger, IApplicationPaths appPaths, IHttpClient httpClient, IFileSystem fileSystem)
{
_logger = logger;
_appPaths = appPaths;
_httpClient = httpClient;
+ _fileSystem = fileSystem;
LogImageMagickVersion();
}
@@ -77,7 +80,7 @@ namespace Emby.Drawing.ImageMagick
try
{
var tmpPath = Path.Combine(_appPaths.TempDirectory, Guid.NewGuid() + ".webp");
- Directory.CreateDirectory(Path.GetDirectoryName(tmpPath));
+ _fileSystem.CreateDirectory(Path.GetDirectoryName(tmpPath));
using (var wand = new MagickWand(1, 1, new PixelWand("none", 1)))
{
@@ -181,7 +184,7 @@ namespace Emby.Drawing.ImageMagick
{
var currentImageSize = new ImageSize(imageWidth, imageHeight);
- var task = new PlayedIndicatorDrawer(_appPaths, _httpClient).DrawPlayedIndicator(wand, currentImageSize);
+ var task = new PlayedIndicatorDrawer(_appPaths, _httpClient, _fileSystem).DrawPlayedIndicator(wand, currentImageSize);
Task.WaitAll(task);
}
else if (options.UnplayedCount.HasValue)
diff --git a/Emby.Drawing/ImageMagick/PlayedIndicatorDrawer.cs b/Emby.Drawing/ImageMagick/PlayedIndicatorDrawer.cs
index 1c751de1fd..b5912788fa 100644
--- a/Emby.Drawing/ImageMagick/PlayedIndicatorDrawer.cs
+++ b/Emby.Drawing/ImageMagick/PlayedIndicatorDrawer.cs
@@ -5,6 +5,7 @@ using MediaBrowser.Model.Drawing;
using System;
using System.IO;
using System.Threading.Tasks;
+using MediaBrowser.Common.IO;
namespace Emby.Drawing.ImageMagick
{
@@ -14,12 +15,14 @@ namespace Emby.Drawing.ImageMagick
private const int OffsetFromTopRightCorner = 38;
private readonly IApplicationPaths _appPaths;
- private readonly IHttpClient _iHttpClient;
+ private readonly IHttpClient _iHttpClient;
+ private readonly IFileSystem _fileSystem;
- public PlayedIndicatorDrawer(IApplicationPaths appPaths, IHttpClient iHttpClient)
+ public PlayedIndicatorDrawer(IApplicationPaths appPaths, IHttpClient iHttpClient, IFileSystem fileSystem)
{
_appPaths = appPaths;
_iHttpClient = iHttpClient;
+ _fileSystem = fileSystem;
}
public async Task DrawPlayedIndicator(MagickWand wand, ImageSize imageSize)
@@ -38,7 +41,7 @@ namespace Emby.Drawing.ImageMagick
pixel.Opacity = 0;
pixel.Color = "white";
draw.FillColor = pixel;
- draw.Font = await DownloadFont("webdings.ttf", "https://github.com/MediaBrowser/Emby.Resources/raw/master/fonts/webdings.ttf", _appPaths, _iHttpClient).ConfigureAwait(false);
+ draw.Font = await DownloadFont("webdings.ttf", "https://github.com/MediaBrowser/Emby.Resources/raw/master/fonts/webdings.ttf", _appPaths, _iHttpClient, _fileSystem).ConfigureAwait(false);
draw.FontSize = FontSize;
draw.FontStyle = FontStyleType.NormalStyle;
draw.TextAlignment = TextAlignType.CenterAlign;
@@ -52,18 +55,18 @@ namespace Emby.Drawing.ImageMagick
}
}
- internal static string ExtractFont(string name, IApplicationPaths paths)
+ internal static string ExtractFont(string name, IApplicationPaths paths, IFileSystem fileSystem)
{
var filePath = Path.Combine(paths.ProgramDataPath, "fonts", name);
- if (File.Exists(filePath))
+ if (fileSystem.FileExists(filePath))
{
return filePath;
}
var namespacePath = typeof(PlayedIndicatorDrawer).Namespace + ".fonts." + name;
var tempPath = Path.Combine(paths.TempDirectory, Guid.NewGuid().ToString("N") + ".ttf");
- Directory.CreateDirectory(Path.GetDirectoryName(tempPath));
+ fileSystem.CreateDirectory(Path.GetDirectoryName(tempPath));
using (var stream = typeof(PlayedIndicatorDrawer).Assembly.GetManifestResourceStream(namespacePath))
{
@@ -73,11 +76,11 @@ namespace Emby.Drawing.ImageMagick
}
}
- Directory.CreateDirectory(Path.GetDirectoryName(filePath));
+ fileSystem.CreateDirectory(Path.GetDirectoryName(filePath));
try
{
- File.Copy(tempPath, filePath, false);
+ fileSystem.CopyFile(tempPath, filePath, false);
}
catch (IOException)
{
@@ -87,11 +90,11 @@ namespace Emby.Drawing.ImageMagick
return tempPath;
}
- internal static async Task<string> DownloadFont(string name, string url, IApplicationPaths paths, IHttpClient httpClient)
+ internal static async Task<string> DownloadFont(string name, string url, IApplicationPaths paths, IHttpClient httpClient, IFileSystem fileSystem)
{
var filePath = Path.Combine(paths.ProgramDataPath, "fonts", name);
- if (File.Exists(filePath))
+ if (fileSystem.FileExists(filePath))
{
return filePath;
}
@@ -103,11 +106,11 @@ namespace Emby.Drawing.ImageMagick
}).ConfigureAwait(false);
- Directory.CreateDirectory(Path.GetDirectoryName(filePath));
+ fileSystem.CreateDirectory(Path.GetDirectoryName(filePath));
try
{
- File.Copy(tempPath, filePath, false);
+ fileSystem.CopyFile(tempPath, filePath, false);
}
catch (IOException)
{
diff --git a/Emby.Drawing/ImageMagick/StripCollageBuilder.cs b/Emby.Drawing/ImageMagick/StripCollageBuilder.cs
index 7ed0f36e2c..92eb1cd597 100644
--- a/Emby.Drawing/ImageMagick/StripCollageBuilder.cs
+++ b/Emby.Drawing/ImageMagick/StripCollageBuilder.cs
@@ -2,16 +2,19 @@
using MediaBrowser.Common.Configuration;
using System;
using System.Collections.Generic;
+using MediaBrowser.Common.IO;
namespace Emby.Drawing.ImageMagick
{
public class StripCollageBuilder
{
private readonly IApplicationPaths _appPaths;
+ private readonly IFileSystem _fileSystem;
- public StripCollageBuilder(IApplicationPaths appPaths)
+ public StripCollageBuilder(IApplicationPaths appPaths, IFileSystem fileSystem)
{
_appPaths = appPaths;
+ _fileSystem = fileSystem;
}
public void BuildPosterCollage(List<string> paths, string outputPath, int width, int height, string text)
@@ -490,7 +493,7 @@ namespace Emby.Drawing.ImageMagick
private string MontserratLightFont
{
- get { return PlayedIndicatorDrawer.ExtractFont("MontserratLight.otf", _appPaths); }
+ get { return PlayedIndicatorDrawer.ExtractFont("MontserratLight.otf", _appPaths, _fileSystem); }
}
}
}
diff --git a/Emby.Drawing/ImageMagick/UnplayedCountIndicator.cs b/Emby.Drawing/ImageMagick/UnplayedCountIndicator.cs
index dd25004d66..d63abd2a5a 100644
--- a/Emby.Drawing/ImageMagick/UnplayedCountIndicator.cs
+++ b/Emby.Drawing/ImageMagick/UnplayedCountIndicator.cs
@@ -33,7 +33,7 @@ namespace Emby.Drawing.ImageMagick
pixel.Opacity = 0;
pixel.Color = "white";
draw.FillColor = pixel;
- draw.Font = PlayedIndicatorDrawer.ExtractFont("robotoregular.ttf", _appPaths);
+ draw.Font = PlayedIndicatorDrawer.ExtractFont("robotoregular.ttf", _appPaths, _fileSystem);
draw.FontStyle = FontStyleType.NormalStyle;
draw.TextAlignment = TextAlignType.CenterAlign;
draw.FontWeight = FontWeightType.RegularStyle;