English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات في Python

تحكم العملية في Python

الوظائف في Python

نوع البيانات في Python

عمليات ملفات Python

أجسام وصفات Python

التاريخ والوقت في Python

معرفة متقدمة في Python

دليل Python

برنامج Python يبحث عن حجم الصورة (دقة)

مثال كامل بايثون

سوف تتعلم في هذا المثال كيفية إيجاد دقة صور jpeg دون استخدام مكتبات خارجية

لفهم هذا المثال، يجب أن تكون على علم بما يليبرمجة بايثونالموضوع:

JPEG (تُنطق بـ "جاي-peg") هو مجموعة من خبراء الصور المشتركة. إنه أحد أوسع تقنيات ضغط الصور المستخدمة.

معظم تنسيقات الملفات تحتوي على رؤوس (بضعة بت في البداية)، وتحتوي هذه الرؤوس على معلومات مفيدة حول الملف.

على سبيل المثال، يحتوي رأس JPEG على معلومات مثل الارتفاع والعرض وعدد الألوان (أبيض وأسود أو RGB) وما إلى ذلك. في هذا البرنامج، نجد دقة الصور التي تقرأ هذه الرؤوس دون استخدام مكتبات خارجية.

كود إيجاد دقة الصورة في الصور JPEG

def jpeg_res(filename):
   """هذا الدالة تضيف دقة ملف الصورة jpeg المرسل إليها"""
   # فتح الصورة، قراءة في النمط الثنائي
   with open(filename, 'rb') as img_file:
       # ارتفاع الصورة (بثمانية بت) في الموضع 164
       img_file.seek(163)
       # قراءة ثمانية بت
       a = img_file.read(2)
       # حساب الارتفاع
       height = (a[0] << 8) + a[1]
       # الثمانية القادمة هي عرض
       a = img_file.read(2)
       # حساب العرض
       width = (a[0] << 8) + a[1]
   print("دقة الصورة هي", width, "x", height)
jpeg_res("img1.jpg")

نتيجة الإخراج

دقة الصورة هي 280 × 280

في هذا البرنامج، نفتح الصورة في نمط الثنائي. يجب فتح الملفات غير النصية في هذا النمط.

لاحظ، هذا ينطبق فقط على تنسيق ملفات JPEG (JFIF) المعيارية. إذا كان ملفك يستخدم معيارًا آخر (مثل EXIF) للترميز، فإن الكود لن يعمل.

نستخدم عمليات التحويل السحابي << لنقل 2 بت إلى عدد. في النهاية، نعرض الدقة.

مثال كامل بايثون