aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs32
1 files changed, 27 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs b/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs
index 64c812e1b..80cfd7f3e 100644
--- a/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs
+++ b/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs
@@ -203,7 +203,7 @@ namespace MediaBrowser.Server.Implementations.Drawing
try
{
CheckDisposed();
-
+
var newWidth = Convert.ToInt32(newSize.Width);
var newHeight = Convert.ToInt32(newSize.Height);
@@ -329,7 +329,7 @@ namespace MediaBrowser.Server.Implementations.Drawing
try
{
Directory.CreateDirectory(Path.GetDirectoryName(croppedImagePath));
-
+
using (var wand = new MagickWand(originalImagePath))
{
wand.CurrentImage.TrimImage(10);
@@ -450,12 +450,34 @@ namespace MediaBrowser.Server.Implementations.Drawing
/// <returns>ImageSize.</returns>
private ImageSize GetImageSizeInternal(string path)
{
- CheckDisposed();
- var size = ImageHeader.GetDimensions(path, _logger, _fileSystem);
+ ImageSize size;
+
+ try
+ {
+ size = ImageHeader.GetDimensions(path, _logger, _fileSystem);
+ }
+ catch
+ {
+ _logger.Info("Failed to read image header for {0}. Doing it the slow way.", path);
+
+ CheckDisposed();
+
+ using (var wand = new MagickWand())
+ {
+ wand.PingImage(path);
+ var img = wand.CurrentImage;
+
+ size = new ImageSize
+ {
+ Width = img.Width,
+ Height = img.Height
+ };
+ }
+ }
StartSaveImageSizeTimer();
- return new ImageSize { Width = size.Width, Height = size.Height };
+ return size;
}
private readonly Timer _saveImageSizeTimer;