有没有什么明显的方法可以解决我没有注意到的问题呢?我只是想做些缩略图。
发布于 2008-11-08 07:15:38
定义最大大小。然后,通过获取min(maxwidth/width, maxheight/height)来计算调整比率。
合适的大小是oldsize*ratio。
当然,还有一个库方法可以做到这一点:Image.thumbnail方法。
下面是PIL documentation中的一个(编辑过的)示例。
import os, sys
import Image
size = 128, 128
for infile in sys.argv[1:]:
outfile = os.path.splitext(infile)[0] + ".thumbnail"
if infile != outfile:
try:
im = Image.open(infile)
im.thumbnail(size, Image.ANTIALIAS)
im.save(outfile, "JPEG")
except IOError:
print "cannot create thumbnail for '%s'" % infile发布于 2009-01-16 19:12:07
此脚本将使用PIL (Python image Library)将图像(somepic.jpg)的大小调整为300像素的宽度和与新宽度成比例的高度。它通过确定300像素占原始宽度(img.size)的百分比,然后将原始高度(img.size1)乘以该百分比来实现此目的。将"basewidth“更改为任何其他数字,即可更改图像的默认宽度。
from PIL import Image
basewidth = 300
img = Image.open('somepic.jpg')
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), Image.ANTIALIAS)
img.save('somepic.jpg')发布于 2009-06-02 16:03:08
我还推荐使用PIL的缩略图方法,因为它消除了所有的比率问题。
不过,有一个重要的提示:替换
im.thumbnail(size)使用
im.thumbnail(size,Image.ANTIALIAS)默认情况下,PIL使用Image.NEAREST过滤器来调整大小,这会导致良好的性能,但质量较差。
https://stackoverflow.com/questions/273946
复制相似问题