我有一个充满 ppm 个图像的文件夹,我想保存它们的 png 个副本。
我该怎么做?
我尝试执行以下代码,但没有任何反应。
import cv2
import numpy as np
import glob
import sys
import os.path
from os.path import isfile,join
from PIL import Image
target_path = '/Users/lfw/test'
trg = os.listdir(target_path)
count = 0
for i in trg:
fullpath = os.path.join(target_path ,i)
if os.path.isfile(fullpath):
im = Image.open(fullpath)
im.save(str(count) + 'output.png')
count = count + 1
答案 0 :(得分:2)
不需要编写任何Python,您只需在终端中使用 ImageMagick -大多数Linux发行版中已安装该工具,并且可用于macOS和Windows:
magick mogrify -format png *ppm
如果要将输出文件放在其他文件夹中,请使用:
mkdir -p newFolder
magick mogrify -format png -path newFolder *ppm
如果要处理的文件很多,可以与 GNU Parallel 并行执行,如下所示:
parallel convert {} {.}.png ::: *ppm
如果您使用的是 ImageMagick 的v6或更早版本,则将变为:
mogrify -format png *ppm
答案 1 :(得分:1)
假设您的桌面上有一个名为test
的根文件夹,其中包含my_script.py
和一个名为input
的子文件夹,其中存储了所有ppm文件。
您可以使用以下代码为每个ppm图像保存png副本。
my_script.py
import os
import cv2
from glob import glob
cwd = os.getcwd()
input_dir = os.path.join(cwd, "input\\*.ppm")
ppms = glob(input_dir)
counter = 1
for ppm in ppms:
cv2.imwrite(str(counter)+".png", cv2.imread(ppm))
counter += 1
注意::我以特殊的方式编写了代码,让您保留旧的ppm文件并为原始图像创建全新的png副本。如果您想用png 替换 ppm,我可以编辑答案以使其完成所需的工作。