Жезл выводит слишком много изображений - PullRequest
0 голосов
/ 13 марта 2020

Так что я относительно неопытен с python в целом, и совершенно новым для ImageMagick и Wand, однако, инструменты делают 95% от того, что мне нужно до сих пор, что означает МНОГО времени, сэкономленного в долгосрочной перспективе для проект, над которым я работаю.

Я просто беру папку с изображениями, преобразую их из .tiff в .png и сохраняю их во вложенную папку. Кажется простым, верно? И код ниже работает:

# Import os functions for setting path and getting files from directory
import os

# Import Wand functions to get the image and the required colors to convert
from wand.image import Image
from wand.color import Color

# Set the path where the images are being held
sourcePath = '/somePath/'
destinationPath = '/somePath/batch/'

# Set the image extenion we want to process and convert to
sourceExt = 'tiff'
destinationExt = 'png'

# Use os to get all files held in that directory
files = os.listdir(sourcePath)

# Loop through every file
for file in files:

    # Get the current image file's name and extension
    filename, file_extension = os.path.splitext(sourcePath + file)
    print('Filename: ' + filename)
    print('File extension: ' + file_extension)

    updatedFilename = filename.replace(sourcePath, '')

    # Only process for images with the .tiff extension
    if file_extension == ('.' + sourceExt):

        with Image(filename=filename + file_extension) as img:
            img.format = 'png'
            with Color('#FFFFFF') as white:
                img.transparent_color(white, alpha=0.0)
            img.save(filename=destinationPath + updatedFilename + '.' + destinationExt)

В целом, код работает хорошо, выводит .png версии моих входных файлов с вычеркнутым белым фоном.

Однако я принимая в 80 изображений и на выходе получается в общей сложности 712 изображений. Что-то с Wand определенно вызывает это, или это мой l oop in python?

1 Ответ

0 голосов
/ 19 марта 2020

Мои файлы .tiff были тайными многостраничными файлами, и я получал все страницы, а не только первые. Я решил эту проблему случайно, экспортировав мои изображения в лучше поддерживаемом формате .png (с дополнительным преимуществом моих выгруженных изображений, не имеющих фона, который больше не нужно удалять), но это было очень полезно.

...