@@ -208,7 +208,7 @@ public async Task<Tuple<string, string, DateTime>> ProcessImage(ImageProcessingO
208
208
dateModified = supportedImageInfo . Item2 ;
209
209
var requiresTransparency = TransparentImageTypes . Contains ( Path . GetExtension ( originalImagePath ) ?? string . Empty ) ;
210
210
211
- if ( options . Enhancers . Count > 0 )
211
+ if ( options . Enhancers . Length > 0 )
212
212
{
213
213
if ( item == null )
214
214
{
@@ -541,7 +541,7 @@ public string GetImageCacheTag(BaseItem item, ItemImageInfo image)
541
541
/// <param name="imageEnhancers">The image enhancers.</param>
542
542
/// <returns>Guid.</returns>
543
543
/// <exception cref="System.ArgumentNullException">item</exception>
544
- public string GetImageCacheTag ( BaseItem item , ItemImageInfo image , List < IImageEnhancer > imageEnhancers )
544
+ public string GetImageCacheTag ( BaseItem item , ItemImageInfo image , IImageEnhancer [ ] imageEnhancers )
545
545
{
546
546
if ( item == null )
547
547
{
@@ -563,7 +563,7 @@ public string GetImageCacheTag(BaseItem item, ItemImageInfo image, List<IImageEn
563
563
var imageType = image . Type ;
564
564
565
565
// Optimization
566
- if ( imageEnhancers . Count == 0 )
566
+ if ( imageEnhancers . Length == 0 )
567
567
{
568
568
return ( originalImagePath + dateModified . Ticks ) . GetMD5 ( ) . ToString ( "N" ) ;
569
569
}
@@ -642,7 +642,7 @@ private async Task<Tuple<string, DateTime, bool>> GetEnhancedImage(ItemImageInfo
642
642
bool inputImageSupportsTransparency ,
643
643
BaseItem item ,
644
644
int imageIndex ,
645
- List < IImageEnhancer > enhancers ,
645
+ IImageEnhancer [ ] enhancers ,
646
646
CancellationToken cancellationToken )
647
647
{
648
648
var originalImagePath = image . Path ;
@@ -693,7 +693,7 @@ private async Task<Tuple<string, bool>> GetEnhancedImageInternal(string original
693
693
BaseItem item ,
694
694
ImageType imageType ,
695
695
int imageIndex ,
696
- List < IImageEnhancer > supportedEnhancers ,
696
+ IImageEnhancer [ ] supportedEnhancers ,
697
697
string cacheGuid ,
698
698
CancellationToken cancellationToken )
699
699
{
@@ -717,8 +717,8 @@ private async Task<Tuple<string, bool>> GetEnhancedImageInternal(string original
717
717
}
718
718
719
719
// All enhanced images are saved as png to allow transparency
720
- var cacheExtension = _imageEncoder . SupportedOutputFormats . Contains ( ImageFormat . Webp ) ?
721
- ".webp" :
720
+ var cacheExtension = _imageEncoder . SupportedOutputFormats . Contains ( ImageFormat . Webp ) ?
721
+ ".webp" :
722
722
( treatmentRequiresTransparency ? ".png" : ".jpg" ) ;
723
723
724
724
var enhancedImagePath = GetCachePath ( EnhancedImageCachePath , cacheGuid + cacheExtension ) ;
@@ -842,16 +842,20 @@ public void CreateImageCollage(ImageCollageOptions options)
842
842
_logger . Info ( "Completed creation of image collage and saved to {0}" , options . OutputPath ) ;
843
843
}
844
844
845
- public List < IImageEnhancer > GetSupportedEnhancers ( BaseItem item , ImageType imageType )
845
+ public IImageEnhancer [ ] GetSupportedEnhancers ( BaseItem item , ImageType imageType )
846
846
{
847
- var list = new List < IImageEnhancer > ( ) ;
847
+ List < IImageEnhancer > list = null ;
848
848
849
849
foreach ( var i in ImageEnhancers )
850
850
{
851
851
try
852
852
{
853
853
if ( i . Supports ( item , imageType ) )
854
854
{
855
+ if ( list == null )
856
+ {
857
+ list = new List < IImageEnhancer > ( ) ;
858
+ }
855
859
list . Add ( i ) ;
856
860
}
857
861
}
@@ -860,7 +864,8 @@ public List<IImageEnhancer> GetSupportedEnhancers(BaseItem item, ImageType image
860
864
_logger . ErrorException ( "Error in image enhancer: {0}" , ex , i . GetType ( ) . Name ) ;
861
865
}
862
866
}
863
- return list ;
867
+
868
+ return list == null ? new IImageEnhancer [ ] { } : list . ToArray ( ) ;
864
869
}
865
870
866
871
private Dictionary < string , LockInfo > _locks = new Dictionary < string , LockInfo > ( ) ;
0 commit comments