579b191d7c
Вынесены общие ComHelper (Release + Safe-геттеры) и GeomClassifiers (FaceType/EdgeType), устранены дубли в 5+ сервисах. Освобождение doc3d RCW в GetTopPart, void-возвраты вместо фиктивных bool, HashSet для OpKinds, DocumentTypeName в паспорте модели, FileExtension без аллокаций. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
51 lines
1.9 KiB
C#
51 lines
1.9 KiB
C#
namespace Kompas.Mcp.Core.Vision;
|
|
|
|
/// <summary>Формат растра для снимка модели (значения ksRasterFormatEnum / ksRasterFormatParam.format).</summary>
|
|
public enum RasterImageFormat : short
|
|
{
|
|
Bmp = 0,
|
|
Gif = 1,
|
|
Jpg = 2,
|
|
Png = 3,
|
|
Tif = 4,
|
|
Tga = 5,
|
|
}
|
|
|
|
public static class RasterImageFormats
|
|
{
|
|
/// <summary>MIME-тип для image-контента MCP.</summary>
|
|
public static string MimeType(this RasterImageFormat format) => format switch
|
|
{
|
|
RasterImageFormat.Png => "image/png",
|
|
RasterImageFormat.Jpg => "image/jpeg",
|
|
RasterImageFormat.Bmp => "image/bmp",
|
|
RasterImageFormat.Gif => "image/gif",
|
|
RasterImageFormat.Tif => "image/tiff",
|
|
RasterImageFormat.Tga => "image/x-tga",
|
|
_ => "application/octet-stream",
|
|
};
|
|
|
|
/// <summary>Расширение файла без точки — постоянная строка без аллокации (в отличие от ToString().ToLower()).</summary>
|
|
public static string FileExtension(this RasterImageFormat format) => format switch
|
|
{
|
|
RasterImageFormat.Bmp => "bmp",
|
|
RasterImageFormat.Gif => "gif",
|
|
RasterImageFormat.Jpg => "jpg",
|
|
RasterImageFormat.Png => "png",
|
|
RasterImageFormat.Tif => "tif",
|
|
RasterImageFormat.Tga => "tga",
|
|
_ => format.ToString().ToLowerInvariant(),
|
|
};
|
|
|
|
public static RasterImageFormat Parse(string value) => value.Trim().ToLowerInvariant() switch
|
|
{
|
|
"png" => RasterImageFormat.Png,
|
|
"jpg" or "jpeg" => RasterImageFormat.Jpg,
|
|
"bmp" => RasterImageFormat.Bmp,
|
|
"gif" => RasterImageFormat.Gif,
|
|
"tif" or "tiff" => RasterImageFormat.Tif,
|
|
"tga" => RasterImageFormat.Tga,
|
|
_ => throw new ArgumentException($"Неизвестный формат растра '{value}'.", nameof(value)),
|
|
};
|
|
}
|