Files
kompas3d-mcp/src/Kompas.Mcp.Core/Vision/RasterImageFormat.cs
T
mikhail 579b191d7c refactor(core): унификация COM-хелперов и классификаторов топологии
Вынесены общие 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>
2026-05-26 20:15:43 +03:00

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)),
};
}