¿Cómo obtengo el tamaño de los lados de una imagen con PIL o cualquier otra biblioteca de Python?
from PIL import Image im = Image.open('whatever.png') width, height = im.size
Según la documentación .
Puede usar Pillow ( sitio web , documentación , GitHub , PyPI ). Pillow tiene la misma interfaz que PIL, pero funciona con Python 3.
$ pip install Pillow
Si no tiene derechos de administrador (sudo en Debian), puede usar
$ pip install --user Pillow
Otras notas sobre la instalación están aquí .
from PIL import Image with Image.open(filepath) as img: width, height = img.size
Esto necesitó 3.21 segundos para 30336 imágenes (JPG de 31×21 a 424×428, datos de entrenamiento de National Data Science Bowl en Kaggle)
Esta es probablemente la razón más importante para usar una almohada en lugar de algo escrito por uno mismo. Y debes usar la almohada en lugar de la PIL (imagen de python), porque funciona con Python 3.
import scipy.ndimage height, width, channels = scipy.ndimage.imread(filepath).shape
import pygame img = pygame.image.load(filepath) width = img.get_width() height = img.get_height()
Ya que el scipy
de imread
está en desuso, use imageio.imread
.
pip install imageio
height, width, channels = imageio.imread(filepath).shape
Este es un ejemplo completo cargando una imagen desde una URL, creando con PIL, imprimiendo el tamaño y cambiando el tamaño …
import requests h = { 'User-Agent': 'Neo'} r = requests.get("http://sofes.miximages.com/python/football-1442407.jpg", headers=h) from PIL import Image from io import BytesIO # create image from binary content i = Image.open(BytesIO(r.content)) width, height = i.size print(width, height) i = i.resize((100,100)) display(i)