PIL如何调整图像大小以填充高度和宽度尺寸
PIL how to resize image to fill up height and width dimension
我有一组随机尺寸的图像,想将它们转换为标准尺寸 (244,244)。使用 PIL Image resize() 会将图片转换为合适的大小,但在未填充的 space 显示 here 处有黑色边框填充。我想通过拉伸图像以填充整个高度和宽度来删除黑色边框
这是预处理图片的函数:
path = "data/oyaku_don_source/"
dirs = os.listdir( path )
final_size = 244;
def resize_aspect_fit():
for item in dirs:
if item == '.DS_Store':
continue
if os.path.isfile(path+item):
im = Image.open(path+item)
f, e = os.path.splitext(path+item)
size = im.size
ratio = float(final_size) / max(size)
new_image_size = tuple([int(x*ratio) for x in size])
im = im.resize((244, 244), Image.ANTIALIAS)
new_im = Image.new("RGB", (final_size, final_size))
new_im.paste(im, ((final_size-new_image_size[0])//2, (final_size-new_image_size[1])//2))
new_im.save('data/Oyaku_Don/'+str(uuid.uuid4().fields[-1])[:5]+'.jpg', 'JPEG', quality=90)
如有任何建议,我们将不胜感激,谢谢
我得到黑边的原因是 new_img。图片在 resize() 后立即被拉伸,所以我立即保存了图片。
from PIL import Image
import os, sys
import uuid
#input path
path = "data/oyaku_don_source/"
dirs = os.listdir( path )
final_size = 244;
def resize_image():
for item in dirs:
if item == '.DS_Store':
continue
if os.path.isfile(path+item):
im = Image.open(path+item)
f, e = os.path.splitext(path+item)
size = im.size
ratio = float(final_size) / max(size)
new_image_size = tuple([int(x*ratio) for x in size])
im = im.resize((244, 244), Image.ANTIALIAS)
#output path with a unique id
im.save('data/Oyaku_Don/'+str(uuid.uuid4().fields[-1])[:5]+'.jpg', 'JPEG', quality=90)
我有一组随机尺寸的图像,想将它们转换为标准尺寸 (244,244)。使用 PIL Image resize() 会将图片转换为合适的大小,但在未填充的 space 显示 here 处有黑色边框填充。我想通过拉伸图像以填充整个高度和宽度来删除黑色边框 这是预处理图片的函数:
path = "data/oyaku_don_source/"
dirs = os.listdir( path )
final_size = 244;
def resize_aspect_fit():
for item in dirs:
if item == '.DS_Store':
continue
if os.path.isfile(path+item):
im = Image.open(path+item)
f, e = os.path.splitext(path+item)
size = im.size
ratio = float(final_size) / max(size)
new_image_size = tuple([int(x*ratio) for x in size])
im = im.resize((244, 244), Image.ANTIALIAS)
new_im = Image.new("RGB", (final_size, final_size))
new_im.paste(im, ((final_size-new_image_size[0])//2, (final_size-new_image_size[1])//2))
new_im.save('data/Oyaku_Don/'+str(uuid.uuid4().fields[-1])[:5]+'.jpg', 'JPEG', quality=90)
如有任何建议,我们将不胜感激,谢谢
我得到黑边的原因是 new_img。图片在 resize() 后立即被拉伸,所以我立即保存了图片。
from PIL import Image
import os, sys
import uuid
#input path
path = "data/oyaku_don_source/"
dirs = os.listdir( path )
final_size = 244;
def resize_image():
for item in dirs:
if item == '.DS_Store':
continue
if os.path.isfile(path+item):
im = Image.open(path+item)
f, e = os.path.splitext(path+item)
size = im.size
ratio = float(final_size) / max(size)
new_image_size = tuple([int(x*ratio) for x in size])
im = im.resize((244, 244), Image.ANTIALIAS)
#output path with a unique id
im.save('data/Oyaku_Don/'+str(uuid.uuid4().fields[-1])[:5]+'.jpg', 'JPEG', quality=90)