/// <summary> /// Gets the enhanced image. /// </summary> /// <param name="item">The item.</param> /// <param name="imageType">Type of the image.</param> /// <param name="imageIndex">Index of the image.</param> /// <returns>Task{System.String}.</returns> public async Task<string> GetEnhancedImage(IHasImages item, ImageType imageType, int imageIndex) { var enhancers = GetSupportedEnhancers(item, imageType).ToList(); var imagePath = item.GetImagePath(imageType, imageIndex); var dateModified = item.GetImageDateModified(imagePath); var result = await GetEnhancedImage(imagePath, dateModified, item, imageType, imageIndex, enhancers); return result.Item1; }
/// <summary> /// Attaches the primary image aspect ratio. /// </summary> /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasImages item) { var path = item.PrimaryImagePath; if (string.IsNullOrEmpty(path)) { return; } // See if we can avoid a file system lookup by looking for the file in ResolveArgs var dateModified = item.GetImageDateModified(path); ImageSize size; try { size = _imageProcessor.GetImageSize(path, dateModified); } catch (FileNotFoundException) { _logger.Error("Image file does not exist: {0}", path); return; } catch (Exception ex) { _logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); return; } dto.OriginalPrimaryImageAspectRatio = size.Width / size.Height; var supportedEnhancers = _imageProcessor.GetSupportedEnhancers(item, ImageType.Primary).ToList(); foreach (var enhancer in supportedEnhancers) { try { size = enhancer.GetEnhancedImageSize(item, ImageType.Primary, 0, size); } catch (Exception ex) { _logger.ErrorException("Error in image enhancer: {0}", ex, enhancer.GetType().Name); } } dto.PrimaryImageAspectRatio = size.Width / size.Height; }
/// <summary> /// Gets the image cache tag. /// </summary> /// <param name="item">The item.</param> /// <param name="imageType">Type of the image.</param> /// <param name="imagePath">The image path.</param> /// <returns>Guid.</returns> /// <exception cref="System.ArgumentNullException">item</exception> public Guid GetImageCacheTag(IHasImages item, ImageType imageType, string imagePath) { if (item == null) { throw new ArgumentNullException("item"); } if (string.IsNullOrEmpty(imagePath)) { throw new ArgumentNullException("imagePath"); } var dateModified = item.GetImageDateModified(imagePath); var supportedEnhancers = GetSupportedEnhancers(item, imageType); return GetImageCacheTag(item, imageType, imagePath, dateModified, supportedEnhancers.ToList()); }