【发布时间】:2014-08-05 11:11:21
【问题描述】:
我是 Python 的新手,这将是一个非常基本的问题。我有一个基于图像的网站,我正在使用 Django 开发它。现在我想调整图像的大小,或者你可以说我想最小化图像的大小。有不同大小的图像可用,一些图像宽度最大,一些图像高度最大,我想调整图像大小而不改变那里的形状。
以下是我的网站中使用的图片尺寸示例。
这里第一个图像的宽度最大,第二个图像的高度最大,它们的尺寸真的很大。所以它们需要调整大小,或者更确切地说,这些图像需要最小化。所以我使用了PIL如下。
from PIL import Image,ImageDraw, ImageFont, ImageEnhance
def image_resize(request,image_id):
photo = Photo.objects.get(pk=image_id)
img = Image.open(photo.photo.file)
image = img.resize((1000, 560), Image.ANTIALIAS)
image.save()
所以这个函数返回所有宽度为 1000 和高度为 560 的图像。但我不想调整所有具有相同宽度和高度的图像的大小,而是我想调整每个图像的大小,保持自己的 形状。那就是 shape 将是相同的,但图像将被调整大小。我该怎么做?我真的是 python 新手。
【问题讨论】:
-
1. Get the size of the image; 2.计算新尺寸,保持相同的高/宽比例; 3. 调整到新大小。到目前为止,您甚至还没有尝试过第 1 步和第 2 步。
-
一个非常相似的问题在这里详细回答:stackoverflow.com/questions/273946/…
-
我想调整图像的大小,保持最大边。也就是说,如果最大边是图像的宽度,那么宽度将不变,高度将调整大小,反之亦然。是否可以?
-
是的,当然可以,但这不是代码编写服务。但是,我认为这没有任何意义 - 您希望保持宽度和高度之间的 ratio 以避免“挤压”图像,并且必须减小高度、宽度或两者以修复你的最大值。保持一个固定而改变另一个会扭曲图像。
标签: python django image python-imaging-library