PIL 또는 다른 Python 라이브러리를 사용하여 그림 크기를 어떻게 구할 수 있습니까?
답변
from PIL import Image
im = Image.open('whatever.png')
width, height = im.size
설명서 에 따르면 .
답변
Pillow ( Website , Documentation , GitHub , PyPI )를 사용할 수 있습니다 . Pillow는 PIL과 동일한 인터페이스를 가지고 있지만 Python 3에서 작동합니다.
설치
$ pip install Pillow
관리자 권한이없는 경우 (Debian에서 sudo)
$ pip install --user Pillow
설치에 관한 기타 참고 사항은 여기에 있습니다 .
암호
from PIL import Image
with Image.open(filepath) as img:
width, height = img.size
속도
이것은 (데이터를 훈련, 31×21에서 424×428으로 JPG를 30,336 이미지를 3.21 초 필요한 국가 데이터 과학 볼 Kaggle에)
이것은 아마도 자체 작성하는 대신 베개를 사용하는 가장 중요한 이유 일 것입니다. 그리고 파이썬 3에서 작동하기 때문에 PIL (python-imaging) 대신 Pillow를 사용해야합니다.
대안 # 1 : Numpy (더 이상 사용되지 않음)
나는 scipy.ndimage.imread
정보가 여전히 존재하지만 계속 명심하십시오.
이미 사용되지 않습니다! imci는 SciPy 1.0.0에서 더 이상 사용되지 않으며 1.2.0에서 제거되었습니다.
import scipy.ndimage
height, width, channels = scipy.ndimage.imread(filepath).shape
대안 # 2 : 파이 게임
import pygame
img = pygame.image.load(filepath)
width = img.get_width()
height = img.get_height()
답변
이후 scipy
의이 imread
되지 않습니다, 사용 imageio.imread
.
- 설치 –
pip install imageio
- 사용하다
height, width, channels = imageio.imread(filepath).shape
답변
이것은 URL에서 이미지를로드하고 PIL로 작성하고 크기를 인쇄하고 크기를 조정하는 완전한 예제입니다 …
import requests
h = { 'User-Agent': 'Neo'}
r = requests.get("https://images.freeimages.com/images/large-previews/85c/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)
답변
파이썬 3에서 주어진 URL에서 이미지 크기를 얻는 방법은 다음과 같습니다.
from PIL import Image
import urllib.request
from io import BytesIO
file = BytesIO(urllib.request.urlopen('http://getwallpapers.com/wallpaper/full/b/8/d/32803.jpg').read())
im = Image.open(file)
width, height = im.size
답변
다음은 채널뿐만 아니라 차원도 제공합니다.
import numpy as np
from PIL import Image
with Image.open(filepath) as img:
shape = np.array(img).shape