using System.ComponentModel ;
using System.Net.Mime ;
namespace MediaBrowser.Model.Drawing ;
/// <summary>
/// Extension class for the <see cref="ImageFormat" /> enum.
/// </summary>
public static class ImageFormatExtensions
{
/// <summary>
/// Returns the correct mime type for this <see cref="ImageFormat" />.
/// </summary>
/// <param name="format">This <see cref="ImageFormat" />.</param>
/// <exception cref="InvalidEnumArgumentException">The <paramref name="format"/> is an invalid enumeration value.</exception>
/// <returns>The correct mime type for this <see cref="ImageFormat" />.</returns>
public static string GetMimeType ( this ImageFormat format )
= > format switch
{
ImageFormat . Bmp = > "image/bmp" ,
ImageFormat . Gif = > MediaTypeNames . Image . Gif ,
ImageFormat . Jpg = > MediaTypeNames . Image . Jpeg ,
ImageFormat . Png = > "image/png" ,
ImageFormat . Webp = > "image/webp" ,
ImageFormat . Svg = > "image/svg+xml" ,
_ = > throw new InvalidEnumArgumentException ( nameof ( format ) , ( int ) format , typeof ( ImageFormat ) )
} ;
/// <summary>
/// Returns the correct extension for this <see cref="ImageFormat" />.
/// </summary>
/// <param name="format">This <see cref="ImageFormat" />.</param>
/// <exception cref="InvalidEnumArgumentException">The <paramref name="format"/> is an invalid enumeration value.</exception>
/// <returns>The correct extension for this <see cref="ImageFormat" />.</returns>
public static string GetExtension ( this ImageFormat format )
= > format switch
{
ImageFormat . Bmp = > ".bmp" ,
ImageFormat . Gif = > ".gif" ,
ImageFormat . Jpg = > ".jpg" ,
ImageFormat . Png = > ".png" ,
ImageFormat . Webp = > ".webp" ,
ImageFormat . Svg = > ".svg" ,
_ = > throw new InvalidEnumArgumentException ( nameof ( format ) , ( int ) format , typeof ( ImageFormat ) )
} ;
}