📜  python中的tiff到jpg(1)

📅  最后修改于: 2023-12-03 14:46:39.089000             🧑  作者: Mango

Python 中的 TIFF to JPG

在 Python 中将 TIFF 转换为 JPG 可以使用 Pillow 库。 Pillow 是 Python Imaging Library (PIL) 官方的一个分支,提供了大量的图片处理功能。在安装 Pillow 库之前,请确保已安装了 pip,并使用以下命令进行安装:

!pip install pillow
转换单个 TIFF 文件到 JPG

使用 Pillow 库中的 Image 模块可以轻松地将单个 TIFF 格式图像转换为 JPEG 格式。

from PIL import Image

with Image.open("example.tif") as img:
    img.save("output.jpg", "JPEG")

上面的代码打开名为 example.tif 的 TIFF 文件,并将其保存为名为 output.jpg 的 JPEG 文件。

将单个 TIFF 文件的每个帧保存为单个 JPG 文件

如果您需要将单个 TIFF 文件的所有帧作为单个 JPG 文件处理,则可以使用以下代码。

from PIL import Image

with Image.open("example.tif") as img:
    for i in range(img.n_frames):
        img.seek(i)
        img.save(f"output_{i}.jpg", "JPEG")

上面的代码打开名为 example.tif 的 TIFF 文件,并为其中的每个帧创建一个单独的 JPEG 文件。 JPEG 文件的名称按顺序为 output_0.jpgoutput_1.jpg 等。

将多个 TIFF 文件的每个帧保存为单个 JPG 文件

如果您需要将多个 TIFF 文件的帧结合为单个 JPG 文件,则可以使用以下代码。

from PIL import Image

filenames = ["example_1.tif", "example_2.tif", "example_3.tif"]

with Image.open(filenames[0]) as img:
    # Get the dimensions of the TIFF image
    width, height = img.size
    
    # Create a new image to hold the combined JPEG image
    combined_img = Image.new(mode='RGB', size=(width, height * len(filenames)))
    
    # Combine the multiple TIFF files
    for i, filename in enumerate(filenames):
        with Image.open(filename) as img:
            for j in range(img.n_frames):
                img.seek(j)
                combined_img.paste(img, (0, i * height))
    
    # Save the combined JPEG image
    combined_img.save("output.jpg", "JPEG")

上面的代码将名为 example_1.tifexample_2.tifexample_3.tif 的三个文件组合为一个单独的 JPEG 文件。JPEG 文件将具有与单个 TIFF 文件相同的宽度和帧高度的总和。