using System.IO;
using SixLabors.ImageSharp;
using Umbraco.Cms.Core.Media;
using Size = System.Drawing.Size;
namespace Umbraco.Cms.Infrastructure.Media
{
internal class ImageSharpDimensionExtractor : IImageDimensionExtractor
{
private readonly Configuration _configuration;
///
/// Initializes a new instance of the class.
///
/// The configuration.
public ImageSharpDimensionExtractor(Configuration configuration)
=> _configuration = configuration;
///
/// Gets the dimensions of an image.
///
/// A stream containing the image bytes.
///
/// The dimension of the image.
///
public Size? GetDimensions(Stream? stream)
{
Size? size = null;
IImageInfo imageInfo = Image.Identify(_configuration, stream);
if (imageInfo != null)
{
size = new Size(imageInfo.Width, imageInfo.Height);
}
return size;
}
}
}