| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 318f6ae commit da15b12
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -83,7 +83,7 @@ def rgb_to_hls(r, g, b): | |||
| 83 | 83 | if l <= 0.5: | |
| 84 | 84 | s = rangec / sumc | |
| 85 | 85 | else: | |
| 86 | - s = rangec / (2.0-sumc) | ||
| 86 | + s = rangec / (2.0-maxc-minc) # Not always 2.0-sumc: gh-106498. | ||
| 87 | 87 | rc = (maxc-r) / rangec | |
| 88 | 88 | gc = (maxc-g) / rangec | |
| 89 | 89 | bc = (maxc-b) / rangec | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -69,6 +69,16 @@ def test_hls_values(self): | |||
| 69 | 69 | self.assertTripleEqual(hls, colorsys.rgb_to_hls(*rgb)) | |
| 70 | 70 | self.assertTripleEqual(rgb, colorsys.hls_to_rgb(*hls)) | |
| 71 | 71 | ||
| 72 | + def test_hls_nearwhite(self): # gh-106498 | ||
| 73 | + values = ( | ||
| 74 | + # rgb, hls: these do not work in reverse | ||
| 75 | + ((0.9999999999999999, 1, 1), (0.5, 1.0, 1.0)), | ||
| 76 | + ((1, 0.9999999999999999, 0.9999999999999999), (0.0, 1.0, 1.0)), | ||
| 77 | + ) | ||
| 78 | + for rgb, hls in values: | ||
| 79 | + self.assertTripleEqual(hls, colorsys.rgb_to_hls(*rgb)) | ||
| 80 | + self.assertTripleEqual((1.0, 1.0, 1.0), colorsys.hls_to_rgb(*hls)) | ||
| 81 | + | ||
| 72 | 82 | def test_yiq_roundtrip(self): | |
| 73 | 83 | for r in frange(0.0, 1.0, 0.2): | |
| 74 | 84 | for g in frange(0.0, 1.0, 0.2): | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,2 @@ | |||
| 1 | + Revert a change to :func:`colorsys.rgb_to_hls` that caused division by zero | ||
| 2 | + for certain almost-white inputs. Patch by Terry Jan Reedy. | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments