@@ -102,7 +102,7 @@ private GilbertCurve(int width, int height, int[] pixels, Color[] palette, int[]
102102 DITHER_MAX = 25 ;
103103 }
104104
105- var edge = m_hasAlpha ? 1 : Math . Exp ( weight ) + .25 ;
105+ var edge = m_hasAlpha ? 1 : Math . Exp ( weight ) + .25 ;
106106 var deviation = ! m_hasAlpha && weight > .002 ? .25 : 1 ;
107107 ditherMax = ( m_hasAlpha || DITHER_MAX > 9 ) ? ( byte ) BitmapUtilities . Sqr ( Math . Sqrt ( DITHER_MAX ) + edge * deviation ) : ( byte ) ( DITHER_MAX * 1.5 ) ;
108108 int density = palette . Length > 16 ? 3200 : 1500 ;
@@ -145,7 +145,7 @@ private int DitherPixel(int x, int y, Color c2, float beta)
145145 else if ( palette . Length <= 4 || CIELABConvertor . Y_Diff ( pixel , c2 ) < ( 2 * acceptedDiff ) ) {
146146 if ( palette . Length <= 128 || BlueNoise . TELL_BLUE_NOISE [ bidx & 4095 ] > 0 )
147147 {
148- if ( palette . Length > 32 )
148+ if ( palette . Length > 64 )
149149 {
150150 var kappa = saliencies [ bidx ] < .6f ? beta * .15f / saliencies [ bidx ] : beta * .4f / saliencies [ bidx ] ;
151151 c2 = BlueNoise . Diffuse ( pixel , palette [ qPixelIndex ] , kappa , strength , x , y ) ;
@@ -162,13 +162,13 @@ private int DitherPixel(int x, int y, Color c2, float beta)
162162 var kappa = saliencies [ bidx ] < .4f ? beta * .4f * saliencies [ bidx ] : beta * .4f / saliencies [ bidx ] ;
163163 var c1 = Color . FromArgb ( a_pix , r_pix , g_pix , b_pix ) ;
164164 if ( palette . Length > 32 )
165- kappa = beta * NormalDistribution ( beta , 2f ) * saliencies [ bidx ] ;
165+ kappa = beta * NormalDistribution ( saliencies [ bidx ] , 2f ) ;
166166 else
167167 {
168168 if ( weight >= .0015 && saliencies [ bidx ] < .6 )
169169 c1 = pixel ;
170170 if ( saliencies [ bidx ] < .6 )
171- kappa = beta * NormalDistribution ( beta , weight < .0008 ? 2.5f : 1.75f ) * saliencies [ bidx ] ;
171+ kappa = beta * NormalDistribution ( saliencies [ bidx ] , weight < .0008 ? 2.5f : 1.75f ) ;
172172 else if ( palette . Length >= 32 || CIELABConvertor . Y_Diff ( c1 , c2 ) > ( beta * Math . PI * acceptedDiff ) )
173173 {
174174 if ( saliencies [ bidx ] < .9 )
@@ -188,8 +188,8 @@ private int DitherPixel(int x, int y, Color c2, float beta)
188188 c2 = Color . FromArgb ( a_pix , r_pix , g_pix , b_pix ) ;
189189 }
190190
191- if ( ! sortedByYDiff && palette . Length > 32 && ( palette . Length <= 64 || weight >= .02 ) && CIELABConvertor . Y_Diff ( pixel , c2 ) > margin - 1 )
192- c2 = BlueNoise . Diffuse ( pixel , palette [ qPixelIndex ] , beta * NormalDistribution ( beta , palette . Length / 128f ) * saliencies [ bidx ] , strength , x , y ) ;
191+ if ( DITHER_MAX < 16 && palette . Length > 4 && saliencies [ bidx ] < .6f && CIELABConvertor . Y_Diff ( pixel , c2 ) > margin - 1 )
192+ c2 = Color . FromArgb ( a_pix , r_pix , g_pix , b_pix ) ;
193193 if ( beta > 1f && CIELABConvertor . Y_Diff ( pixel , c2 ) > DITHER_MAX )
194194 c2 = Color . FromArgb ( a_pix , r_pix , g_pix , b_pix ) ;
195195
0 commit comments