当前位置:  开发笔记 > 编程语言 > 正文

什么是这种裁剪算法的更优雅的改述?(在Python中)

如何解决《什么是这种裁剪算法的更优雅的改述?(在Python中)》经验,为你挑选了2个好方法。

我想在我的Django应用程序中裁剪缩略图,以便我得到一个显示图像中心的二次图像.我同意,这不是很难.

我已经写了一些代码来完成这个,但不知怎的,它缺乏某种优雅.我不想打代码高尔夫球,但我认为必须有一种方法来表达这种更短更多的pythonic.

x = y = 200 # intended size
image = Image.open(filename)
width = image.size[0]
height = image.size[1]
if (width > height):
    crop_box = ( ((width - height)/2), 0, ((width - height)/2)+height, height )
    image = image.crop(crop_box)
elif (height > width):
    crop_box = ( 0, ((height - width)/2), width, ((height - width)/2)+width )
    image = image.crop(crop_box)
image.thumbnail([x, y], Image.ANTIALIAS)

你有什么想法吗?

编辑:解释x,y



1> Daniel Brück..:

我认为应该这样做.

size = min(image.Size)

originX = image.Size[0] / 2 - size / 2
originY = image.Size[1] / 2 - size / 2

cropBox = (originX, originY, originX + size, originY + size)



2> Steef..:

fit()PIL ImageOps模块中的功能可以满足您的需求:

ImageOps.fit(image, (min(*image.size),) * 2, Image.ANTIALIAS, 0, (.5, .5))

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有