Πώς να δημιουργήσετε έναν μετατροπέα τύπου εικόνας σε έξι γραμμές του Python

Ένα από τα πλεονεκτήματα του να είσαι προγραμματιστής είναι η ικανότητά σου να δημιουργείς βοηθητικά εργαλεία για να βελτιώσεις τη ζωή σου. Σε αντίθεση με έναν μη προγραμματιστή, πιθανότατα δεν ξοδεύετε ώρες σκάβοντας πολλές σελίδες αποτελεσμάτων αναζήτησης Google για να βρείτε ένα εργαλείο που, καταρχάς, έπρεπε να βελτιώσει την παραγωγικότητά σας ( ειρωνεία κερδίζει ). Αυτό πιθανότατα σας κάνει να αισθάνεστε πιο ισχυροί γνωρίζοντας μια γλώσσα προγραμματισμού - ειδικά αν αυτή η γλώσσα προγραμματισμού είναι τόσο ευέλικτη και φοβερή όσο η Python.

Ένα από τα σημεία του The Zen of Python λέει:

Το απλό είναι καλύτερο από το περίπλοκο.

Με αυτήν τη φιλοσοφία στη θέση της, πολλές εξειδικευμένες δυνατότητες ανάπτυξης εργαλείων που χρησιμοποιούν το Python μπορούν να γίνουν τόσο σύντομα που με κάνει να αναρωτιέμαι αν αξίζει να το ονομάσω καθόλου εργαλείο. Μερικές φορές η λέξη scriptθα ήταν πιο ακριβής. Είτε έτσι είτε αλλιώς, ξεκινάμε εδώ για να δημιουργήσουμε ένα τέτοιο scriptώστε να μετατρέπει εικόνες από μία μορφή αρχείου (τύπος εικόνας) σε άλλη - σε μόλις 6 γραμμές κώδικα Python

Αποποίηση ευθυνών: Ο αριθμός των γραμμών (6) εξαιρεί τις κενές γραμμές και τα σχόλια

Σε αυτό το σεμινάριο, πρόκειται να δημιουργήσουμε έναν μετατροπέα τύπου εικόνας που μετατρέπει μια εικόνα PNG σε εικόνα JPG. Προτού τα κελιά σας με γκρίζα ύλη σπεύσουν να κρίνουν αν είμαι τρελός να φτιάξω αυτό το εργαλείο, επιτρέψτε μου να πω ότι αυτό δεν είναι μόνο για μία εικόνα - αλλά για όλες τις εικόνες μέσα σε ένα φάκελο. Αυτό σίγουρα θα απαιτούσε περισσότερη χειροκίνητη προσπάθεια να γίνει χωρίς κωδικοποίηση (ξέρω ότι μπορείτε να μυρίσετε bash).

Πακέτο Python

PILΓια το σκοπό αυτό θα χρησιμοποιήσουμε το πακέτο Python (που σημαίνει Python Image Library). Το πρωτότυπο PILδεν έλαβε ενημερώσεις για την τελευταία έκδοση Python, οπότε μερικές καλές ψυχές έχουν δημιουργήσει ένα φιλικό πιρούνι που ονομάζεται Pillowακόμη και> Python 3.0.

Εγκαταστήστε το χρησιμοποιώντας pip3 install Pillow.

Αρχικό σενάριο

Υπάρχουν δύο κύριες ενότητες σε αυτόν τον κώδικα. Η πρώτη ενότητα είναι όπου εισάγουμε τα απαιτούμενα πακέτα και η δεύτερη ενότητα είναι όπου πραγματοποιείται η πραγματική λειτουργία. Η πραγματική λειτουργία μπορεί να αναλυθεί περαιτέρω ως εξής:

  • Επαναλάβετε όλα τα αρχεία με τη δεδομένη επέκταση - στην περίπτωσή μας .png- και επαναλάβετε όλα τα ακόλουθα:
  • Άνοιγμα του αρχείου εικόνας (ως αρχείο εικόνας)
  • Μετατροπή του αρχείου εικόνας σε διαφορετική μορφή ( RGB)
  • Τέλος, αποθηκεύστε το αρχείο - με τη νέα επέκταση .jpg

Γραμμές 1 και 2:

from PIL import Image # Python Image Library - Image Processing
import glob

Αυτή η ενότητα εισάγει μόνο τα απαιτούμενα πακέτα. PILγια επεξεργασία εικόνων και globγια επανάληψη μέσω αρχείων του δεδομένου φακέλου στο λειτουργικό σύστημα.

Γραμμές 3–6:

# based on SO Answer: //stackoverflow.com/a/43258974/5086335
for file in glob.glob("*.png"):
 im = Image.open(file)
 rgb_im = im.convert('RGB')
 rgb_im.save(file.replace("png", "jpg"), quality=95)

ΠΤΕΡΥΓΙΟ

Αυτό είναι το τέλος του εργαλείου μας! Μπορείτε να αποθηκεύσετε αυτές τις 6 γραμμές ως .pyαρχείο και στη συνέχεια να τις καλέσετε στον υπολογιστή σας όπου έχετε εικόνες για μετατροπή.

Περαιτέρω ανάπτυξη

Εάν σκοπεύετε να βελτιώσετε αυτό το σενάριο περαιτέρω, μπορείτε να μετατρέψετε ολόκληρο το σενάριο σε ένα εργαλείο γραμμής εντολών - τότε όλες αυτές οι λεπτομέρειες αρέσουν File Formatκαι Folder Pathμπορούν να δοθούν ως επιχειρήματα επεκτείνοντας έτσι την ισχύ της περαιτέρω.

βιβλιογραφικές αναφορές

  • Ο πλήρης κωδικός που χρησιμοποιείται εδώ είναι διαθέσιμος στο github μου
  • Ζεν του Πύθωνα
  • Μαξιλάρι