@@ -1843,24 +1843,23 @@ def blend_hsv(self, rgb, intensity, hsv_max_sat=None, hsv_max_val=None,
1843
1843
intensity = intensity [..., 0 ]
1844
1844
intensity = 2 * intensity - 1
1845
1845
1846
- # convert to rgb, then rgb to hsv
1846
+ # Convert to rgb, then rgb to hsv
1847
1847
hsv = rgb_to_hsv (rgb [:, :, 0 :3 ])
1848
-
1849
- # modify hsv values to simulate illumination.
1850
- np .putmask (hsv [:, :, 1 ], # i.e. A[mask] = B[mask].
1851
- (np .abs (hsv [:, :, 1 ]) > 1.e-10 ) & (intensity > 0 ),
1852
- (1 - intensity ) * hsv [:, :, 1 ] + intensity * hsv_max_sat )
1853
- np .putmask (hsv [:, :, 2 ],
1854
- intensity > 0 ,
1855
- (1 - intensity ) * hsv [:, :, 2 ] + intensity * hsv_max_val )
1856
- np .putmask (hsv [:, :, 1 ],
1857
- (np .abs (hsv [:, :, 1 ]) > 1.e-10 ) & (intensity < 0 ),
1858
- (1 + intensity ) * hsv [:, :, 1 ] - intensity * hsv_min_sat )
1859
- np .putmask (hsv [:, :, 2 ],
1860
- intensity < 0 ,
1861
- (1 + intensity ) * hsv [:, :, 2 ] - intensity * hsv_min_val )
1848
+ hue , sat , val = np .moveaxis (hsv , - 1 , 0 )
1849
+
1850
+ # Modify hsv values (in place) to simulate illumination.
1851
+ # putmask(A, mask, B) <=> A[mask] = B[mask]
1852
+ np .putmask (sat , (np .abs (sat ) > 1.e-10 ) & (intensity > 0 ),
1853
+ (1 - intensity ) * sat + intensity * hsv_max_sat )
1854
+ np .putmask (sat , (np .abs (sat ) > 1.e-10 ) & (intensity < 0 ),
1855
+ (1 + intensity ) * sat - intensity * hsv_min_sat )
1856
+ np .putmask (val , intensity > 0 ,
1857
+ (1 - intensity ) * val + intensity * hsv_max_val )
1858
+ np .putmask (val , intensity < 0 ,
1859
+ (1 + intensity ) * val - intensity * hsv_min_val )
1862
1860
np .clip (hsv [:, :, 1 :], 0 , 1 , out = hsv [:, :, 1 :])
1863
- # convert modified hsv back to rgb.
1861
+
1862
+ # Convert modified hsv back to rgb.
1864
1863
return hsv_to_rgb (hsv )
1865
1864
1866
1865
def blend_soft_light (self , rgb , intensity ):
0 commit comments