python 带PIL的Django缩略图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 带PIL的Django缩略图相关的知识,希望对你有一定的参考价值。

from PIL import Image
import os.path
import StringIO

def thumbnail(filename, size=(50, 50), output_filename=None):
    image = Image.open(filename)
    if image.mode not in ('L', 'RGB'):
        image = image.convert('RGB')
    image = image.resize(size, Image.ANTIALIAS)

    # get the thumbnail data in memory.
    if not output_filename:
        output_filename = get_default_thumbnail_filename(filename)
    image.save(output_filename, image.format) 
    return output_filename

def thumbnail_string(buf, size=(50, 50)):
    f = StringIO.StringIO(buf)
    image = Image.open(f)
    if image.mode not in ('L', 'RGB'):
        image = image.convert('RGB')
    image = image.resize(size, Image.ANTIALIAS)
    o = StringIO.StringIO()
    image.save(o, "JPEG")
    return o.getvalue()
    
def get_default_thumbnail_filename(filename):
    path, ext = os.path.splitext(filename)
    return path + '.thumb.jpg'

以上是关于python 带PIL的Django缩略图的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PIL `Image` 转换为 Django`File`?

使用 Python 旋转具有 EXIF 中指定方向的图像,而不使用 PIL,包括缩略图

CPP 替代 PIL 图片处理(缩略图生成)

批量生成缩略图

如何使用 PIL 生成圆形缩略图?

有关Python的PIL库的学习体会和实例