Skip to content

Commit 17c10ae

Browse files
committed
添加更多失败理由
1 parent 1871d50 commit 17c10ae

5 files changed

Lines changed: 28 additions & 34 deletions

File tree

src/MediaConverters/MediaConverters.Lib/Imaging/Optimizations/EnhancedGraphicsMetafileOptimization.cs

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,7 @@ public static ImageFileOptimizationResult ConvertWmfOrEmfToPngFile(ImageFileOpti
3131
{
3232
context.LogMessage($"Convert wmf or emf in linux Fail. Exception: {e}");
3333

34-
return new ImageFileOptimizationResult()
35-
{
36-
OptimizedImageFile = null,
37-
Exception = e,
38-
FailureReason = ImageFileOptimizationFailureReason.NotSupported
39-
};
34+
return ImageFileOptimizationResult.FailException(e);
4035
}
4136
}
4237

@@ -116,12 +111,7 @@ ImageFileOptimizationResult ConvertSvgToPngFile(FileInfo svgImageFile)
116111
{
117112
context.LogMessage($"Convert svg to png file failed. File: '{svgImageFile.FullName}' Exception: {e}");
118113

119-
return new ImageFileOptimizationResult()
120-
{
121-
OptimizedImageFile = null,
122-
Exception = e,
123-
FailureReason = ImageFileOptimizationFailureReason.NotSupported
124-
};
114+
return ImageFileOptimizationResult.FailException(e);
125115
}
126116
}
127117
}
@@ -156,6 +146,7 @@ private static ImageFileOptimizationResult ConvertWithInkscapeLibWmf(ImageFileOp
156146
if (process?.ExitCode == 0 && File.Exists(svgFile))
157147
{
158148
// 转换成功,再次执行 SVG 转 PNG 的转换
149+
// 由于可能存在 SVG 文件中包含无效字符的问题,因此需要修复一下
159150
var convertedFile = ImageFileOptimization.FixSvgInvalidCharacter(context with
160151
{
161152
ImageFile = new FileInfo(svgFile)
@@ -214,12 +205,7 @@ private static ImageFileOptimizationResult ConvertWithInkscape(ImageFileOptimiza
214205
{
215206
// 失败了,继续调用 libwmf 进行转换
216207
context.LogMessage($"Convert emf or wmf to svg by Inkscape failed. We will continue use libwmf to convert the image. File='{file}' Exception: {e}");
217-
return new ImageFileOptimizationResult()
218-
{
219-
OptimizedImageFile = null,
220-
Exception = e,
221-
FailureReason = ImageFileOptimizationFailureReason.NotSupported,
222-
};
208+
return ImageFileOptimizationResult.FailException(e);
223209
}
224210

225211
return new ImageFileOptimizationResult()

src/MediaConverters/MediaConverters.Lib/Imaging/Optimizations/ImageFileOptimization.cs

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
1-
using SixLabors.ImageSharp;
1+
using System;
2+
using System.IO;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
using System.Xml.Linq;
6+
7+
using SixLabors.ImageSharp;
28
using SixLabors.ImageSharp.Formats.Gif;
39
using SixLabors.ImageSharp.Formats.Png;
4-
using SixLabors.ImageSharp.Metadata.Profiles.Exif;
510
using SixLabors.ImageSharp.PixelFormats;
611
using SixLabors.ImageSharp.Processing;
712

813
using SkiaSharp;
914

1015
using Svg.Skia;
1116

12-
using System;
13-
using System.IO;
14-
using System.Linq;
15-
using System.Threading;
16-
using System.Threading.Tasks;
17-
using System.Xml.Linq;
18-
1917
namespace DotNetCampus.MediaConverters.Imaging.Optimizations;
2018

2119
public static class ImageFileOptimization
@@ -91,12 +89,7 @@ public static async Task<ImageFileOptimizationResult> OptimizeImageFileAsync(Ima
9189
{
9290
context.LogMessage($"Convert SVG to PNG failed: {e}");
9391

94-
return new ImageFileOptimizationResult()
95-
{
96-
OptimizedImageFile = null,
97-
Exception = e,
98-
FailureReason = ImageFileOptimizationFailureReason.NotSupported
99-
};
92+
return ImageFileOptimizationResult.FailException(e);
10093
}
10194
}
10295
else if (IsExtension(".wmf") ||

src/MediaConverters/MediaConverters.Lib/Imaging/Optimizations/ImageFileOptimizationContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace DotNetCampus.MediaConverters.Imaging.Optimizations;
66
/// <summary>
77
/// 图片优化的上下文信息
88
/// </summary>
9-
/// <param name="ImageFile"></param>
9+
/// <param name="ImageFile">图片文件</param>
1010
/// <param name="WorkingFolder"></param>
1111
/// <param name="MaxImageWidth">限制图片的最大宽度。为空则表示不限制</param>
1212
/// <param name="MaxImageHeight">限制图片的最大高度。为空则表示不限制</param>

src/MediaConverters/MediaConverters.Lib/Imaging/Optimizations/ImageFileOptimizationFailureReason.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ public enum ImageFileOptimizationFailureReason
2727
/// </summary>
2828
NotSupported,
2929

30+
/// <summary>
31+
/// 异常
32+
/// </summary>
33+
Exception,
34+
3035
/// <summary>
3136
/// GDI 发生异常
3237
/// </summary>

src/MediaConverters/MediaConverters.Lib/Imaging/Optimizations/ImageFileOptimizationResult.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,14 @@ public void Dispose()
2929
{
3030
Image?.Dispose();
3131
}
32+
33+
public static ImageFileOptimizationResult FailException(Exception e)
34+
{
35+
return new ImageFileOptimizationResult()
36+
{
37+
OptimizedImageFile = null,
38+
Exception = e,
39+
FailureReason = ImageFileOptimizationFailureReason.Exception
40+
};
41+
}
3242
}

0 commit comments

Comments
 (0)