Skip to content

Commit ea490c2

Browse files
committed
拆分方法
1 parent 82db9af commit ea490c2

File tree

1 file changed

+32
-16
lines changed

1 file changed

+32
-16
lines changed

src/MediaConverters/MediaConverters.Lib/Imaging/Effect/SoftEdgeHelper.cs

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
using System.Linq;
88
using System.Text;
99
using System.Threading.Tasks;
10+
using SixLabors.ImageSharp;
11+
using SixLabors.ImageSharp.Processing;
1012

1113
namespace DotNetCampus.MediaConverters.Imaging.Effect;
1214

13-
public class SoftEdgeHelper
15+
public static class SoftEdgeHelper
1416
{
1517
/// <summary>
1618
/// 创建柔化边缘蒙层
@@ -30,21 +32,9 @@ public static void SetSoftEdgeMask(SixLabors.ImageSharp.Image<Rgba32> bitmap, fl
3032
var offsetX = (int) Math.Round(radius / 4.0);
3133
var offsetY = (int) Math.Round(radius / 4.0);
3234

33-
var source = new byte[cols, rows];
34-
// 创建Alpha通道蒙层Maps
35-
bitmap.ProcessPixelRows(pixelAccessor
36-
=>
37-
{
38-
for (var row = 0; row < rows; row++)
39-
{
40-
var pixelRow = pixelAccessor.GetRowSpan(row);
41-
for (var col = 0; col < cols; col++)
42-
{
43-
var pixel = pixelRow[col];
44-
source[col, row] = pixel.A == 0 ? (byte) 0 : byte.MaxValue;
45-
}
46-
}
47-
});
35+
var inputSource = CreateSoftEdgeAlphaMask(bitmap);
36+
37+
var source = inputSource;
4838

4939
//腐蚀
5040
byte[/*cols*/, /*rows*/]? erodeMask = null;
@@ -112,6 +102,32 @@ public static void SetSoftEdgeMask(SixLabors.ImageSharp.Image<Rgba32> bitmap, fl
112102
});
113103
}
114104

105+
/// <summary>
106+
/// 创建Alpha通道蒙层Maps
107+
/// </summary>
108+
private static byte[,] CreateSoftEdgeAlphaMask(Image<Rgba32> bitmap)
109+
{
110+
var cols = bitmap.Width;
111+
var rows = bitmap.Height;
112+
113+
var inputSource = new byte[cols, rows];
114+
// 创建Alpha通道蒙层Maps
115+
bitmap.ProcessPixelRows(pixelAccessor
116+
=>
117+
{
118+
for (var row = 0; row < rows; row++)
119+
{
120+
var pixelRow = pixelAccessor.GetRowSpan(row);
121+
for (var col = 0; col < cols; col++)
122+
{
123+
var pixel = pixelRow[col];
124+
inputSource[col, row] = pixel.A == 0 ? (byte) 0 : byte.MaxValue;
125+
}
126+
}
127+
});
128+
return inputSource;
129+
}
130+
115131
/// <summary>
116132
/// 图像腐蚀
117133
/// </summary>

0 commit comments

Comments
 (0)