تشتهر بايثون بتعدد استخداماتها. يمكنك إنشاء أدوات مساعدة في العالم الحقيقي في Python يمكنها تبسيط مهام معينة وتشغيلها تلقائيًا.
تعرف على كيفية إنشاء محول نوع صورة ببضع سطور بسيطة من كود Python. سواء كان ملف صورة واحدًا أو جميع الملفات في دليل ، يمكنك بسهولة التحويل بين التنسيقات المختلفة.
تثبيت المكتبات المطلوبة
تحتاج إلى تثبيت وسادة مكتبة Python لبناء محول نوع الصورة في Python. تعمل هذه المكتبة على تطوير إمكانات معالجة الصور لمترجم Python الخاص بك. يمكنك إنشاء أداة عامة لمعالجة الصور باستخدام عدة وحدات من هذه المكتبة. بعض من أكثرها فائدة هي ملفات صورة, ملف الصورة, مرشح الصورة، و ImageStat الوحدات.
قم بتشغيل الأمر التالي في الجهاز لتثبيت مكتبة Pillow Python:
نقطة ثَبَّتَ وسادة
بمجرد تثبيت وسادة على نظامك ، فأنت جاهز للعمل مع الصور.
تحميل وعرض خصائص الصورة
تحتاج أولاً إلى استيراد ملف صورة وحدة من بيل مكتبة لإعداد الكود. بعد ذلك ، تحتاج إلى استخدام ملف Image.open () طريقة لتحميل الصورة وتخصيصها لمتغير. بمجرد تحميل الصورة ، يمكنك عرضها باستخدام ملف يعرض() طريقة.
رمز محول تنسيق الصورة متاح في ملف مستودع جيثب وهو مجاني لك لاستخدامه بموجب ترخيص MIT.
من بيل يستورد صورة
image = Image.open ('sample-image.jpg')
صورة.يعرض()
الصورة التي قمت بتمريرها كمعامل لملف يفتح() ستفتح الطريقة بعد تنفيذ الكود. هذه خطوة أولى جيدة ، كاختبار سلامة ، للتأكد من أنك قمت بتثبيت المكتبة بنجاح على نظامك.
توفر وحدة Image العديد من الخصائص الأخرى التي يمكنك استخدامها للحصول على مزيد من المعلومات حول الصورة.
# استيراد مكتبة
من بيل يستورد صورة# تحميل الصورة
image = Image.open ('sample-image.jpg')# يطبع اسم الملف
مطبعة("اسم الملف: "، image.filename)# يطبع تنسيق الملف
# على سبيل المثال- PNG ، JPG ، GIF ، إلخ.
مطبعة("شكل: "، شكل صورة)# يطبع وضع الملف
# على سبيل المثال- RGB ، و RFBA ، و CMYK ، وما إلى ذلك.
مطبعة("وضع: "، image.mode)# يطبع الحجم على هيئة مجموعة عرض وارتفاع (بالبكسل)
مطبعة("مقاس: "، حجم الصورة)# يطبع عرض الصورة (بالبكسل)
مطبعة("عرض: "، image.width)# يطبع ارتفاع الصورة (بالبكسل)
مطبعة("ارتفاع: "، ارتفاع الصورة)
# اغلاق الصورة
صورة.يغلق()
يجب أن ترى بعض البيانات ذات المعنى بدون أخطاء:
كيفية تحويل تنسيق الصورة باستخدام بايثون
يمكنك ببساطة تحويل تنسيق ملف صورة ما باستخدام امتداد يحفظ() طريقة. أنت فقط بحاجة إلى تمرير الجديد اسم الملف وامتداده كمعامل لملف يحفظ() طريقة. ال يحفظ() ستحدد الطريقة تلقائيًا الامتداد الذي مررته ثم تحفظ الصورة بالتنسيق المحدد. ولكن قبل استخدام ملف يحفظ() الطريقة ، قد تحتاج إلى تحديد وضع الصورة (RGB ، RGBA ، CMYK ، HSV ، إلخ).
وفق وثائق الوسادة الرسمية، فإن وضع الصورة هو عبارة عن سلسلة تحدد نوع وعمق البكسل في الصورة. تدعم مكتبة الوسائد 11 وضعًا بما في ذلك الأوضاع القياسية التالية:
RGB (3x8 بت بكسل ، لون حقيقي)
RGBA (4 × 8 بت بكسل ، لون حقيقي مع قناع شفافية)
CMYK (4 × 8 بت بكسل ، فصل الألوان)
HSV (3x8 بت بكسل ، تدرج اللون ، التشبع ، قيمة مساحة اللون)
كيفية تحويل صورة من PNG إلى JPG ومن JPG إلى PNG
تحتاج إلى تمرير السلسلة filename.jpg كمعامل ل يحفظ() طريقة لتحويل ملفات الصور في أي تنسيق (PNG ، GIF ، BMP ، TIFF ، إلخ.) إلى تنسيق JPG. تحتاج أيضًا إلى توفير وضع الصورة. الكود التالي يحول صورة من تنسيق PNG إلى تنسيق JPG:
# استيراد مكتبة
من بيل يستورد صورة# تحميل الصورة
image = Image.open ('sample-png-image.png')# تحديد وضع RGB للصورة
الصورة = image.convert ('RGB')
# تحويل صورة من تنسيق PNG إلى تنسيق JPG
image.save ("تحويل jpg-image.jpg")
مطبعة("تم تحويل الصورة بنجاح!"
ستفقد أي شفافية في الصورة إذا قمت بتحويلها إلى تنسيق JPG. إذا حاولت الحفاظ على الشفافية باستخدام امتداد RGBA الوضع ، فإن Python ستظهر خطأ.
يمكنك تحويل صورة بأي تنسيق إلى تنسيق PNG باستخدام تنسيق يحفظ() طريقة. تحتاج فقط إلى تمرير صورة PNG كمعامل إلى ملف يحفظ() طريقة. الكود التالي يحول الصورة من تنسيق JPG إلى تنسيق PNG:
# استيراد مكتبة
من بيل يستورد صورة# تحميل الصورة
image = Image.open ('sample-jpg-image.jpg')
# تحويل الصورة من تنسيق JPG إلى PNG
image.save ("convert-png-image.png")
مطبعة("تم تحويل الصورة بنجاح!")
تحويل صورة إلى PNG يحافظ على أي شفافية. على سبيل المثال ، إذا قمت بتحويل صورة GIF شفافة إلى صورة PNG ، فستظل النتيجة صورة شفافة.
كيفية تحويل صورة إلى أي تنسيق آخر باستخدام Python
على غرار الخطوات المذكورة أعلاه ، يمكنك تحويل صورة بأي تنسيق إلى أي تنسيق آخر باستخدام ملف يحفظ() طريقة. تحتاج فقط إلى توفير امتداد الصورة الصحيح (.webp ، .png ، .bmp ، إلخ) إلى ملف يحفظ() طريقة. على سبيل المثال ، يحول الكود التالي صورة من تنسيق PNG إلى تنسيق WebP:
# استيراد مكتبة
من بيل يستورد صورة# تحميل الصورة
image = Image.open ('sample-transparent-png-image.png')
# تحويل صورة من تنسيق PNG إلى WEBP
image.save ("تحويل webp image.webp")
مطبعة("تم تحويل الصورة بنجاح!")
معالجة الخطأ لملفات الصور المفقودة
في حالة عدم تمكن الكود من العثور على صورة الإدخال ، فسيؤدي ذلك إلى حدوث خطأ. يمكنك التعامل مع هذا باستخدام FileNotFoundErrorاستثناء بايثون.
# استيراد مكتبة
من بيل يستورد صورةيحاول:
# تحميل الصورة
image = Image.open ('اسم ملف خاطئ. jpg')# تحويل الصورة من تنسيق JPG إلى PNG
image.save ("convert-png-image.png")
مطبعة("تم تحويل الصورة بنجاح!")
يستثني FileNotFoundError:
مطبعة("كان'ر العثور على الصورة المقدمة")
تحويل جميع الصور في دليل إلى تنسيق مختلف
إذا كان هناك العديد من ملفات الصور في دليل ، وتريد تحويلها إلى تنسيق مختلف ، فيمكنك القيام بذلك بسهولة ببضعة أسطر من التعليمات البرمجية في Python. تحتاج إلى استيراد ملف الكرة الأرضية مكتبة للتكرار من خلال الملفات الموجودة في الدليل الحالي أو داخل مجلد معين. يحول الكود التالي جميع صور JPG في الدليل الحالي إلى تنسيق PNG:
من بيل يستورد صورة
يستورد الكرة الأرضية
للملف في glob.glob ("* jpg"):
image = Image.open (ملف)
image.save (file.replace ("jpg", "بي إن جي"))
إذا كنت تريد تحويل مجموعة مختلفة من الملفات ، فقم بتغيير معلمة السلسلة التي تمررها إلى ملف الكرة الأرضية () طريقة.
أنشئ واجهة مستخدم رسومية باستخدام بايثون
تسهل مكتبات Python مثل Pillow تطوير أدوات للتعامل مع الصور في Python. يمكنك أداء المهام بسرعة باستخدام واجهة سطر الأوامر ولكن واجهة المستخدم الرسومية ضرورية لإنشاء تجربة سهلة الاستخدام. يمكنك إنشاء المزيد من تطبيقات واجهة المستخدم الرسومية المتخصصة باستخدام أطر عمل Python مثل Tkinter و wxPython.