Добавлен ресайзинг методом crop
This commit is contained in:
BIN
origin.jpg
Normal file
BIN
origin.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.9 MiB |
20
resize.py
20
resize.py
@ -6,6 +6,7 @@ import argparse
|
|||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("--width", dest="width", type=int, required=True)
|
parser.add_argument("--width", dest="width", type=int, required=True)
|
||||||
parser.add_argument("--height", dest="height", type=int, required=True)
|
parser.add_argument("--height", dest="height", type=int, required=True)
|
||||||
|
parser.add_argument("--crop", action="store_true", required=False)
|
||||||
parser.add_argument("source", type=str)
|
parser.add_argument("source", type=str)
|
||||||
parser.add_argument("destination", type=str)
|
parser.add_argument("destination", type=str)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
@ -16,9 +17,22 @@ outfile = args.destination
|
|||||||
try:
|
try:
|
||||||
im = Image.open(infile)
|
im = Image.open(infile)
|
||||||
im = im.convert()
|
im = im.convert()
|
||||||
im.thumbnail(size, Image.ANTIALIAS)
|
if args.crop:
|
||||||
im_result = Image.new('RGB', (args.width, args.height), (255, 255, 255))
|
width_crop = im.size[0]
|
||||||
im_result.paste(im, ((args.width - im.size[0]) / 2, (args.height - im.size[1]) / 2))
|
height_crop = im.size[0]*(args.width/args.height)
|
||||||
|
width_padding = 0
|
||||||
|
height_padding = (im.size[1]-height_crop)/2
|
||||||
|
if height_crop > im.size[1]:
|
||||||
|
width_crop = im.size[1]*(args.height/args.width)
|
||||||
|
height_crop = im.size[1]
|
||||||
|
width_padding = (im.size[0]-width_crop)/2
|
||||||
|
height_padding = 0
|
||||||
|
im_crop = im.crop((width_padding, height_padding, width_crop+width_padding, height_crop+height_padding))
|
||||||
|
im_result = im_crop.resize(size, Image.ANTIALIAS)
|
||||||
|
else:
|
||||||
|
im.thumbnail(size, Image.ANTIALIAS)
|
||||||
|
im_result = Image.new('RGB', (args.width, args.height), (255, 255, 255))
|
||||||
|
im_result.paste(im, ((args.width - im.size[0]) / 2, (args.height - im.size[1]) / 2))
|
||||||
enhancer = ImageEnhance.Contrast(im_result)
|
enhancer = ImageEnhance.Contrast(im_result)
|
||||||
im_result = enhancer.enhance(1.05)
|
im_result = enhancer.enhance(1.05)
|
||||||
im_result.save(outfile, "JPEG", quality=100)
|
im_result.save(outfile, "JPEG", quality=100)
|
||||||
|
BIN
thumbnail.jpg
Normal file
BIN
thumbnail.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
Reference in New Issue
Block a user