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

Python PIL 图片处理指南
本文介绍了使用Python的PIL库进行图片操作的方法,包括读取文件夹中的图片,打开指定文件夹图片,图片处理,显示图片以及保存图片。通过示例代码详细展示了PIL进行图片读取、处理和保存的全过程。

目录

一、读取文件夹中的图片

二、打开指定文件夹图片

三、进行图片处理

四、进行显示图片

五、进行图片保存

六、利用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 + "
")
        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 + "
")
        except:
            print('图片保存失败')


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

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

原图:

处理后:

<think>用户需要使用PythonPIL库来读取一张图片,进行X轴反转(即水平翻转),然后保存。首先,我需要回忆PIL库中处理图像的基本方法PIL现在通常指的是Pillow库,因为PIL已经不再维护了。 首先,用户需要读取图片,这可以通过Image.open()方法完成。然后,进行X轴反转,也就是水平翻转。在PIL中,可以使用transpose方法,参数为Image.FLIP_LEFT_RIGHT来实现。接下来,保存处理后的图片使用save方法。 需要确保代码的正确性,包括正确的导入语句,处理可能的异常,比如文件不存在的情况。但用户可能只需要基本的代码示例,所以可能不需要处理异常,但为了健壮性,可以加入try-except块。不过用户可能希望简洁的示例,所以可能先给出基本代码,再考虑扩展。 另外,保存时需要指定文件名,可能需要不同的文件名以避免覆盖原图。所以示例中应该使用不同的输出文件名。 总结步骤: 1. 导入必要的模块,如Image from PIL。 2. 使用Image.open读取图片。 3. 使用img.transpose(Image.FLIP_LEFT_RIGHT)进行水平翻转。 4. 保存翻转后的图片。 需要检查是否有语法错误,比如括号是否正确,参数是否正确。例如,Image.FLIP_LEFT_RIGHT是否正确,或者是否有其他方法。 另外,用户可能希望代码有注释,方便理解。所以示例中应加入注释说明每一步的作用。 最后,根据用户的要求,回答后必须提出3-5个相关问题,放在§§相关问题§§部分,不能换行,必须用数字列表。</think>使用PythonPIL库(Pillow)实现图片X轴反转(水平翻转)并保存的代码如下: ```python from PIL import Image # 读取图片 img = Image.open("input.jpg") # 替换为实际图片路径 # X轴反转(水平翻转) flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT) # 保存处理后的图片 flipped_img.save("output.jpg") # 替换为输出路径 ``` 代码说明: 1. 通过`Image.open()`读取原始图片 2. 使用`transpose()`方法配合`Image.FLIP_LEFT_RIGHT`参数实现水平翻转 3. 翻转后的图片通过`save()`方法保存到新文件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值