Так что я относительно неопытен с 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?