网站首页 网站源码
using System.Collections.Generic;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Bmp;
using SixLabors.ImageSharp.Formats.Gif;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.Formats.Pbm;
using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.Formats.Tga;
using SixLabors.ImageSharp.Formats.Tiff;
using SixLabors.ImageSharp.Formats.Webp;
namespace Dpz.Core.Web.Library;
[Obsolete]
public class DefaultFormat : IImageFormat
{
private readonly IImageFormat? _imageFormat = null;
public DefaultFormat(string type)
{
type = type.ToLower();
switch (type)
{
case "bmp":
_imageFormat = BmpFormat.Instance;
break;
case "gif":
_imageFormat = GifFormat.Instance;
break;
case "jpeg":
case "jpg":
_imageFormat = JpegFormat.Instance;
break;
case "png":
_imageFormat = PngFormat.Instance;
break;
case "pbm":
_imageFormat = PbmFormat.Instance;
break;
case "webp":
_imageFormat = WebpFormat.Instance;
break;
case "tga":
_imageFormat = TgaFormat.Instance;
break;
case "tiff":
_imageFormat = TiffFormat.Instance;
break;
}
}
public string Name => _imageFormat?.Name ?? "";
public string DefaultMimeType => _imageFormat?.DefaultMimeType ?? "image/*";
public IEnumerable<string> MimeTypes => _imageFormat?.MimeTypes ?? new List<string>();
public IEnumerable<string> FileExtensions => _imageFormat?.FileExtensions ?? new List<string>();
}
上述代码定义了一个名为 DefaultFormat
的类,它实现了 IImageFormat
接口。这个类的主要功能是根据传入的字符串类型(表示图像格式)来选择并封装相应的图像格式实例。以下是代码的详细解释:
using
语句引入了 SixLabors.ImageSharp
库中的多个图像格式类,这些类用于处理不同类型的图像格式(如 BMP、GIF、JPEG、PNG 等)。DefaultFormat
类被标记为 [Obsolete]
,这意味着它可能在未来的版本中被弃用。IImageFormat
接口,表示它将提供图像格式相关的信息。_imageFormat
是一个可空的 IImageFormat
类型的字段,用于存储根据输入类型选择的图像格式实例。DefaultFormat(string type)
构造函数接受一个字符串参数 type
,表示图像格式的名称。type
被转换为小写,以便进行不区分大小写的比较。switch
语句,根据 type
的值选择相应的图像格式实例,并将其赋值给 _imageFormat
。支持的格式包括 BMP、GIF、JPEG、PNG、PBM、WebP、TGA 和 TIFF。Name
:返回所选图像格式的名称。如果没有选择有效的格式,则返回空字符串。DefaultMimeType
:返回所选图像格式的默认 MIME 类型。如果没有选择有效的格式,则返回 "image/*"
。MimeTypes
:返回所选图像格式支持的 MIME 类型集合。如果没有选择有效的格式,则返回一个空的列表。FileExtensions
:返回所选图像格式支持的文件扩展名集合。如果没有选择有效的格式,则返回一个空的列表。DefaultFormat
类的主要功能是根据给定的图像格式字符串,动态选择并封装相应的图像格式实例。它提供了一些属性来获取该图像格式的名称、默认 MIME 类型、支持的 MIME 类型和文件扩展名。由于该类被标记为过时,可能意味着开发者应该使用其他更现代的实现来处理图像格式。