def resize_image_to_fit(image, dest_w, dest_h):
    """
    Resize the image to fit inside dest rectangle.  Resultant image may be smaller than target
    :param image: PIL.Image
    :param dest_w: Target width
    :param dest_h: Target height
    :return: Scaled image
    """
    dest_w = float(dest_w)
    dest_h = float(dest_h)
    dest_ratio = dest_w / dest_h

    # Calculate the apect ratio of the image
    src_w = float(image.size[0])
    src_h = float(image.size[1])
    src_ratio = src_w / src_h

    if src_ratio < dest_ratio:
        # Image is tall and thin - we need to scale to the right height and then pad
        scale = dest_h / src_h
        scaled_h = dest_h
        scaled_w = src_w * scale

    else:
        # Image is short and wide - we need to scale to the right height and then crop
        scale = dest_w / src_w
        scaled_w = dest_w
        scaled_h = src_h * scale

    scaled_image = image.resize((int(scaled_w), int(scaled_h)), PIL.Image.ANTIALIAS)

    return scaled_image
def resize_image_to_fit(image, dest_w, dest_h):
    """
    Resize the image to fit inside dest rectangle.  Resultant image may be smaller than target
    :param image: PIL.Image
    :param dest_w: Target width
    :param dest_h: Target height
    :return: Scaled image
    """
    dest_w = float(dest_w)
    dest_h = float(dest_h)
    dest_ratio = dest_w / dest_h

    # Calculate the apect ratio of the image
    src_w = float(image.size[0])
    src_h = float(image.size[1])
    src_ratio = src_w / src_h

    if src_ratio < dest_ratio:
        # Image is tall and thin - we need to scale to the right height and then pad
        scale = dest_h / src_h
        scaled_h = dest_h
        scaled_w = src_w * scale

    else:
        # Image is short and wide - we need to scale to the right height and then crop
        scale = dest_w / src_w
        scaled_w = dest_w
        scaled_h = src_h * scale

    scaled_image = image.resize((int(scaled_w), int(scaled_h)), PIL.Image.ANTIALIAS)

    return scaled_image
def resize_image_to_fit ( image , dest_w , dest_h ) : dest_w = float ( dest_w ) dest_h = float ( dest_h ) dest_ratio = dest_w / dest_h # Calculate the apect ratio of the image src_w = float ( image . size [ 0 ] ) src_h = float ( image . size [ 1 ] ) src_ratio = src_w / src_h if src_ratio < dest_ratio : # Image is tall and thin - we need to scale to the right height and then pad scale = dest_h / src_h scaled_h = dest_h scaled_w = src_w * scale else : # Image is short and wide - we need to scale to the right height and then crop scale = dest_w / src_w scaled_w = dest_w scaled_h = src_h * scale scaled_image = image . resize ( ( int ( scaled_w ) , int ( scaled_h ) ) , PIL . Image . ANTIALIAS ) return scaled_image
Resize the image to fit inside dest rectangle.  Resultant image may be smaller than target
    :param image: PIL.Image
    :param dest_w: Target width
    :param dest_h: Target height
    :return: Scaled image
Resize the image to fit inside dest rectangle . Resultant image may be smaller than target : param image : PIL . Image : param dest_w : Target width : param dest_h : Target height : return : Scaled image