aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs20
1 files changed, 20 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs b/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
index d4d9a9f14..6f20631ac 100644
--- a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
+++ b/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
@@ -9,6 +9,7 @@ using MediaBrowser.Model.Entities;
using MoreLinq;
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Threading.Tasks;
@@ -194,5 +195,24 @@ namespace MediaBrowser.Server.Implementations.Photos
{
return _collectionStripViewTypes.Contains(view.ViewType ?? string.Empty);
}
+
+ protected override Task<Stream> CreateImageAsync(IHasImages item, List<BaseItem> itemsWithImages, ImageType imageType, int imageIndex)
+ {
+ var view = (UserView)item;
+ if (imageType == ImageType.Primary && IsUsingCollectionStrip(view))
+ {
+ var stream = new StripCollageBuilder(ApplicationPaths).BuildThumbCollage(GetStripCollageImagePaths(itemsWithImages), item.Name, 960, 540);
+ return Task.FromResult(stream);
+ }
+
+ return base.CreateImageAsync(item, itemsWithImages, imageType, imageIndex);
+ }
+
+ private IEnumerable<String> GetStripCollageImagePaths(IEnumerable<BaseItem> items)
+ {
+ return items
+ .Select(i => i.GetImagePath(ImageType.Primary) ?? i.GetImagePath(ImageType.Thumb))
+ .Where(i => !string.IsNullOrWhiteSpace(i));
+ }
}
}