উত্তর:
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
!
আপনি বালিশ ( ওয়েবসাইট , ডকুমেন্টেশন , গিটহাব , পিপিআই ) ব্যবহার করতে পারেন । বালিশের পিআইএল এর মতো একই ইন্টারফেস রয়েছে তবে পাইথন 3 এর সাথে কাজ করে।
$ pip install Pillow
আপনার যদি প্রশাসকের অধিকার না থাকে (ডিবিয়ানে সুডো), আপনি এটি ব্যবহার করতে পারেন
$ pip install --user Pillow
ইনস্টলেশন সংক্রান্ত অন্যান্য নোটগুলি এখানে রয়েছে ।
from PIL import Image
with Image.open(filepath) as img:
width, height = img.size
30336 চিত্রের জন্য এটি 3.21 সেকেন্ডের প্রয়োজন (31x21 থেকে 424x428 এর জেপিজি, কেগল-এ জাতীয় ডেটা সায়েন্স বাউলের প্রশিক্ষণ ডেটা )
স্ব-লেখার পরিবর্তে বালিশটি ব্যবহার করার সম্ভবত এটি সবচেয়ে গুরুত্বপূর্ণ কারণ। এবং আপনার পিআইএল (পাইথন-ইমেজিং) এর পরিবর্তে বালিশ ব্যবহার করা উচিত, কারণ এটি পাইথন 3 এর সাথে কাজ করে।
scipy.ndimage.imread
তথ্য এখনও আছে বলে আমি রাখি , তবে মনে রাখবেন:
পড়ার অবমূল্যায়ন! আইপিডিকে সায়পাই ১.০.০ এ অবমূল্যায়ন করা হয়েছে, এবং [1.2] কে 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)
পদ্ধতি?
যেহেতু scipy
এর imread
অবহেলিত, তাই ব্যবহার করুন imageio.imread
।
pip install imageio
height, width, channels = imageio.imread(filepath).shape
এটি ইউআরএল থেকে চিত্র লোড করা, পিআইএল দিয়ে তৈরি করা, আকার মুদ্রণ করা ও পুনরায় আকার দেওয়ার একটি সম্পূর্ণ উদাহরণ ...
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 তে প্রদত্ত ইউআরএল থেকে আপনি চিত্রের আকারটি কীভাবে পাবেন তা এখানে:
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