blob: 5a2814321b55f694032f0f0a658192de00151002 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
using System.ComponentModel;
using ImageMagick;
namespace Spacebar.AdminApi.TestClient.Services;
public static class Mimes {
private static string PrintLogged(string msg, string mime) {
Console.WriteLine($"{msg}: {mime}");
return mime;
}
public static MagickFormat GetFormatForExtension(string extension) {
extension = extension.ToLower();
// ban some values...
if (extension == "screenshot") throw new AccessViolationException("Disallowed extension: " + extension);
var matchingFormat = Enum.GetNames(typeof(MagickFormat)).FirstOrDefault(f => f.ToLower() == extension);
if (string.IsNullOrWhiteSpace(matchingFormat)) throw new InvalidEnumArgumentException("Unknown format: " + extension);
if (Enum.TryParse(matchingFormat, out MagickFormat fmt)) {
return fmt;
}
throw new InvalidEnumArgumentException("Unknown format: " + extension);
}
public static string GetMime(MagickFormat fmt) => fmt switch {
MagickFormat.Png => "image/png",
MagickFormat.Jpeg => "image/jpeg",
MagickFormat.Gif => "image/gif",
MagickFormat.Bmp => "image/bmp",
MagickFormat.Tiff => "image/tiff",
MagickFormat.WebP => "image/webp",
_ => PrintLogged("Unknown mime for format " + fmt.ToString() + "!", "application/octet-stream")
};
}
|