Как конвертировать несколько изображений .img в формат .bmp? - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь использовать Python для чтения НЕСКОЛЬКИХ изображений из папки, которые в настоящее время имеют формат .img, и преобразовать их все в формат .bmp.

Я успешно сделал это только с одним изображением, однако я очень плохо знаком с Python и испытываю проблемы с чтением нескольких изображений и их преобразованием.

Вот моя попытка 1 изображения:

from PIL import Image, ImageFilter
import sys

img = "hand1.img"
imgOut = "hand2bmp.bmp"
image = Image.open(img).convert('RGB').convert('L').save(imgOut)

Вот моя попытка создания нескольких изображений:

from PIL import Image, ImageFilter
import sys, glob, os

folder = 'C:/Users/Josep/Documents/code/test_file/BMLs/BMLs_Original'

for filename in glob.iglob(os.path.join(folder,'*.bmp')):
    Image.open(filename).convert('RGB').convert('L').save(filename)
    os.rename(filename, filename[:-4] + '.bmp').save(filename)

Я ожидал преобразовать файлы в формат .bmp, однако, когда я запускаю код, я не вижу изменений в изображениях.

1 Ответ

0 голосов
/ 01 июня 2019

Вам более или менее нужно просто сделать то, что вы сделали для одного файла для каждого файла в папке.

import glob, os, sys
from PIL import Image

folder = 'C:/Users/Josep/Documents/code/test_file/BMLs/BMLs_Original'

for filepath in glob.iglob(os.path.join(folder, '*.img')):
    image = Image.open(filepath).convert('RGB').convert('L')
    new_filepath = os.path.splitext(filepath)[0] + '.bmp'
    image.save(new_filepath)

Обратите внимание, что это создает новые файлы изображений, оставляяоригиналы не повреждены - другими словами, они не переименовывают оригиналы.Если вы хотите избавиться от оригиналов, вы можете удалить их с помощью os.remove() после сохранения преобразованного изображения в цикле.

...