Files
ShrlAlgoToolkit/Melskin/Converters/Internal/IntensityToEmbossBlurConverter.cs

31 lines
1.4 KiB
C#
Raw Normal View History

2025-07-31 20:12:24 +08:00
using System.Globalization;
using System.Windows.Data;
2026-01-02 17:30:41 +08:00
namespace Melskin.Converters.Internal;
2025-08-12 23:08:54 +08:00
/// <summary>
/// IntensityToSlotBlurConverter 类实现 IValueConverter 接口,用于将给定的强度值转换为模糊效果的数值。
/// 此转换器接收一个 double 类型的强度值,并将其转换为对应的模糊效果大小。模糊效果的范围是从 4 到 12
/// 其中强度值越大,产生的模糊效果越强。
/// </summary>
[ValueConversion(typeof(double), typeof(double))]
internal sealed class IntensityToEmbossBlurConverter : IValueConverter
2025-07-31 20:12:24 +08:00
{
/// <summary>
2025-08-12 23:08:54 +08:00
/// Instance 是 IntensityToSlotBlurConverter 类的单例实例,用于在整个应用程序中共享同一转换器对象。
/// 通过使用此单例,可以避免在不同地方创建多个相同功能的转换器实例,从而提高性能和减少资源消耗。
2025-07-31 20:12:24 +08:00
/// </summary>
2025-08-12 23:08:54 +08:00
public static readonly IntensityToEmbossBlurConverter Instance = new();
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
2025-07-31 20:12:24 +08:00
{
2025-08-12 23:08:54 +08:00
var intensity = (double)(value ?? 1);
//数值最大的时候,模糊达到预设最大值 4~12
//return 4 + intensity * 8;
return 4 + intensity * 8;
}
2025-07-31 20:12:24 +08:00
2025-08-12 23:08:54 +08:00
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
2025-08-20 12:10:13 +08:00
return Binding.DoNothing;
2025-07-31 20:12:24 +08:00
}
2025-08-12 23:08:54 +08:00
}