Python generates thumbnails of a specified size

From , 3 Years ago, written in Python, viewed 236 times.
URL https://pastebin.vip/view/c688defd
  1. def MakeThumb(path, sizes=(75, 32, 16)):
  2.     """
  3.    缩略图生成程序 by Neil Chen
  4.    sizes 参数传递要生成的尺寸,可以生成多种尺寸
  5.    """
  6.     base, ext = os.path.splitext(path)
  7.     try:
  8.         im = Image.open(path)
  9.     except IOError:
  10.         return
  11.     mode = im.mode
  12.     if mode not in ('L', 'RGB'):
  13.         if mode == 'RGBA':
  14.             # 透明图片需要加白色底
  15.             alpha = im.split()[3]
  16.             bgmask = alpha.point(lambda x: 255-x)
  17.             im = im.convert('RGB')
  18.             # paste(color, box, mask)
  19.             im.paste((255,255,255), None, bgmask)
  20.         else:
  21.             im = im.convert('RGB')
  22.  
  23.     width, height = im.size
  24.     if width == height:
  25.         region = im
  26.     else:
  27.         if width > height:
  28.             delta = (width - height)/2
  29.             box = (delta, 0, delta+height, height)
  30.         else:
  31.             delta = (height - width)/2
  32.             box = (0, delta, width, delta+width)
  33.         region = im.crop(box)
  34.  
  35.     for size in sizes:
  36.         filename = base + "_" + "%sx%s" % (str(size), str(size)) + ".jpg"
  37.         thumb = region.resize((size,size), Image.ANTIALIAS)
  38.         thumb.save(filename, quality=100) # 默认 JPEG 保存质量是 75, 不太清楚。可选值(0~100)
  39. #//python/8457

Reply to "Python generates thumbnails of a specified size"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website