Pillow - 处理图像

  • 简述

    本章详细介绍了如何在 Pillow 中读取和保存图像等主题。
  • 读取图像

    使用枕头库读写图像非常简单,借助PIL.Image module function.

    句法

    
    Image.open(fp, mode=’r’)
    
    参数说明
    • fp− 文件名(字符串)、pathlib.Path 对象或文件对象。文件对象必须实现 read()、seek() 和 tell() 方法并以二进制模式打开。
    • mode- 这是一个可选参数,如果给定,必须是'r'。
    • Return value- 一个图像对象。
    • Error− 如果找不到文件,或者无法打开和识别图像。

    例子

    以下是一个非常简单的示例,我们将在其中打开任何格式的图像(我们使用 .jpg),将其显示在窗口中,然后以另一种文件格式 (.png).
    
    from PIL import Image
    image = Image.open('beach1.jpg')
    image.show()
    image.save('beach1.bmp')
    image1 = Image.open('beach1.bmp')
    image1.show()
    
    在上面的例子中,我们从 PIL 库中导入 Image 模块,然后调用Image.open()从磁盘读取图像的函数,该函数返回图像对象数据类型。它将通过查看文件内容自动确定文件类型。对于阅读,open()函数接受一个filename(string), 一种path object或一个image(file)目的。
    因此,通过使用 open() 函数,我们实际上是在读取图像。Image.open() 将读取图像并从图像中获取所有相关信息。

    输出

    如果将上述程序另存为 Example.py 并执行,它将使用标准 PNG 显示实用程序显示原始 (.jpg) 和重新保存 (.bmp) 图像,如下所示 -
    Actual image
    原版的
    Resaved image (.bmp)
    重新保存的图像
  • 保存图像

    save() 函数将图像写入文件。与读取(open() 函数)一样,save() 函数接受文件名、路径对象或已打开写入的文件对象。

    句法

    
    Image.save(fp, format=None, **params)
    
    在哪里,
    • fp− 文件名(字符串)、pathlib.Path 对象或文件对象。
    • format− 可选格式覆盖。如果省略,则使用的格式由文件扩展名确定。如果使用文件对象而不是文件名,则应始终使用此参数。
    • options- 图像写入器的额外参数。
    • Return value− 无
    • KeyError− 如果无法从文件名确定输出格式,请使用格式选项解决此问题。
    • IOError− 如果无法写入文件,则文件可能已创建,并且可能包含部分数据。
    简而言之,上述语法会将图像保存在给定的文件名下。如果未指定格式,则基于当前文件扩展名。为了向作者提供附加说明,我们使用关键字选项。
    
    image.save('beach1.bmp')
    
    在上面的例子中,它根据文件扩展名保存文件以确定图像的类型,例如——上面将在我们当前的工作目录中创建一个 bmp 文件。
    您还可以明确指定文件类型作为第二个参数 -
    
    image.save('beach1.gif', 'GIF')