【问题标题】:How to save png copies of ppm images in Python如何在 Python 中保存 ppm 图像的 png 副本
【发布时间】:2019-06-02 23:01:12
【问题描述】:

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

【问题讨论】:

    标签: python image directory png ppm


    【解决方案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 副本。如果您想用 pngs 实际替换 ppms,我可以编辑答案,使其完成所需的工作。

    【讨论】:

    • 执行此操作:在您的桌面上创建一个全新的文件夹并将其命名为“test”。将 my_script.py 放入您的“测试”文件夹中。现在,在“test”文件夹中创建一个“input”子文件夹并将所有 ppm 文件放在那里。最后,打开一个终端,导航到“test”文件夹并执行 python my_script.py。是这样的吗?
    【解决方案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
    

    如果您使用 v6 或更早版本的 ImageMagick,则变为:

    mogrify -format png *ppm
    

    【讨论】:

    • 这不是我现在需要的方式,但它是一个很棒的方式。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2018-11-04
    • 2011-01-19
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多