XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.XApp.Core

【DLL】XApp开发核心支持

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEExtension.NetCore.ImplExtension;

namespace XFEExtension.NetCore.XApp.Core;

/// <summary>
/// XApp图片文件
/// </summary>
/// <param name="fileType">文件类型</param>
/// <param name="fileName">文件名</param>
/// <param name="imageBase64String">图片Base64字符串</param>
/// <param name="imageType">图片类型</param>
public abstract class XAppImage(XAppFileType fileType, string fileName, string imageBase64String, ImageType imageType) : XAppFile(fileType, fileName, imageBase64String)
{
    /// <summary>
    /// 图片Base64字符串
    /// </summary>
    public string ImageBase64String { get; set; } = imageBase64String;
    /// <summary>
    /// 图片类型
    /// </summary>
    public ImageType ImageType { get; set; } = imageType;
    /// <summary>
    /// 从图片中读取
    /// </summary>
    /// <param name="xAppFileType">文件类型</param>
    /// <param name="fileName">文件名</param>
    /// <returns></returns>
    public static XAppImage FromImage(XAppFileType xAppFileType, string fileName) => new XAppImageImpl(xAppFileType, fileName, Convert.ToBase64String(File.ReadAllBytes(fileName)), GetImageType(Path.GetExtension(fileName)));
    /// <summary>
    /// 获取图片类型
    /// </summary>
    /// <param name="extension">文件扩展名</param>
    /// <returns></returns>
    /// <exception cref="XAppException"></exception>
    public static ImageType GetImageType(string extension) => extension.ToLower() switch
    {
        ".png" => ImageType.Png,
        ".jpg" => ImageType.Jpg,
        ".jpeg" => ImageType.Jpeg,
        ".bmp" => ImageType.Bmp,
        ".gif" => ImageType.Gif,
        _ => throw new XAppException("不支持的图片格式")
    };
}