Python:将 TIF 转换为 JPEG

Python: Convert TIF to JPEG

我正在努力将我的 TIF 文件更改为 JPEG,以便 运行 在它们上使用对象检测工具。我找到了一个解决方案 here(user2019716 给出的答案),但由于某些原因我的文件没有被读取。唯一改变的是第一行。我想使用不同的目录。我是不是搞砸了路径?

import os, sys
from PIL import Image

for infile in os.listdir("C:/Users/NAME/Desktop/FOLDER"):
    print("file : " + infile)
    if infile[-3:] == "tif" or infile[-3:] == "bmp" :
       outfile = infile[:-3] + "jpeg"
       im = Image.open(infile)
       print("new filename : " + outfile)
       out = im.convert("RGB")
       out.save(outfile, "JPEG", quality=90)

错误:

C:\Users\NAME\anaconda3\envs\Scripts\python.exe C:\Users\NAME\Desktop\Scripts\TIFF_to_JPG.py
file : __0.tif
Traceback (most recent call last):
  File "C:\Users\NAME\Desktop\Scripts\TIFF_to_JPG.py", line 10, in <module>
    im = Image.open(infile)
  File "C:\Users\NAME\anaconda3\envs\Scripts\lib\site-packages\PIL\Image.py", line 2891, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: '__0.tif'

Process finished with exit code 1

你 运行 来自“C:/Users/NAME/Desktop/FOLDER”的代码吗?如果不是,则会导致错误,因为您只提供了文件名,而不是绝对路径。 Python 期望在您 运行 代码所在的目录中找到该文件。你可以试试:

# -*- coding: utf-8 -*-

import os
from PIL import Image

input_dir = "C:/Users/NAME/Desktop/FOLDER/"
# This can differ from input_dir
output_dir = "C:/Users/NAME/Desktop/FOLDER/"

for infile in os.listdir(input_dir):
    print("file : " + infile)
    if infile[-3:] == "tif" or infile[-3:] == "bmp" :
       outfile = infile[:-3] + "jpeg"
       im = Image.open(input_dir + infile)
       print("new filename : " + outfile)
       out = im.convert("RGB")
       save_path = output_dir + outfile 
       out.save(save_path, "JPEG", quality=90)