错误代码

#!/user/bin/python
# _*_ coding:utf-8 _*_
#开发人员:徐雨阳
#开发时间2022/6/3 23:28
#文件名称: 图片降像素.py
#开发工具: pycharm
#项目名称 pythonProjects
from PIL import Image
import matplotlib.pyplot as plt
import tqdm
import os
def ResizeImage(scale=1):
    path = '易拉罐'
    outpath = '易拉罐新'
    for a, b, c in os.walk(path):
        print(c)
    for i in tqdm.tqdm(c):
        f = os.path.join(path, i)
        if f.endswith("jpg"):
            # print(f,i)
            img = Image.open(f)
            width = int(img.size[0] * scale)
            height = int(img.size[1] * scale)
            type = img.format
            out = img.resize((width, height), Image.ANTIALIAS)
            print(os.path.join(outpath, i))
            out.save(path=os.path.join(outpath,i),fp='jpeg')
            # plt.imshow(out)
            # plt.axis('off')  # 去坐标轴
            # plt.xticks([])  # 去刻度
            # plt.savefig(os.path.join(outpath, i), bbox_inches='tight', pad_inches=-0.1)  # 注意两个参数
    """
    改变图片大小
    :param filein: 输入图片
    :param fileout: 输出图片
    :param width: 输出图片宽度
    :param height: 输出图片宽度
    :param type: 输出图片类型(png, gif, jpeg...)
    :return:
    """
    # 第二个参数:
    # Image.NEAREST :低质量
    # Image.BILINEAR:双线性
    # Image.BICUBIC :三次样条插值
    # Image.ANTIALIAS:高质量
if __name__ == "__main__":
    print("开始运行")
    ResizeImage(scale=0.3)

在这里插入图片描述
他会报错说是未知的扩展名,不过我检查发现扩展名没有错。而且网上关于这个报错信息讨论较少,我决定记录下今天的debug,给后来的同学避避雷。
源码
在这里插入图片描述
ext=‘.jpg’,我猜测是这里ext多一个’.'的原因,能力有限就不调试了,交给下一个有能力且愿意深挖的同学来解决吧(这个bug改到凌晨1点,吐了)

debug

我导入matplotlib.pyplot曲线救国

            print(os.path.join(outpath, i))
            # out.save(path=os.path.join(outpath,i),fp='jpeg')
            plt.imshow(out)
            plt.axis('off')  # 去坐标轴
            plt.xticks([])  # 去刻度
            plt.savefig(os.path.join(outpath, i), bbox_inches='tight', pad_inches=-0.1)  # 注意两个参数

将out附近的代码更改为plt.savefig()解决了这个问题
舒服了
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐