Merge pull request #721 from Bond-009/imagedimensions
Change image dimentions from double to int
This commit is contained in:
commit
e051ca6ff6
|
@ -1088,8 +1088,8 @@ namespace Emby.Dlna.Didl
|
|||
//{
|
||||
// var size = _imageProcessor.GetImageSize(imageInfo);
|
||||
|
||||
// width = Convert.ToInt32(size.Width);
|
||||
// height = Convert.ToInt32(size.Height);
|
||||
// width = size.Width;
|
||||
// height = size.Height;
|
||||
//}
|
||||
//catch
|
||||
//{
|
||||
|
@ -1162,8 +1162,7 @@ namespace Emby.Dlna.Didl
|
|||
info.ImageTag,
|
||||
format,
|
||||
maxWidth.ToString(CultureInfo.InvariantCulture),
|
||||
maxHeight.ToString(CultureInfo.InvariantCulture)
|
||||
);
|
||||
maxHeight.ToString(CultureInfo.InvariantCulture));
|
||||
|
||||
var width = info.Width;
|
||||
var height = info.Height;
|
||||
|
@ -1172,15 +1171,11 @@ namespace Emby.Dlna.Didl
|
|||
|
||||
if (width.HasValue && height.HasValue)
|
||||
{
|
||||
var newSize = DrawingUtils.Resize(new ImageSize
|
||||
{
|
||||
Height = height.Value,
|
||||
Width = width.Value
|
||||
var newSize = DrawingUtils.Resize(
|
||||
new ImageDimensions(width.Value, height.Value), 0, 0, maxWidth, maxHeight);
|
||||
|
||||
}, 0, 0, maxWidth, maxHeight);
|
||||
|
||||
width = Convert.ToInt32(newSize.Width);
|
||||
height = Convert.ToInt32(newSize.Height);
|
||||
width = newSize.Width;
|
||||
height = newSize.Height;
|
||||
|
||||
var normalizedFormat = format
|
||||
.Replace("jpeg", "jpg", StringComparison.OrdinalIgnoreCase);
|
||||
|
|
|
@ -18,7 +18,6 @@ using MediaBrowser.Model.Extensions;
|
|||
using MediaBrowser.Model.IO;
|
||||
using MediaBrowser.Model.Net;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using SkiaSharp;
|
||||
|
||||
namespace Emby.Drawing
|
||||
{
|
||||
|
@ -168,10 +167,10 @@ namespace Emby.Drawing
|
|||
|
||||
string originalImagePath = originalImage.Path;
|
||||
DateTime dateModified = originalImage.DateModified;
|
||||
ImageSize? originalImageSize = null;
|
||||
ImageDimensions? originalImageSize = null;
|
||||
if (originalImage.Width > 0 && originalImage.Height > 0)
|
||||
{
|
||||
originalImageSize = new ImageSize(originalImage.Width, originalImage.Height);
|
||||
originalImageSize = new ImageDimensions(originalImage.Width, originalImage.Height);
|
||||
}
|
||||
|
||||
if (!_imageEncoder.SupportsImageEncoding)
|
||||
|
@ -231,7 +230,7 @@ namespace Emby.Drawing
|
|||
return (originalImagePath, MimeTypes.GetMimeType(originalImagePath), dateModified);
|
||||
}
|
||||
|
||||
ImageSize newSize = ImageHelper.GetNewImageSize(options, null);
|
||||
ImageDimensions newSize = ImageHelper.GetNewImageSize(options, null);
|
||||
int quality = options.Quality;
|
||||
|
||||
ImageFormat outputFormat = GetOutputFormat(options.SupportedOutputFormats, requiresTransparency);
|
||||
|
@ -334,7 +333,7 @@ namespace Emby.Drawing
|
|||
/// <summary>
|
||||
/// Gets the cache file path based on a set of parameters
|
||||
/// </summary>
|
||||
private string GetCacheFilePath(string originalPath, ImageSize outputSize, int quality, DateTime dateModified, ImageFormat format, bool addPlayedIndicator, double percentPlayed, int? unwatchedCount, int? blur, string backgroundColor, string foregroundLayer)
|
||||
private string GetCacheFilePath(string originalPath, ImageDimensions outputSize, int quality, DateTime dateModified, ImageFormat format, bool addPlayedIndicator, double percentPlayed, int? unwatchedCount, int? blur, string backgroundColor, string foregroundLayer)
|
||||
{
|
||||
var filename = originalPath
|
||||
+ "width=" + outputSize.Width
|
||||
|
@ -378,26 +377,25 @@ namespace Emby.Drawing
|
|||
return GetCachePath(ResizedImageCachePath, filename, "." + format.ToString().ToLower());
|
||||
}
|
||||
|
||||
public ImageSize GetImageSize(BaseItem item, ItemImageInfo info)
|
||||
public ImageDimensions GetImageSize(BaseItem item, ItemImageInfo info)
|
||||
=> GetImageSize(item, info, true);
|
||||
|
||||
public ImageSize GetImageSize(BaseItem item, ItemImageInfo info, bool updateItem)
|
||||
public ImageDimensions GetImageSize(BaseItem item, ItemImageInfo info, bool updateItem)
|
||||
{
|
||||
int width = info.Width;
|
||||
int height = info.Height;
|
||||
|
||||
if (height > 0 && width > 0)
|
||||
{
|
||||
return new ImageSize(width, height);
|
||||
return new ImageDimensions(width, height);
|
||||
}
|
||||
|
||||
string path = info.Path;
|
||||
_logger.LogInformation("Getting image size for item {ItemType} {Path}", item.GetType().Name, path);
|
||||
|
||||
var size = GetImageSize(path);
|
||||
|
||||
info.Height = Convert.ToInt32(size.Height);
|
||||
info.Width = Convert.ToInt32(size.Width);
|
||||
ImageDimensions size = GetImageSize(path);
|
||||
info.Width = size.Width;
|
||||
info.Height = size.Height;
|
||||
|
||||
if (updateItem)
|
||||
{
|
||||
|
@ -410,20 +408,8 @@ namespace Emby.Drawing
|
|||
/// <summary>
|
||||
/// Gets the size of the image.
|
||||
/// </summary>
|
||||
public ImageSize GetImageSize(string path)
|
||||
{
|
||||
if (string.IsNullOrEmpty(path))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(path));
|
||||
}
|
||||
|
||||
using (var s = new SKFileStream(path))
|
||||
using (var codec = SKCodec.Create(s))
|
||||
{
|
||||
var info = codec.Info;
|
||||
return new ImageSize(info.Width, info.Height);
|
||||
}
|
||||
}
|
||||
public ImageDimensions GetImageSize(string path)
|
||||
=> _imageEncoder.GetImageSize(path);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the image cache tag.
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace Emby.Drawing
|
|||
|
||||
public bool SupportsImageEncoding => false;
|
||||
|
||||
public ImageSize GetImageSize(string path)
|
||||
public ImageDimensions GetImageSize(string path)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Emby.Drawing
|
|||
{
|
||||
private const int IndicatorHeight = 8;
|
||||
|
||||
public static void Process(SKCanvas canvas, ImageSize imageSize, double percent)
|
||||
public static void Process(SKCanvas canvas, ImageDimensions imageSize, double percent)
|
||||
{
|
||||
using (var paint = new SKPaint())
|
||||
{
|
||||
|
@ -24,7 +24,7 @@ namespace Emby.Drawing
|
|||
foregroundWidth /= 100;
|
||||
|
||||
paint.Color = SKColor.Parse("#FF52B54B");
|
||||
canvas.DrawRect(SKRect.Create(0, (float)endY - IndicatorHeight, Convert.ToInt32(Math.Round(foregroundWidth)), (float)endY), paint);
|
||||
canvas.DrawRect(SKRect.Create(0, (float)endY - IndicatorHeight, Convert.ToInt32(foregroundWidth), (float)endY), paint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace Emby.Drawing
|
|||
{
|
||||
private const int OffsetFromTopRightCorner = 38;
|
||||
|
||||
public static void DrawPlayedIndicator(SKCanvas canvas, ImageSize imageSize)
|
||||
public static void DrawPlayedIndicator(SKCanvas canvas, ImageDimensions imageSize)
|
||||
{
|
||||
var x = imageSize.Width - OffsetFromTopRightCorner;
|
||||
|
||||
|
|
|
@ -168,18 +168,14 @@ namespace Emby.Drawing
|
|||
}
|
||||
}
|
||||
|
||||
public ImageSize GetImageSize(string path)
|
||||
public ImageDimensions GetImageSize(string path)
|
||||
{
|
||||
using (var s = new SKFileStream(path))
|
||||
using (var codec = SKCodec.Create(s))
|
||||
{
|
||||
var info = codec.Info;
|
||||
|
||||
return new ImageSize
|
||||
{
|
||||
Width = info.Width,
|
||||
Height = info.Height
|
||||
};
|
||||
return new ImageDimensions(info.Width, info.Height);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -513,7 +509,7 @@ namespace Emby.Drawing
|
|||
|
||||
//_logger.LogInformation("Color type {0}", bitmap.Info.ColorType);
|
||||
|
||||
var originalImageSize = new ImageSize(bitmap.Width, bitmap.Height);
|
||||
var originalImageSize = new ImageDimensions(bitmap.Width, bitmap.Height);
|
||||
|
||||
if (!options.CropWhiteSpace && options.HasDefaultOptions(inputPath, originalImageSize) && !autoOrient)
|
||||
{
|
||||
|
@ -523,8 +519,8 @@ namespace Emby.Drawing
|
|||
|
||||
var newImageSize = ImageHelper.GetNewImageSize(options, originalImageSize);
|
||||
|
||||
var width = Convert.ToInt32(Math.Round(newImageSize.Width));
|
||||
var height = Convert.ToInt32(Math.Round(newImageSize.Height));
|
||||
var width = newImageSize.Width;
|
||||
var height = newImageSize.Height;
|
||||
|
||||
using (var resizedBitmap = new SKBitmap(width, height))//, bitmap.ColorType, bitmap.AlphaType))
|
||||
{
|
||||
|
@ -626,7 +622,7 @@ namespace Emby.Drawing
|
|||
{
|
||||
try
|
||||
{
|
||||
var currentImageSize = new ImageSize(imageWidth, imageHeight);
|
||||
var currentImageSize = new ImageDimensions(imageWidth, imageHeight);
|
||||
|
||||
if (options.AddPlayedIndicator)
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Emby.Drawing
|
|||
{
|
||||
private const int OffsetFromTopRightCorner = 38;
|
||||
|
||||
public static void DrawUnplayedCountIndicator(SKCanvas canvas, ImageSize imageSize, int count)
|
||||
public static void DrawUnplayedCountIndicator(SKCanvas canvas, ImageDimensions imageSize, int count)
|
||||
{
|
||||
var x = imageSize.Width - OffsetFromTopRightCorner;
|
||||
var text = count.ToString(CultureInfo.InvariantCulture);
|
||||
|
|
|
@ -185,8 +185,8 @@ namespace Emby.Photos
|
|||
|
||||
if (size.Width > 0 && size.Height > 0)
|
||||
{
|
||||
item.Width = Convert.ToInt32(size.Width);
|
||||
item.Height = Convert.ToInt32(size.Height);
|
||||
item.Width = size.Width;
|
||||
item.Height = size.Height;
|
||||
}
|
||||
}
|
||||
catch (ArgumentException)
|
||||
|
|
|
@ -1428,7 +1428,7 @@ namespace Emby.Server.Implementations.Dto
|
|||
|
||||
var supportedEnhancers = _imageProcessor.GetSupportedEnhancers(item, ImageType.Primary);
|
||||
|
||||
ImageSize size;
|
||||
ImageDimensions size;
|
||||
|
||||
var defaultAspectRatio = item.GetDefaultPrimaryImageAspectRatio();
|
||||
|
||||
|
@ -1439,9 +1439,9 @@ namespace Emby.Server.Implementations.Dto
|
|||
return defaultAspectRatio;
|
||||
}
|
||||
|
||||
double dummyWidth = 200;
|
||||
double dummyHeight = dummyWidth / defaultAspectRatio;
|
||||
size = new ImageSize(dummyWidth, dummyHeight);
|
||||
int dummyWidth = 200;
|
||||
int dummyHeight = Convert.ToInt32(dummyWidth / defaultAspectRatio);
|
||||
size = new ImageDimensions(dummyWidth, dummyHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1481,7 +1481,7 @@ namespace Emby.Server.Implementations.Dto
|
|||
var width = size.Width;
|
||||
var height = size.Height;
|
||||
|
||||
if (width.Equals(0) || height.Equals(0))
|
||||
if (width <= 0 || height <= 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -328,10 +328,9 @@ namespace MediaBrowser.Api.Images
|
|||
var fileInfo = _fileSystem.GetFileInfo(info.Path);
|
||||
length = fileInfo.Length;
|
||||
|
||||
var size = _imageProcessor.GetImageSize(item, info, true);
|
||||
|
||||
width = Convert.ToInt32(size.Width);
|
||||
height = Convert.ToInt32(size.Height);
|
||||
ImageDimensions size = _imageProcessor.GetImageSize(item, info, true);
|
||||
width = size.Width;
|
||||
height = size.Height;
|
||||
|
||||
if (width <= 0 || height <= 0)
|
||||
{
|
||||
|
|
|
@ -44,6 +44,6 @@ namespace MediaBrowser.Controller.Drawing
|
|||
/// <value><c>true</c> if [supports image encoding]; otherwise, <c>false</c>.</value>
|
||||
bool SupportsImageEncoding { get; }
|
||||
|
||||
ImageSize GetImageSize(string path);
|
||||
ImageDimensions GetImageSize(string path);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,16 +26,16 @@ namespace MediaBrowser.Controller.Drawing
|
|||
/// <value>The image enhancers.</value>
|
||||
IImageEnhancer[] ImageEnhancers { get; }
|
||||
|
||||
ImageSize GetImageSize(string path);
|
||||
ImageDimensions GetImageSize(string path);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the size of the image.
|
||||
/// </summary>
|
||||
/// <param name="info">The information.</param>
|
||||
/// <returns>ImageSize.</returns>
|
||||
ImageSize GetImageSize(BaseItem item, ItemImageInfo info);
|
||||
ImageDimensions GetImageSize(BaseItem item, ItemImageInfo info);
|
||||
|
||||
ImageSize GetImageSize(BaseItem item, ItemImageInfo info, bool updateItem);
|
||||
ImageDimensions GetImageSize(BaseItem item, ItemImageInfo info, bool updateItem);
|
||||
|
||||
/// <summary>
|
||||
/// Adds the parts.
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Drawing;
|
||||
using MediaBrowser.Model.Entities;
|
||||
|
@ -6,7 +7,7 @@ namespace MediaBrowser.Controller.Drawing
|
|||
{
|
||||
public static class ImageHelper
|
||||
{
|
||||
public static ImageSize GetNewImageSize(ImageProcessingOptions options, ImageSize? originalImageSize)
|
||||
public static ImageDimensions GetNewImageSize(ImageProcessingOptions options, ImageDimensions? originalImageSize)
|
||||
{
|
||||
if (originalImageSize.HasValue)
|
||||
{
|
||||
|
@ -20,26 +21,26 @@ namespace MediaBrowser.Controller.Drawing
|
|||
|
||||
public static IImageProcessor ImageProcessor { get; set; }
|
||||
|
||||
private static ImageSize GetSizeEstimate(ImageProcessingOptions options)
|
||||
private static ImageDimensions GetSizeEstimate(ImageProcessingOptions options)
|
||||
{
|
||||
if (options.Width.HasValue && options.Height.HasValue)
|
||||
{
|
||||
return new ImageSize(options.Width.Value, options.Height.Value);
|
||||
return new ImageDimensions(options.Width.Value, options.Height.Value);
|
||||
}
|
||||
|
||||
var aspect = GetEstimatedAspectRatio(options.Image.Type, options.Item);
|
||||
double aspect = GetEstimatedAspectRatio(options.Image.Type, options.Item);
|
||||
|
||||
var width = options.Width ?? options.MaxWidth;
|
||||
int? width = options.Width ?? options.MaxWidth;
|
||||
|
||||
if (width.HasValue)
|
||||
{
|
||||
var heightValue = width.Value / aspect;
|
||||
return new ImageSize(width.Value, heightValue);
|
||||
int heightValue = Convert.ToInt32((double)width.Value / aspect);
|
||||
return new ImageDimensions(width.Value, heightValue);
|
||||
}
|
||||
|
||||
var height = options.Height ?? options.MaxHeight ?? 200;
|
||||
var widthValue = aspect * height;
|
||||
return new ImageSize(widthValue, height);
|
||||
int widthValue = Convert.ToInt32(aspect * height);
|
||||
return new ImageDimensions(widthValue, height);
|
||||
}
|
||||
|
||||
private static double GetEstimatedAspectRatio(ImageType type, BaseItem item)
|
||||
|
|
|
@ -57,7 +57,7 @@ namespace MediaBrowser.Controller.Drawing
|
|||
!MaxHeight.HasValue;
|
||||
}
|
||||
|
||||
public bool HasDefaultOptions(string originalImagePath, ImageSize? size)
|
||||
public bool HasDefaultOptions(string originalImagePath, ImageDimensions? size)
|
||||
{
|
||||
if (!size.HasValue)
|
||||
{
|
||||
|
|
|
@ -2235,11 +2235,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
/// </exception>
|
||||
/// <exception cref="ArgumentNullException">item</exception>
|
||||
public string GetImagePath(ImageType imageType, int imageIndex)
|
||||
{
|
||||
var info = GetImageInfo(imageType, imageIndex);
|
||||
|
||||
return info == null ? null : info.Path;
|
||||
}
|
||||
=> GetImageInfo(imageType, imageIndex)?.Path;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the image information.
|
||||
|
|
|
@ -424,11 +424,9 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
if (state.VideoStream != null && state.VideoStream.Width.HasValue)
|
||||
{
|
||||
// This is hacky but not sure how to get the exact subtitle resolution
|
||||
double height = state.VideoStream.Width.Value;
|
||||
height /= 16;
|
||||
height *= 9;
|
||||
int height = Convert.ToInt32((double)state.VideoStream.Width.Value / 16.0 * 9.0);
|
||||
|
||||
arg += string.Format(" -canvas_size {0}:{1}", state.VideoStream.Width.Value.ToString(CultureInfo.InvariantCulture), Convert.ToInt32(height).ToString(CultureInfo.InvariantCulture));
|
||||
arg += string.Format(" -canvas_size {0}:{1}", state.VideoStream.Width.Value.ToString(CultureInfo.InvariantCulture), height.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
|
||||
var subtitlePath = state.SubtitleStream.Path;
|
||||
|
|
|
@ -319,7 +319,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
{
|
||||
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
||||
{
|
||||
var size = new ImageSize
|
||||
var size = new ImageDimensions
|
||||
{
|
||||
Width = VideoStream.Width.Value,
|
||||
Height = VideoStream.Height.Value
|
||||
|
@ -331,7 +331,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
BaseRequest.MaxWidth ?? 0,
|
||||
BaseRequest.MaxHeight ?? 0);
|
||||
|
||||
return Convert.ToInt32(newSize.Width);
|
||||
return newSize.Width;
|
||||
}
|
||||
|
||||
if (!IsVideoRequest)
|
||||
|
@ -349,7 +349,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
{
|
||||
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
||||
{
|
||||
var size = new ImageSize
|
||||
var size = new ImageDimensions
|
||||
{
|
||||
Width = VideoStream.Width.Value,
|
||||
Height = VideoStream.Height.Value
|
||||
|
@ -361,7 +361,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
BaseRequest.MaxWidth ?? 0,
|
||||
BaseRequest.MaxHeight ?? 0);
|
||||
|
||||
return Convert.ToInt32(newSize.Height);
|
||||
return newSize.Height;
|
||||
}
|
||||
|
||||
if (!IsVideoRequest)
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace MediaBrowser.Controller.Providers
|
|||
/// <param name="imageIndex">Index of the image.</param>
|
||||
/// <param name="originalImageSize">Size of the original image.</param>
|
||||
/// <returns>ImageSize.</returns>
|
||||
ImageSize GetEnhancedImageSize(BaseItem item, ImageType imageType, int imageIndex, ImageSize originalImageSize);
|
||||
ImageDimensions GetEnhancedImageSize(BaseItem item, ImageType imageType, int imageIndex, ImageDimensions originalImageSize);
|
||||
|
||||
EnhancedImageInfo GetEnhancedImageInfo(BaseItem item, string inputFile, ImageType imageType, int imageIndex);
|
||||
|
||||
|
|
|
@ -953,22 +953,11 @@ namespace MediaBrowser.Model.Dlna
|
|||
|
||||
if (videoStream != null && videoStream.Width.HasValue && videoStream.Height.HasValue)
|
||||
{
|
||||
var size = new ImageSize
|
||||
{
|
||||
Width = videoStream.Width.Value,
|
||||
Height = videoStream.Height.Value
|
||||
};
|
||||
ImageDimensions size = new ImageDimensions(videoStream.Width.Value, videoStream.Height.Value);
|
||||
|
||||
double? maxWidth = MaxWidth.HasValue ? (double)MaxWidth.Value : (double?)null;
|
||||
double? maxHeight = MaxHeight.HasValue ? (double)MaxHeight.Value : (double?)null;
|
||||
size = DrawingUtils.Resize(size, 0, 0, MaxWidth ?? 0, MaxHeight ?? 0);
|
||||
|
||||
var newSize = DrawingUtils.Resize(size,
|
||||
0,
|
||||
0,
|
||||
maxWidth ?? 0,
|
||||
maxHeight ?? 0);
|
||||
|
||||
return Convert.ToInt32(newSize.Width);
|
||||
return size.Width;
|
||||
}
|
||||
|
||||
return MaxWidth;
|
||||
|
@ -983,22 +972,11 @@ namespace MediaBrowser.Model.Dlna
|
|||
|
||||
if (videoStream != null && videoStream.Width.HasValue && videoStream.Height.HasValue)
|
||||
{
|
||||
var size = new ImageSize
|
||||
{
|
||||
Width = videoStream.Width.Value,
|
||||
Height = videoStream.Height.Value
|
||||
};
|
||||
ImageDimensions size = new ImageDimensions(videoStream.Width.Value, videoStream.Height.Value);
|
||||
|
||||
double? maxWidth = MaxWidth.HasValue ? (double)MaxWidth.Value : (double?)null;
|
||||
double? maxHeight = MaxHeight.HasValue ? (double)MaxHeight.Value : (double?)null;
|
||||
size = DrawingUtils.Resize(size, 0, 0, MaxWidth ?? 0, MaxHeight ?? 0);
|
||||
|
||||
var newSize = DrawingUtils.Resize(size,
|
||||
0,
|
||||
0,
|
||||
maxWidth ?? 0,
|
||||
maxHeight ?? 0);
|
||||
|
||||
return Convert.ToInt32(newSize.Height);
|
||||
return size.Height;
|
||||
}
|
||||
|
||||
return MaxHeight;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
using System;
|
||||
|
||||
namespace MediaBrowser.Model.Drawing
|
||||
{
|
||||
/// <summary>
|
||||
|
@ -14,27 +16,25 @@ namespace MediaBrowser.Model.Drawing
|
|||
/// <param name="maxWidth">A max fixed width, if desired</param>
|
||||
/// <param name="maxHeight">A max fixed height, if desired</param>
|
||||
/// <returns>A new size object</returns>
|
||||
public static ImageSize Resize(ImageSize size,
|
||||
double width,
|
||||
double height,
|
||||
double maxWidth,
|
||||
double maxHeight)
|
||||
public static ImageDimensions Resize(ImageDimensions size,
|
||||
int width,
|
||||
int height,
|
||||
int maxWidth,
|
||||
int maxHeight)
|
||||
{
|
||||
double newWidth = size.Width;
|
||||
double newHeight = size.Height;
|
||||
int newWidth = size.Width;
|
||||
int newHeight = size.Height;
|
||||
|
||||
if (width > 0 && height > 0)
|
||||
{
|
||||
newWidth = width;
|
||||
newHeight = height;
|
||||
}
|
||||
|
||||
else if (height > 0)
|
||||
{
|
||||
newWidth = GetNewWidth(newHeight, newWidth, height);
|
||||
newHeight = height;
|
||||
}
|
||||
|
||||
else if (width > 0)
|
||||
{
|
||||
newHeight = GetNewHeight(newHeight, newWidth, width);
|
||||
|
@ -53,7 +53,7 @@ namespace MediaBrowser.Model.Drawing
|
|||
newWidth = maxWidth;
|
||||
}
|
||||
|
||||
return new ImageSize { Width = newWidth, Height = newHeight };
|
||||
return new ImageDimensions(newWidth, newHeight);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -62,15 +62,9 @@ namespace MediaBrowser.Model.Drawing
|
|||
/// <param name="currentHeight">Height of the current.</param>
|
||||
/// <param name="currentWidth">Width of the current.</param>
|
||||
/// <param name="newHeight">The new height.</param>
|
||||
/// <returns>System.Double.</returns>
|
||||
private static double GetNewWidth(double currentHeight, double currentWidth, double newHeight)
|
||||
{
|
||||
double scaleFactor = newHeight;
|
||||
scaleFactor /= currentHeight;
|
||||
scaleFactor *= currentWidth;
|
||||
|
||||
return scaleFactor;
|
||||
}
|
||||
/// <returns>the new width</returns>
|
||||
private static int GetNewWidth(int currentHeight, int currentWidth, int newHeight)
|
||||
=> Convert.ToInt32((double)newHeight / currentHeight * currentWidth);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the new height.
|
||||
|
@ -79,13 +73,7 @@ namespace MediaBrowser.Model.Drawing
|
|||
/// <param name="currentWidth">Width of the current.</param>
|
||||
/// <param name="newWidth">The new width.</param>
|
||||
/// <returns>System.Double.</returns>
|
||||
private static double GetNewHeight(double currentHeight, double currentWidth, double newWidth)
|
||||
{
|
||||
double scaleFactor = newWidth;
|
||||
scaleFactor /= currentWidth;
|
||||
scaleFactor *= currentHeight;
|
||||
|
||||
return scaleFactor;
|
||||
}
|
||||
private static int GetNewHeight(int currentHeight, int currentWidth, int newWidth)
|
||||
=> Convert.ToInt32((double)newWidth / currentWidth * currentHeight);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,36 +1,23 @@
|
|||
using System.Globalization;
|
||||
|
||||
namespace MediaBrowser.Model.Drawing
|
||||
{
|
||||
/// <summary>
|
||||
/// Struct ImageSize
|
||||
/// </summary>
|
||||
public struct ImageSize
|
||||
public struct ImageDimensions
|
||||
{
|
||||
private double _height;
|
||||
private double _width;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the height.
|
||||
/// </summary>
|
||||
/// <value>The height.</value>
|
||||
public double Height
|
||||
{
|
||||
get => _height;
|
||||
set => _height = value;
|
||||
}
|
||||
public int Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the width.
|
||||
/// </summary>
|
||||
/// <value>The width.</value>
|
||||
public double Width
|
||||
{
|
||||
get => _width;
|
||||
set => _width = value;
|
||||
}
|
||||
public int Width { get; set; }
|
||||
|
||||
public bool Equals(ImageSize size)
|
||||
public bool Equals(ImageDimensions size)
|
||||
{
|
||||
return Width.Equals(size.Width) && Height.Equals(size.Height);
|
||||
}
|
||||
|
@ -40,46 +27,10 @@ namespace MediaBrowser.Model.Drawing
|
|||
return string.Format("{0}-{1}", Width, Height);
|
||||
}
|
||||
|
||||
public ImageSize(string value)
|
||||
public ImageDimensions(int width, int height)
|
||||
{
|
||||
_width = 0;
|
||||
|
||||
_height = 0;
|
||||
|
||||
ParseValue(value);
|
||||
}
|
||||
|
||||
public ImageSize(int width, int height)
|
||||
{
|
||||
_width = width;
|
||||
_height = height;
|
||||
}
|
||||
|
||||
public ImageSize(double width, double height)
|
||||
{
|
||||
_width = width;
|
||||
_height = height;
|
||||
}
|
||||
|
||||
private void ParseValue(string value)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(value))
|
||||
{
|
||||
string[] parts = value.Split('-');
|
||||
|
||||
if (parts.Length == 2)
|
||||
{
|
||||
if (double.TryParse(parts[0], NumberStyles.Any, CultureInfo.InvariantCulture, out var val))
|
||||
{
|
||||
_width = val;
|
||||
}
|
||||
|
||||
if (double.TryParse(parts[1], NumberStyles.Any, CultureInfo.InvariantCulture, out val))
|
||||
{
|
||||
_height = val;
|
||||
}
|
||||
}
|
||||
}
|
||||
Width = width;
|
||||
Height = height;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user