如何在Python中保存ppm图像的png副本

时间:2019-01-08 09:18:59

标签: python image directory png ppm

我有一个充满 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

2 个答案:

答案 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,我可以编辑答案以使其完成所需的工作。