| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | #pragma warning disable CS1591using System;using MediaBrowser.Controller.Entities;using MediaBrowser.Model.Drawing;using MediaBrowser.Model.Entities;namespace MediaBrowser.Controller.Drawing{    public static class ImageHelper    {        public static ImageDimensions GetNewImageSize(ImageProcessingOptions options, ImageDimensions? originalImageSize)        {            if (originalImageSize.HasValue)            {                // Determine the output size based on incoming parameters                var newSize = DrawingUtils.Resize(originalImageSize.Value, options.Width ?? 0, options.Height ?? 0, options.MaxWidth ?? 0, options.MaxHeight ?? 0);                return newSize;            }            return GetSizeEstimate(options);        }        private static ImageDimensions GetSizeEstimate(ImageProcessingOptions options)        {            if (options.Width.HasValue && options.Height.HasValue)            {                return new ImageDimensions(options.Width.Value, options.Height.Value);            }            double aspect = GetEstimatedAspectRatio(options.Image.Type, options.Item);            int? width = options.Width ?? options.MaxWidth;            if (width.HasValue)            {                int heightValue = Convert.ToInt32((double)width.Value / aspect);                return new ImageDimensions(width.Value, heightValue);            }            var height = options.Height ?? options.MaxHeight ?? 200;            int widthValue = Convert.ToInt32(aspect * height);            return new ImageDimensions(widthValue, height);        }        private static double GetEstimatedAspectRatio(ImageType type, BaseItem 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:                case ImageType.Profile:                    return 1;                case ImageType.Logo:                    return 2.58;                case ImageType.Primary:                    double defaultPrimaryImageAspectRatio = item.GetDefaultPrimaryImageAspectRatio();                    return defaultPrimaryImageAspectRatio > 0 ? defaultPrimaryImageAspectRatio : 2.0 / 3;                default:                    return 1;            }        }    }}
 |