目标是将给定文件中的任何图像转换为 png,然后将它们添加到新文件中。我似乎找不到使用 PIL 保存函数 var.save() 将图像保存到我想要的文件的方法。
这是代码
from PIL import Image
import sys
import os
file = sys.argv[1]
output_file = sys.argv[2]
if not os.path.exists(output_file):
os.makedirs(output_file)
i = 0
for _ in os.listdir(file):
img = Image.open(f'./{file}/{os.listdir(file)[i]}')
img.save(f"{os.listdir(file)[i]}.png", "png")
i +=1
我搜索了这个,查看了堆栈溢出,但由于一些愚蠢的原因,我无法找到一个函数或类似的东西来更改我保存它的位置。
您的代码问题似乎与保存功能中使用的文件路径有关。保存图像时,您没有在路径中指定输出目录。这会导致图像保存在当前工作目录中,而不是所需的输出目录中。尝试这样的事情:
from PIL import Image
import sys
import os
input_directory = sys.argv[1]
output_directory = sys.argv[2]
if not os.path.exists(output_directory):
os.makedirs(output_directory)
for filename in os.listdir(input_directory):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
img = Image.open(os.path.join(input_directory, filename))
# Create a new filename for the PNG version
new_filename = os.path.splitext(filename)[0] + ".png"
# Save the image in the output directory
img.save(os.path.join(output_directory, new_filename), "PNG")