详解Python PIL以日期时间为名称保存文件

  • Post category:Python

Python PIL是一个用于图像处理和操作的Python库,支持对图像进行读取、修改、保存、转换等操作。在保存图像时,我们经常需要使用当前日期时间作为文件名,以便方便区分不同的保存记录或版本等。

下面是Python PIL以日期时间为名称保存文件的完整攻略,包含以下步骤:

1. 导入相关模块

我们需要使用Python内置的datetime模块获取当前日期时间,以及使用Python PIL的Image模块进行图像处理和保存操作。因此,需要先导入这两个模块。

from datetime import datetime
from PIL import Image

2. 获取当前日期时间并格式化

使用datetime模块获取当前日期时间,然后将日期时间转换为指定格式的字符串。在本例中,我们将日期时间格式化为”YYYYMMDD_HHmmss”的形式。

now = datetime.now()
filename = now.strftime("%Y%m%d_%H%M%S")

3. 读取和处理图像

使用PIL的Image模块读取需要处理的图像,并进行必要的处理操作,例如裁剪、旋转、缩放等。在本例中,我们不进行任何处理,只是读取原始图像。

image = Image.open("test.jpg")

4. 保存图像

使用PIL的Image模块将处理后的图像保存到指定文件名的文件中。在本例中,我们将保存的文件名设为”YYYYMMDD_HHmmss.jpg”,并将图像保存在当前工作目录中。

image.save(filename + ".jpg")

示例1:保存当前屏幕截图

下面是一个示例,可以通过按下“Print Screen”键获取当前屏幕截图,并将其保存为以当前日期时间命名的文件。

from datetime import datetime
from PIL import ImageGrab, Image

# 获取当前日期时间并格式化
now = datetime.now()
filename = now.strftime("%Y%m%d_%H%M%S")

# 获取当前屏幕截图并转换为PIL Image对象
im = ImageGrab.grab()

# 保存图像
im.save(filename + ".jpg")

示例2:使用Pillow重新保存图像

下面是另一个示例,可以使用Pillow库对原始图像进行处理,并将处理后的图像保存为以当前日期时间命名的文件。

from datetime import datetime
from PIL import Image

# 获取当前日期时间并格式化
now = datetime.now()
filename = now.strftime("%Y%m%d_%H%M%S")

# 读取原始图像
with Image.open("test.jpg") as im:

    # 将图像裁剪为正方形
    w, h = im.size
    s = min(w, h)
    x = (w - s) // 2
    y = (h - s) // 2
    im = im.crop((x, y, x + s, y + s))

    # 将图像旋转90度并水平翻转
    im = im.transpose(Image.ROTATE_90)
    im = im.transpose(Image.FLIP_LEFT_RIGHT)

    # 缩放图像为50%
    size = im.size
    im = im.resize((size[0] // 2, size[1] // 2))

    # 保存图像
    im.save(filename + ".jpg")

以上就是Python PIL以日期时间为名称保存文件的完整攻略,希望能对你有所帮助。