diff options
Diffstat (limited to 'Emby.Drawing/ImageProcessor.cs')
| -rw-r--r-- | Emby.Drawing/ImageProcessor.cs | 67 |
1 files changed, 2 insertions, 65 deletions
diff --git a/Emby.Drawing/ImageProcessor.cs b/Emby.Drawing/ImageProcessor.cs index ad6ca7d70..3fa6f6450 100644 --- a/Emby.Drawing/ImageProcessor.cs +++ b/Emby.Drawing/ImageProcessor.cs @@ -227,7 +227,7 @@ namespace Emby.Drawing originalImageSize = null; } - var newSize = GetNewImageSize(options, originalImageSize); + var newSize = ImageHelper.GetNewImageSize(options, originalImageSize); var quality = options.Quality; var outputFormat = GetOutputFormat(options.SupportedOutputFormats[0]); @@ -239,14 +239,11 @@ namespace Emby.Drawing if (!_fileSystem.FileExists(cacheFilePath)) { - var newWidth = Convert.ToInt32(Math.Round(newSize.Width)); - var newHeight = Convert.ToInt32(Math.Round(newSize.Height)); - _fileSystem.CreateDirectory(_fileSystem.GetDirectoryName(cacheFilePath)); var tmpPath = Path.ChangeExtension(Path.Combine(_appPaths.TempDirectory, Guid.NewGuid().ToString("N")), Path.GetExtension(cacheFilePath)); _fileSystem.CreateDirectory(_fileSystem.GetDirectoryName(tmpPath)); - _imageEncoder.EncodeImage(originalImagePath, tmpPath, AutoOrient(options.Item), newWidth, newHeight, quality, options, outputFormat); + _imageEncoder.EncodeImage(originalImagePath, originalImageSize, tmpPath, AutoOrient(options.Item), quality, options, outputFormat); CopyFile(tmpPath, cacheFilePath); return new Tuple<string, string, DateTime>(tmpPath, GetMimeType(outputFormat, cacheFilePath), _fileSystem.GetLastWriteTimeUtc(tmpPath)); @@ -328,66 +325,6 @@ namespace Emby.Drawing return MimeTypes.GetMimeType(path); } - private ImageSize GetNewImageSize(ImageProcessingOptions options, ImageSize? originalImageSize) - { - if (originalImageSize.HasValue) - { - // Determine the output size based on incoming parameters - var newSize = DrawingUtils.Resize(originalImageSize.Value, options.Width, options.Height, options.MaxWidth, options.MaxHeight); - - return newSize; - } - return GetSizeEstimate(options); - } - - private ImageSize GetSizeEstimate(ImageProcessingOptions options) - { - if (options.Width.HasValue && options.Height.HasValue) - { - return new ImageSize(options.Width.Value, options.Height.Value); - } - - var aspect = GetEstimatedAspectRatio(options.Image.Type, options.Item); - - var width = options.Width ?? options.MaxWidth; - - if (width.HasValue) - { - var heightValue = width.Value / aspect; - return new ImageSize(width.Value, heightValue); - } - - var height = options.Height ?? options.MaxHeight ?? 200; - var widthValue = aspect * height; - return new ImageSize(widthValue, height); - } - - private double GetEstimatedAspectRatio(ImageType type, IHasImages item) - { - switch (type) - { - case ImageType.Art: - case ImageType.Backdrop: - case ImageType.Chapter: - case ImageType.Screenshot: - case ImageType.Thumb: - return 1.78; - case ImageType.Banner: - return 5.4; - case ImageType.Box: - case ImageType.BoxRear: - case ImageType.Disc: - case ImageType.Menu: - return 1; - case ImageType.Logo: - return 2.58; - case ImageType.Primary: - return item.GetDefaultPrimaryImageAspectRatio() ?? .667; - default: - return 1; - } - } - private ImageFormat GetOutputFormat(ImageFormat requestedFormat) { if (requestedFormat == ImageFormat.Webp && !_imageEncoder.SupportedOutputFormats.Contains(ImageFormat.Webp)) |
