You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PIL调整图片为244×244尺寸,如何拉伸填充消除黑边?

图片拉伸填充实战方案

核心修改逻辑

你当前代码出现黑边的核心原因是存在冗余逻辑:已经调用resize方法把原图缩放到了244*244的目标尺寸,后续又新建空白画布、偏移粘贴的操作完全多余,就是这部分操作导致了黑边或画面截断。要实现拉伸填满效果,直接去掉冗余逻辑即可。

修改后可运行完整代码

import os
import uuid
from PIL import Image

path = "data/oyaku_don_source/"
dirs = os.listdir(path)
final_size = 244

def resize_stretch_fill():
    for item in dirs:
        # 跳过macOS系统缓存文件
        if item == '.DS_Store':
            continue
        file_path = os.path.join(path, item)
        if os.path.isfile(file_path):
            im = Image.open(file_path)
            # 直接拉伸到目标尺寸,无需额外等比计算和画布操作
            # 旧版本Pillow(9.0及以下)可将Image.Resampling.LANCZOS替换为Image.ANTIALIAS
            im = im.resize((final_size, final_size), Image.Resampling.LANCZOS)
            # 直接保存处理后的图片
            im.save(f'data/Oyaku_Don/{str(uuid.uuid4().fields[-1])[:5]}.jpg', 'JPEG', quality=90)

if __name__ == "__main__":
    # 自动创建目标保存目录,不存在时自动生成不会报错
    os.makedirs('data/Oyaku_Don/', exist_ok=True)
    resize_stretch_fill()

额外优化说明

  • 路径拼接改用os.path.join方法,适配不同操作系统的路径格式,避免Windows下路径斜杠报错
  • 新增目录自动创建逻辑,不用提前手动新建保存目录
  • 调整了缩放算法的写法,兼容新旧版本的Pillow库

内容的提问来源于stack exchange,提问作者Detective merry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:09:00