Python中使用PIL读取,显示,保存图片的方法

Python中使用PIL读取,显示,保存图片的方法,第1张

目录

一、读取文件夹中的图片

二、打开指定文件夹图片

三、进行图片处理

四、进行显示图片

五、进行图片保存

六、利用PIL进行图片的读取、处理、保存 的完整代码


一、读取文件夹中的图片
    for picture_name in os.listdir(directory_name):
        print(picture_name)  # 读取图片名称及类型

        file_name = directory_name + "/" + picture_name  # 读取文件夹地址+图片名称类型
        print(file_name)
二、打开指定文件夹图片

使用Image.open()打开指定文件夹图片图片

square = Image.open(file_name)  # 打开指定文件夹图片
三、进行图片处理

使用PIL库的常用函数进行图片处理

例如:

        squarel = square.filter(ImageFilter.CONTOUR)  # 进行轮廓效果——素描处理
        # squarel.show()

        squarelll = squarel.filter(ImageFilter.SMOOTH)  # 平滑处理
        # squarelll.show()

        squarellll = squarelll.filter(ImageFilter.EDGE_ENHANCE)  # 锐化处理
        # squarellll.show()

        enh_col = ImageEnhance.Color(squarellll)  # 进行对比度处理
        color = 1.5
        squarelllll = enh_col.enhance(color)
        # squarelllll.show()

        square_ll = ImageEnhance.Brightness(squarelllll)
        squarell = square_ll.enhance(0.8)  # 改变亮度
        # squarell.show()
四、进行显示图片

使用Image.show()显示图片

squarel = square.filter(ImageFilter.CONTOUR)  # 进行轮廓效果——素描处理
squarel.show()  # 进行图片显示
五、进行图片保存

保存指令为imgname.save(‘imgsavename“)。imgsavename可为保存文件夹地址, 注意路径斜杠反过来

        root = 'C:/Users/ASUS/Pictures/素描画'  # 保存地址
        path = root + "/" + picture_name  # 保存地址

        try:
            squarell.save(path, quality=95)
            print('图片保存成功,保存在' + root + "\n")
        except:
            print('图片保存失败')
六、利用PIL进行图片的读取、处理、保存 的完整代码
from PIL import Image
from PIL import ImageFilter
from PIL import ImageEnhance
import os


# 读取函数,用来读取文件夹中的所有函数,输入参数是文件名
def read_directory(directory_name):
    for picture_name in os.listdir(directory_name):
        print(picture_name)  # 读取图片名称及类型

        file_name = directory_name + "/" + picture_name  # 读取文件夹地址+图片名称类型
        print(file_name)

        square = Image.open(file_name)  # 打开指定文件夹图片
        # square.show()

        squarel = square.filter(ImageFilter.CONTOUR)  # 进行轮廓效果——素描处理
        squarel.show()  # 进行图片显示

        squarelll = squarel.filter(ImageFilter.SMOOTH)  # 平滑处理
        # squarelll.show()

        squarellll = squarelll.filter(ImageFilter.EDGE_ENHANCE)  # 锐化处理
        # squarellll.show()

        enh_col = ImageEnhance.Color(squarellll)  # 进行对比度处理
        color = 1.5
        squarelllll = enh_col.enhance(color)
        # squarelllll.show()

        square_ll = ImageEnhance.Brightness(squarelllll)
        squarell = square_ll.enhance(0.8)  # 改变亮度
        # squarell.show()

        root = 'C:/Users/ASUS/Pictures/素描画'  # 保存地址
        path = root + "/" + picture_name  # 保存路径

        try:
            squarell.save(path, quality=95)    # quality为图片质量,65为最低,95为最高
            print('图片保存成功,保存在' + root + "\n")
        except:
            print('图片保存失败')


if __name__ == '__main__':  # 主函数入口
    directory_name = "C:/Users/ASUS/Pictures/测试"  # 这里传入所要读取文件夹的绝对路径,加引号(引号不能省略!)
    read_directory(directory_name)

最后展示几张图片及处理过后的效果:

原图:

处理后:

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/943587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存