python 根据图像的长边尺寸将图像调整为多种不同的尺寸。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 根据图像的长边尺寸将图像调整为多种不同的尺寸。相关的知识,希望对你有一定的参考价值。

from PIL import Image
import os
import argparse

p = argparse.ArgumentParser()
p.add_argument("img_filename")

sizes = {
  "thumbnail": 100,
  "small": 240,
  "small 320": 320,
  "medium": 500,
  "medium 640": 640,
  "medium 800": 800,
  "large": 1024,
  "large 1600": 1600,
  "large 2048": 2048
}

def new_size(long_edge_px, current_dimensions):
  cx, cy = current_dimensions
  if cx >= cy:
    ratio = float(cx)/float(cy)
    return (long_edge_px, int(long_edge_px/ratio))
  else:
    ratio = float(cy)/float(cx)
    return (int(long_edge_px/ratio), long_edge_px)

def resize_and_save(filename, long_edge_px, new_filename):
  print "Resizing %s to %spx and saving as %s" % (
    filename, long_edge_px, new_filename)
  img = Image.open(filename)
  img.resize(new_size(long_edge_px, img.size), Image.ANTIALIAS).save(new_filename)

if __name__ == "__main__":
  args = p.parse_args()

  for size_name, size in sizes.items():
    filename, ext = os.path.splitext(args.img_filename)
    resize_and_save(args.img_filename, size, "%s_%s%s" % (
      filename, size_name, ext))

以上是关于python 根据图像的长边尺寸将图像调整为多种不同的尺寸。的主要内容,如果未能解决你的问题,请参考以下文章

如何强制 Pillow 将图像调整为任意大小?

如何去除精巧边缘图像中的长边缘?

如何创建可根据不同手机尺寸调整大小的响应式图像?

将图像调整为可变/固定尺寸?

根据图像尺寸动态居中搜索栏

根据屏幕尺寸调整图像大小?