Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
Jpg.cs
浏览该文件的文档.
1using SixLabors.ImageSharp;
2using SixLabors.ImageSharp.Formats.Jpeg;
3
4namespace Engine.Media {
5 public static class Jpg {
6 public static bool IsJpgStream(Stream stream) {
7 ArgumentNullException.ThrowIfNull(stream);
8 return SixLabors.ImageSharp.Image.DetectFormat(stream).Name == "JPEG";
9 }
10
11 public static Image Load(Stream stream) {
12 ArgumentNullException.ThrowIfNull(stream);
13 string formatName = SixLabors.ImageSharp.Image.DetectFormat(stream).Name;
14 return formatName != "JPEG" ? throw new FormatException($"Image format({formatName}) is not Jpeg") : Image.Load(stream);
15 }
16
17 public static void Save(Image image, Stream stream, int quality, bool sync = false) {
18 ArgumentNullException.ThrowIfNull(image);
19 ArgumentNullException.ThrowIfNull(stream);
20 if (quality < 0
21 || quality > 100) {
22 throw new ArgumentOutOfRangeException(nameof(quality));
23 }
24 JpegEncoder encoder = new() { Quality = quality, ColorType = JpegEncodingColor.YCbCrRatio420 };
25 if (sync) {
26 image.m_trueImage.SaveAsJpeg(stream, encoder);
27 }
28 else {
29 image.m_trueImage.SaveAsJpegAsync(stream, encoder);
30 }
31 }
32 }
33}
static Image Load(Stream stream, ImageFileFormat format)
readonly Image< Rgba32 > m_trueImage
static void Save(Image image, Stream stream, int quality, bool sync=false)
定义 Jpg.cs:17
static bool IsJpgStream(Stream stream)
定义 Jpg.cs:6
static Image Load(Stream stream)
定义 Jpg.cs:11