diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs | 20 |
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)); + } } } |
