diff --git a/src/PIL/Image.py b/src/PIL/Image.py index c2eac31c730..e9fb55d6b7a 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -2368,7 +2368,7 @@ def rotate( angle: float, resample: Resampling = Resampling.NEAREST, expand: int | bool = False, - center: tuple[int, int] | None = None, + center: tuple[float, float] | None = None, translate: tuple[int, int] | None = None, fillcolor: float | tuple[float, ...] | str | None = None, ) -> Image: @@ -2436,10 +2436,7 @@ def rotate( else: post_trans = translate if center is None: - # FIXME These should be rounded to ints? - rotn_center = (w / 2.0, h / 2.0) - else: - rotn_center = center + center = (w / 2, h / 2) angle = -math.radians(angle) matrix = [ @@ -2456,10 +2453,10 @@ def transform(x, y, matrix): return a * x + b * y + c, d * x + e * y + f matrix[2], matrix[5] = transform( - -rotn_center[0] - post_trans[0], -rotn_center[1] - post_trans[1], matrix + -center[0] - post_trans[0], -center[1] - post_trans[1], matrix ) - matrix[2] += rotn_center[0] - matrix[5] += rotn_center[1] + matrix[2] += center[0] + matrix[5] += center[1] if expand: # calculate output size