def scale_to_max_size(image, max_width, max_height):
    # resize proportinal
    width, height = image.size

    # TODO: Translate to english
    # Erechne Proportionen zwischen Soll-Weite und Ist-Weite und zwischen
    # Soll-Hoehe und Ist-Hoehe

    prop_width = float(max_width) / width
    prop_height = float(max_height) / height

    # TODO: Translate to english
    # Die kleinere Proportion (oder Faktor oder Quotient) der beiden kommt fuer
    # beide Kanten (da Proportional) zur Anwendung. Das bedeutet die uebrige
    # Kante ist auf jeden Fall kleiner als gewuenscht (da Multiplikation mit
    # Faktor).

    if prop_height < prop_width:
        width = int(prop_height * width)
        image = image.resize((width, max_height), Image.ANTIALIAS)
    else:
        height = int(prop_width * height)
        image = image.resize((max_width, height), Image.ANTIALIAS)

    return image
This method sets the __cancel flag to True. Canceling the animation
dataset/ETHPy150Open diefenbach/django-lfs/lfs/utils/images.py/scale_to_max_size--crossover with--dataset/ETHPy150Open GelaniNijraj/PyMaterial/MAnimations/MAnimator.py/MAnimator.cancel