@@ -12,6 +12,7 @@ namespace ImageMagick;
12
12
/// </summary>
13
13
public partial class ChannelPerceptualHash : IChannelPerceptualHash
14
14
{
15
+ private const int _maximumNumberOfPerceptualHashes = 7 ;
15
16
private readonly Dictionary < ColorSpace , HuPhashList > _huPhashes = new ( ) ;
16
17
private string _hash = string . Empty ;
17
18
@@ -44,7 +45,7 @@ internal ChannelPerceptualHash(PixelChannel channel, ColorSpace[] colorSpaces, I
44
45
/// <returns>The hu perceptual hash for the specified colorspace.</returns>
45
46
public double HuPhash ( ColorSpace colorSpace , int index )
46
47
{
47
- Throw . IfOutOfRange ( index , 7 ) ;
48
+ Throw . IfOutOfRange ( index , _maximumNumberOfPerceptualHashes ) ;
48
49
49
50
if ( ! _huPhashes . TryGetValue ( colorSpace , out var huPhashList ) )
50
51
{
@@ -67,7 +68,7 @@ public double SumSquaredDistance(IChannelPerceptualHash other)
67
68
68
69
foreach ( var huPhashList in _huPhashes )
69
70
{
70
- for ( var i = 0 ; i < 7 ; i ++ )
71
+ for ( var i = 0 ; i < _maximumNumberOfPerceptualHashes ; i ++ )
71
72
{
72
73
var a = huPhashList . Value [ i ] ;
73
74
var b = other . HuPhash ( huPhashList . Key , i ) ;
@@ -110,7 +111,7 @@ private void ParseHash(ColorSpace[] colorSpaces, string hash)
110
111
foreach ( var colorSpace in colorSpaces )
111
112
{
112
113
var huPhashList = new HuPhashList ( ) ;
113
- for ( var i = 0 ; i < 7 ; i ++ , offset += 5 )
114
+ for ( var i = 0 ; i < _maximumNumberOfPerceptualHashes ; i ++ , offset += 5 )
114
115
{
115
116
if ( ! int . TryParse ( hash . Substring ( offset , 5 ) , NumberStyles . HexNumber , CultureInfo . InvariantCulture , out var hex ) )
116
117
throw new ArgumentException ( "Invalid hash specified" , nameof ( hash ) ) ;
@@ -132,7 +133,7 @@ private void SetHash()
132
133
133
134
foreach ( var huPhashList in _huPhashes . Values )
134
135
{
135
- for ( var i = 0 ; i < 7 ; i ++ )
136
+ for ( var i = 0 ; i < _maximumNumberOfPerceptualHashes ; i ++ )
136
137
{
137
138
var value = huPhashList [ i ] ;
138
139
@@ -156,7 +157,7 @@ private void AddHuPhash(NativeChannelPerceptualHash instance, ColorSpace colorSp
156
157
{
157
158
var huPhashList = new HuPhashList ( ) ;
158
159
159
- for ( var i = 0 ; i < 7 ; i ++ )
160
+ for ( var i = 0 ; i < _maximumNumberOfPerceptualHashes ; i ++ )
160
161
huPhashList [ i ] = instance . GetHuPhash ( colorSpaceIndex , ( uint ) i ) ;
161
162
162
163
_huPhashes [ colorSpace ] = huPhashList ;
@@ -172,9 +173,7 @@ public HuPhashList()
172
173
}
173
174
174
175
public HuPhashList ( double [ ] values )
175
- {
176
- _values = values ;
177
- }
176
+ => _values = values ;
178
177
179
178
public double this [ int index ]
180
179
{
0 commit comments