Пример #1
0
def scale_one(size, smooth, sourceImage, targetImage):
    """缩小单个图片
    
    Arguments:
        size {[type]} -- [description]
        smooth {[type]} -- [description]
        sourceImage {[type]} -- [description]
        targetImage {[type]} -- [description]
    
    Returns:
        [type] -- [description]
    """
    oldImage = Image.from_file(sourceImage)
    if oldImage.width <= size and oldImage.height <= size:
        oldImage.save(targetImage)
        return Result(1, 0, targetImage)
    else:
        if smooth:
            scale = min(size / oldImage.width, size / oldImage.height)
            newImage = oldImage.scale(scale)
        else:
            stride = int(
                math.ceil(max(oldImage.width / size, oldImage.height / size)))
            newImage = oldImage.subsample(stride)
        newImage.save(targetImage)
        return Result(0, 1, targetImage)
Пример #2
0
def scale_one(size, smooth, sourceImage, targetImage):
    oldImage = Image.from_file(sourceImage)
    if oldImage.width <= size and oldImage.height <= size:
        oldImage.save(targetImage)
        return Result(1, 0, targetImage)
    else:
        if smooth:
            scale = min(size / oldImage.width, size / oldImage.height)
            newImage = oldImage.scale(scale)
        else:
            stride = int(math.ceil(max(oldImage.width / size,
                                       oldImage.height / size)))
            newImage = oldImage.subsample(stride)
        newImage.save(targetImage)
        return Result(0, 1, targetImage)
Пример #3
0
def scale_one(size, smooth, sourceImage, targetImage):
    oldImage = Image.from_file(sourceImage)  # load source image
    if oldImage.width <= size and oldImage.height <= size:  # size: specified width and height, default values: 400, 400
        oldImage.save(targetImage)  # save it as target filename
        return Result(1, 0, targetImage)  # 1: copied  0: scaled
    else:
        if smooth:
            scale = min(size / oldImage.width,
                        size / oldImage.height)  # 0 < scale < 1
            newImage = oldImage.scale(scale)
        else:
            stride = int(
                math.ceil(max(oldImage.width / size, oldImage.height /
                              size)))  # ceil refer to hands-on note
            newImage = oldImage.subsample(
                stride)  # make the new image size into 1/stride
        newImage.save(targetImage)
        return Result(0, 1, targetImage)  # 0: copied   1: scaled