从 Python 中的目录转换所有文件(.jpg 到 .png)

新手上路,请多包涵

我正在尝试将目录中的所有文件从 .jpg 转换为 .png。名称应该保持不变,只是格式会改变。

我一直在做一些研究并得出以下结论:

 from PIL import Image
import os

directory = r'D:\PATH'

for filename in os.listdir(directory):
    if filename.endswith(".jpg"):
        im = Image.open(filename)
        im.save('img11.png')
        print(os.path.join(directory, filename))
        continue
    else:
        continue

我期待循环遍历我所有的 .jpg 文件并将它们转换为 .png 文件。到目前为止,我只使用 1 个名称:’img11.png’,我还没有成功构建能够编写足够名称的东西。

print(os.path.join(directory, filename)) 有效,它打印我的所有文件,但关于转换部分,它仅适用于 1 个文件。

你们有什么想法可以帮助我完成整个过程吗?

原文由 Grégoire de Kermel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 581
2 个回答

您可以将打开的图像转换为 RGB,然后可以将其保存为任何格式。您可以尝试以下代码:

 from PIL import Image
import os

directory = r'D:\PATH'
c=1
for filename in os.listdir(directory):
    if filename.endswith(".jpg"):
        im = Image.open(filename)
        name='img'+str(c)+'.png'
        rgb_im = im.convert('RGB')
        rgb_im.save(name)
        c+=1
        print(os.path.join(directory, filename))
        continue
    else:
        continue

原文由 Aditya Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议

from PIL import Image
import os
directory = r'D:\PATH'
for filename in os.listdir(directory):
    if filename.endswith(".jpg"):
        prefix = filename.split(".jpg")[0]
        im = Image.open(filename)
        im.save(prefix+'.png')
    else:
        continue

请试试这个,让我知道。

原文由 Amit 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题