Skip to content

Commit

Permalink
Changed _limit_signed_rational
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Dec 31, 2019
1 parent cb73b56 commit d0c78ef
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions src/PIL/TiffImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,20 +263,18 @@ def _limit_rational(val, max_val):
return n_d[::-1] if inv else n_d


def _limit_signed_rational(frac, max_val, min_val):
if frac >= 0:
return _limit_rational(frac, max_val)
def _limit_signed_rational(val, max_val, min_val):
frac = Fraction(val)
n_d = frac.numerator, frac.denominator

max_abs = max(max_val, abs(min_val))
if max(n_d) > max_val:
n_d = _limit_rational(val, max_val)

num, denom = _limit_rational(frac, max_abs)
if denom == max_abs or num == max_abs:
if (num < 0 or denom < 0) and num != denom:
num, denom = num * -1, denom * -1
else:
num, denom = _limit_rational(frac, max_val)
if min(n_d) < min_val:
val = Fraction(*n_d)
n_d = _limit_rational(val, abs(min_val))

return num, denom
return n_d


##
Expand Down

0 comments on commit d0c78ef

Please sign in to comment.