Как получить размер изображения с помощью PIL?

Как получить размер сторон изображения с помощью PIL или любой другой библиотеки Python?

Ответ 2

Вы можете использовать Pillow (Веб-сайт, Документация, GitHub, PyPI). Подушка имеет тот же интерфейс, что и PIL, но работает с Python 3.

Установка

$ pip install Pillow

Если у вас нет прав администратора (sudo на Debian), вы можете использовать

$ pip install --user Pillow

Другие примечания относительно установки здесь.

код

from PIL import Image
with Image.open(filepath) as img:
    width, height = img.size

Speed ​​

Это потребовало 3,21 секунды для 30336 изображений (JPG от 31x21 до 424x428, учебные данные из National Data Science Bowl в Kaggle)

Это, вероятно, самая важная причина для использования подушки вместо того, что самонаписано. И вы должны использовать Pillow вместо PIL (python-imaging), потому что он работает с Python 3.

Альтернатива №1: НОМЕР

import scipy.ndimage
height, width, channels = scipy.ndimage.imread(filepath).shape

Альтернатива №2: Pygame

import pygame
img = pygame.image.load(filepath)
width = img.get_width()
height = img.get_height()

Ответ 3

Так как scipy imread устарел, используйте imageio.imread.

  • Установить - pip install imageio
  • Используйте height, width, channels = imageio.imread(filepath).shape