जवाबों:
from PIL import Image
im = Image.open('whatever.png')
width, height = im.size
प्रलेखन के अनुसार ।
im.mode
। चूंकि पीआईएल थोड़ा गूढ़ है, इसलिए आप सुन्न का भी उपयोग कर सकते हैं:numpy.array(im).shape
.shape
ऊंचाई के बाद से अलग-अलग रिटर्न में परिणाम का उपयोग करना 2 डी सरणी का पहला है, फिर चौड़ाई। इसलिएheight, width = np.array(im).shape
with
।
np.array(im).shape
चैनलों की संख्या वापस नहीं करता है, बल्कि यह रिटर्न height
और width
!
आप पिलो ( वेबसाइट , डॉक्यूमेंटेशन , GitHub , PyPI ) का उपयोग कर सकते हैं । पिलो में पीआईएल के समान इंटरफ़ेस है, लेकिन पायथन 3 के साथ काम करता है।
$ pip install Pillow
यदि आपके पास व्यवस्थापक अधिकार नहीं हैं (डेबियन पर sudo), तो आप उपयोग कर सकते हैं
$ pip install --user Pillow
स्थापना के बारे में अन्य नोट्स यहाँ हैं ।
from PIL import Image
with Image.open(filepath) as img:
width, height = img.size
इसके लिए ३०३३६ छवियों के लिए ३.२१ सेकंड की आवश्यकता थी (जेपीजी ३१x२१ से ४२४-१४२21२ तक, कागले पर राष्ट्रीय डेटा विज्ञान बाउल से प्रशिक्षण डेटा )
यह शायद कुछ स्व-लिखित के बजाय तकिया का उपयोग करने का सबसे महत्वपूर्ण कारण है। और आपको पीआईएल (अजगर-इमेजिंग) के बजाय पिलो का उपयोग करना चाहिए, क्योंकि यह पायथन 3 के साथ काम करता है।
मुझे scipy.ndimage.imread
जानकारी है कि जानकारी अभी भी बाहर है, लेकिन ध्यान रखें:
इम्प्रूव किया हुआ है! imread को SciPy 1.0.0 में चित्रित किया गया है, और [1.2] में हटा दिया गया था।
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)
?
के बाद से 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