답변:
from PIL import Image
im = Image.open('whatever.png')
width, height = im.size
설명서 에 따르면 .
im.mode
. PIL은 약간 암호이므로 numpy를 사용할 수도 있습니다.numpy.array(im).shape
.shape
높이가 2D 배열의 첫 번째 너비 이후 너비이므로 다른 반환 결과 를 가져온다는 점에 유의하십시오 . 그러므로height, width = np.array(im).shape
with
.
np.array(im).shape
채널 수를 반환하지 않고 오히려 반환 height
하고 width
!
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
이것은 (데이터를 훈련, 31x21에서 424x428으로 JPG를 30,336 이미지를 3.21 초 필요한 국가 데이터 과학 볼 Kaggle에)
이것은 아마도 자체 작성하는 대신 베개를 사용하는 가장 중요한 이유 일 것입니다. 그리고 파이썬 3에서 작동하기 때문에 PIL (python-imaging) 대신 Pillow를 사용해야합니다.
나는 scipy.ndimage.imread
정보가 여전히 존재하지만 계속 명심하십시오.
이미 사용되지 않습니다! imci는 SciPy 1.0.0에서 더 이상 사용되지 않으며 1.2.0에서 제거되었습니다.
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()
Image.open(filepath)
보다 빠른 cv2.imread(filepath)
방법은?
이것은 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