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)
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)
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