Ищите решение, чтобы проверить, соответствует ли размер изображения моим требованиям в python - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть список размеров, например (120x600, 160x600, 300x250, 300x600 и 728x90), и я пытаюсь проверить, имеют ли изображения в папке правильные размеры.

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

import os
from PIL import Image 
folder_images = "c:/photos"
size_images = {} # Use curly braces instead for they're faster
comp_img = [(120,600) ,(160,600) ,(300,250) ,(300,600), (728,90)]
for dirpath, _, filenames in os.walk(folder_images):
    for path_image in filenames:
        image = os.path.abspath(os.path.join(dirpath, path_image))
        with Image.open(image) as img:
            img_dim = img.size
            if img_dim in comp_img:
                size_images[path_image] = {'Img width': img_dim[0], 'Img heigth': img_dim[1]}

                if (img_dim[0], img_dim[1]) in comp_img:
                    print(size_images)
                    print("correct")
                else:
                    print("wrong")

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Попробуйте:

import os
from PIL import Image 
folder_images = "c:/photos"
size_images = {} # Use curly braces instead for they're faster
comp_img = [(120,600) ,(160,600) ,(300,250) ,(300,600), (728,90)]
for dirpath, _, filenames in os.walk(folder_images):
    for path_image in filenames:
        image = os.path.abspath(os.path.join(dirpath, path_image))
        with Image.open(image) as img:
            img_dim = img.size
            if img_dim in comp_img:
                size_images[path_image] = {'Img width': img_dim[0], 'Img heigth': img_dim[1]}

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

Должен выдавать результат как: size_images = {'path/to/img': {'Img width': 120, 'Img heigth': 600}}

0 голосов
/ 18 февраля 2019

Вы можете просто составить список наборов правильного размера:

correct_dimension = [(120,600), (160,600), (300,250), (300,600), (728,90)]

и посмотреть, находится ли размер изображения в этом списке:

if (width,height) in correct_dimension:
    print("correct")
else:
    print("wrong")
...