How do I get the picture size with PIL?

前端 未结 7 1474
粉色の甜心
粉色の甜心 2020-11-28 18:15

How do I get a size of a pictures sides with PIL or any other Python library?

相关标签:
7条回答
  • 2020-11-28 19:03

    You can use Pillow (Website, Documentation, GitHub, PyPI). Pillow has the same interface as PIL, but works with Python 3.

    Installation

    $ pip install Pillow
    

    If you don't have administrator rights (sudo on Debian), you can use

    $ pip install --user Pillow
    

    Other notes regarding the installation are here.

    Code

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

    Speed

    This needed 3.21 seconds for 30336 images (JPGs from 31x21 to 424x428, training data from National Data Science Bowl on Kaggle)

    This is probably the most important reason to use Pillow instead of something self-written. And you should use Pillow instead of PIL (python-imaging), because it works with Python 3.

    Alternative #1: Numpy (deprecated)

    I keep scipy.ndimage.imread as the information is still out there, but keep in mind:

    imread is deprecated! imread is deprecated in SciPy 1.0.0, and [was] removed in 1.2.0.

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

    Alternative #2: Pygame

    import pygame
    img = pygame.image.load(filepath)
    width = img.get_width()
    height = img.get_height()
    
    0 讨论(0)
提交回复
热议问题