diff --git a/Tests/images/variation_adobe_name.png b/Tests/images/variation_adobe_name.png index 11ceaf6e65b..5168e04b99b 100644 Binary files a/Tests/images/variation_adobe_name.png and b/Tests/images/variation_adobe_name.png differ diff --git a/Tests/images/variation_adobe_older_harfbuzz_name.png b/Tests/images/variation_adobe_older_harfbuzz_name.png index 2adb517a759..fa0e307b4f6 100644 Binary files a/Tests/images/variation_adobe_older_harfbuzz_name.png and b/Tests/images/variation_adobe_older_harfbuzz_name.png differ diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index f37f7e5236e..306a2f1bff6 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -746,12 +746,14 @@ def test_variation_set_by_name(font): _check_text(font, "Tests/images/variation_adobe.png", 11) for name in ["Bold", b"Bold"]: font.set_variation_by_name(name) - _check_text(font, "Tests/images/variation_adobe_name.png", 11) + assert font.getname()[1] == "Bold" + _check_text(font, "Tests/images/variation_adobe_name.png", 16) font = ImageFont.truetype("Tests/fonts/TINY5x3GX.ttf", 36) _check_text(font, "Tests/images/variation_tiny.png", 40) for name in ["200", b"200"]: font.set_variation_by_name(name) + assert font.getname()[1] == "200" _check_text(font, "Tests/images/variation_tiny_name.png", 40) diff --git a/src/PIL/ImageFont.py b/src/PIL/ImageFont.py index b3a7cdb9880..457e906c872 100644 --- a/src/PIL/ImageFont.py +++ b/src/PIL/ImageFont.py @@ -803,7 +803,7 @@ def set_variation_by_name(self, name): names = self.get_variation_names() if not isinstance(name, bytes): name = name.encode() - index = names.index(name) + index = names.index(name) + 1 if index == getattr(self, "_last_variation_index", None): # When the same name is set twice in a row,