Κεφάλαιο 13. Scripting and writing plug-ins

Πίνακας Περιεχομένων

1. Πρόσθετα
1.1. Εισαγωγή
1.2. Χρήση προσθέτων
1.3. Εγκατάσταση νέων προσθέτων
1.4. Συγγραφή προσθέτων
2. Χρήση σεναρίων Script-Fu
2.1. Script-Fu;
2.2. Εγκατάσταση σεναρίων Script-Fus
2.3. Επιτρεπτά και μη
2.4. Διάφορα είδη Script-Fus
3. Μάθημα Script-Fu
3.1. Εξοικείωση με το Scheme
3.2. Μεταβλητές και συναρτήσεις
3.3. Λίστες, λίστες και πάλι λίστες
3.4. Το πρώτο σας σενάριο Script-Fu
3.5. Προσθήκη πρόσθετης λειτουργικότητας
3.6. Επέκταση του σεναρίου πλαισίου κειμένου
3.7. Το σενάριο σας και η λειτουργία του
4. Ένα σεμινάριο γραφής προσθέτου Python
4.1. Τα βασικά στοιχεία ενός προσθέτου για το GIMP

1. Πρόσθετα

1.1. Εισαγωγή

Ένα από τα ωραιότερα πράγματα σχετικά με το GIMP είναι το πόσο εύκολα μπορεί να επεκταθεί η λειτουργικότητά του, χρησιμοποιώντας πρόσθετα. Τα πρόσθετα του GIMP είναι εξωτερικά προγράμματα που εκτελούνται υπό τον έλεγχο της κύριας εφαρμογής του GIMP και αλληλεπιδρούν πολύ στενά μαζί της. Τα πρόσθετα μπορούν να χειριστούν τις εικόνες με σχεδόν οποιοδήποτε τρόπο μπορούν οι χρήστες. Το πλεονέκτημά τους είναι ότι είναι πολύ πιο εύκολο να προσθέσετε μια δυνατότητα στο GIMP γράφοντας ένα μικρό πρόσθετο παρά τροποποιώντας την τεράστια μάζα σύνθετου κώδικα που αποτελεί τον πυρήνα του GIMP . Πολλά πολύτιμα πρόσθετα έχουν πηγαίο κώδικα C που φτάνει μόνο σε 100-200 γραμμές περίπου.

Πολλές δεκάδες πρόσθετα περιλαμβάνονται στην κύρια διανομή του GIMP και εγκαθίστανται αυτόματα μαζί με το GIMP. Τα περισσότερα από αυτά είναι προσβάσιμα μέσω του μενού Φίλτρα (στην πραγματικότητα, όλα όσα βρίσκονται σε αυτό το μενού είναι πρόσθετα), αλλά ορισμένα βρίσκονται σε άλλα μενού. Σε πολλές περιπτώσεις μπορείτε να χρησιμοποιήσετε ένα από αυτά χωρίς ποτέ να συνειδητοποιήσετε ότι είναι ένα πρόσθετο: για παράδειγμα, η λειτουργία "Κανονικοποίηση" για την αυτόματη διόρθωση χρωμάτων είναι στην πραγματικότητα ένα πρόσθετο, αν και δεν υπάρχει τίποτα στον τρόπο λειτουργίας της που να σας το λέει αυτό. Ακόμα και η εισαγωγή και εξαγωγή εικόνων γίνεται από πρόσθετα.

Όλοι μπορούν να γράψουν ένα πρόσθετο στο GIMP και να το διαθέσουν στο διαδίκτυο. Υπάρχουν πολλά χρήσιμα πρόσθετα που μπορείτε να αποκτήσετε με αυτόν τον τρόπο. Μερικά από αυτά περιγράφονται αλλού στο Εγχειρίδιο χρήστη.

Με αυτή τη δωρεάν διαθεσιμότητα έρχεται ένας ορισμένος βαθμός κινδύνου. Το γεγονός ότι ο καθένας μπορεί να κυκλοφορήσει πρόσθετα σημαίνει ότι δεν υπάρχει αποτελεσματικός ποιοτικός έλεγχος. Τα πρόσθετα που διανέμονται με το GIMP έχουν όλα δοκιμαστεί και συντονιστεί από τους προγραμματιστές. Πρόσθετα πρόσθετα διαθέσιμα στο διαδίκτυο, μπορεί να έχουν δημιουργηθεί μαζί σε λίγες ώρες και στη συνέχεια να έχουν εγκαταλειφθεί. Ορισμένοι δημιουργοί προσθέτων δεν ενδιαφέρονται για την ευρωστία, και ακόμη και για εκείνους που ενδιαφέρονται, η ικανότητά τους να δοκιμάζουν σε μια ποικιλία συστημάτων σε διάφορες καταστάσεις είναι συχνά αρκετά περιορισμένη. Βασικά, όταν κατεβάζετε ένα πρόσθετο, λαμβάνετε κάτι δωρεάν και μερικές φορές παίρνετε ακριβώς αυτό που πληρώνετε. Αυτό δεν είναι για να σας αποθαρρύνει, απλώς για να βεβαιωθείτε ότι καταλαβαίνετε ότι δεν θα σας προσφέρουν όλα τα πρόσθετα που είναι διαθέσιμα στο διαδίκτυο αυτό που περιμένετε από αυτά.

[Προειδοποίηση] Προειδοποίηση

Τα πρόσθετα, ως πλήρως εκτελέσιμα προγράμματα, μπορούν να κάνουν όλα τα πράγματα που μπορεί να κάνει οποιοδήποτε άλλο πρόγραμμα. Αυτό περιλαμβάνει την εγκατάσταση κερκόπορτας στο σύστημά σας, ή τον κίνδυνο της ασφάλειάς του με άλλο τρόπο. Μην εγκαθιστάτε ένα πρόσθετο, εκτός αν προέρχεται από αξιόπιστη πηγή.

[Σημείωση] Σημείωση

Τα πρόσθετα που έχουν γραφτεί για μια συγκεκριμένη έκδοση του GIMP μπορεί να μην λειτουργούν πάντα καλά σε άλλες εκδόσεις. Αν και γενικά η ομάδα του GIMP προσπαθεί να ελαχιστοποιήσει τις αλλαγές που επηρεάζουν τα πρόσθετα. Συνήθως, η μόνη φορά που μπορείτε να περιμένετε σοβαρά προβλήματα με τα πρόσθετα, είναι όταν αλλάζει η κύρια έκδοση του GIMP. Όταν ένα πρόσθετο που έχει φτιαχτεί για μια παλαιότερη έκδοση δεν λειτουργεί πλέον σωστά, πρέπει να μεταφερθεί. Μερικές φορές αυτό είναι εύκολο, μερικές φορές όχι. Το συμπέρασμα είναι ότι: πριν προσπαθήσετε να εγκαταστήσετε ένα πρόσθετο, βεβαιωθείτε ότι είναι συμβατό με την έκδοση του GIMP που διαθέτετε.

1.2. Χρήση προσθέτων

Για το μεγαλύτερο μέρος μπορείτε να χρησιμοποιήσετε όπως οποιοδήποτε άλλο εργαλείο του GIMP, χωρίς να είναι ανάγκη να ξέρετε ότι είναι ένα πρόσθετο. Αλλά υπάρχουν κάποια πράγματα για τα πρόσθετα που είναι χρήσιμο να καταλαβαίνετε.

Το ένα είναι ότι τα πρόσθετα δεν είναι γενικά τόσο ισχυρά όσο ο πυρήνας του GIMP. Όταν το GIMP καταρρέει, αυτό θεωρείται πολύ σοβαρό: μπορεί να κοστίσει στον χρήστη πολύ κόπο και πονοκέφαλο. Όταν ένα πρόσθετο καταρρέει, οι συνέπειες δεν είναι συνήθως τόσο σοβαρές. Στις περισσότερες περιπτώσεις μπορείτε να συνεχίσετε να εργάζεστε χωρίς να ανησυχείτε πολύ γι' αυτό.

[Σημείωση] Σημείωση

Επειδή τα πρόσθετα είναι ξεχωριστά προγράμματα, επικοινωνούν με το GIMP με έναν ιδιαίτερο τρόπο: Οι προγραμματιστές του GIMP το αποκαλούν «συνομιλία μέσω καλωδίου». Όταν ένα πρόσθετο καταρρέει, η επικοινωνία διακόπτεται και μπορεί να δείτε ένα μήνυμα σφάλματος για «σφάλμα ανάγνωσης καλωδίου».

[Υπόδειξη] Υπόδειξη

Όταν ένα πρόσθετο καταρρέει, το GIMP σας εμφανίζει ένα πολύ απαίσιο μήνυμα που σας λέει ότι το πρόσθετο άφησε το GIMP σε μια κατάσταση κατάρρευσης και θα πρέπει να σκεφτείτε να αποθηκεύσετε τις εικόνες σας και να εγκαταλείψετε. Μιλώντας αυστηρά, αυτό είναι ολότελα σωστό, επειδή τα πρόσθετα έχουν τη δύναμη να μεταβάλλουν σχεδόν τα πάντα στο GIMP, αλλά για πρακτικούς σκοπούς, η πείρα έχει δείξει ότι η κατάρρευση είναι σπάνια και πολλοί χρήστες συνεχίζουν την εργασία τους, χωρίς να ανησυχούν για αυτό. Η συμβουλή μας είναι να σκεφτείτε πόσο πρόβλημα μπορεί να προκαλέσει, εάν κάτι πήγαινε στραβά και να αξιολογήσετε τις πιθανότητες.

Εξαιτίας του τρόπου επικοινωνίας των πρόσθετων με το GIMP, δεν έχουν κανένα μηχανισμό για να ενημερώνονται για τις αλλαγές που κάνετε σε μια εικόνα μετά την εκκίνηση του πρόσθετου. Εάν ξεκινήσετε ένα πρόσθετο και στη συνέχεια τροποποιήσετε την εικόνα χρησιμοποιώντας κάποιο άλλο εργαλείο, το πρόσθετο μπορεί να καταρρεύσει. Ακόμα κι αν δεν το κάνει, κάτι τέτοιο μπορεί να προκαλέσει λανθασμένα αποτελέσματα. Θα πρέπει να αποφεύγετε να εκτελείτε περισσότερα από ένα πρόσθετα ταυτόχρονα σε μια εικόνα και να αποφεύγετε να κάνετε οτιδήποτε στην εικόνα μέχρι το πρόσθετο να ολοκληρώσει την εργασία του σε αυτήν. Εάν αγνοήσετε αυτήν τη συμβουλή, όχι μόνο μπορεί να καταστρέψετε την εικόνα, αλλά μπορεί επίσης να καταστρέψετε το σύστημα αναίρεσης, ώστε να μην μπορείτε να ανακάμψετε από το λάθος σας.

1.3. Εγκατάσταση νέων προσθέτων

Τα πρόσθετα που διανέμονται με το GIMP δεν απαιτούν εγκατάσταση. Πρόσθετα που μεταφορτώνετε μόνοι σας απαιτούν εγκατάσταση. Συνήθως η προεπιλεγμένη τοποθεσία βρίσκεται στον κατάλογο χρήστη του GIMP, σε έναν φάκελο κάτω από το /plug-ins, όπου το όνομα του φακέλου πρέπει να είναι ίδιο με το όνομα αρχείου του προσθέτου. Μπορείτε να βρείτε τις προεπιλεγμένες τοποθεσίες όπου το GIMP αναζητά πρόσθετα στις Προτιμήσεις φακέλων δεδομένων. Εκεί, μπορείτε επίσης να προσθέσετε νέες τοποθεσίες όπου το GIMP θα πρέπει να αναζητήσει πρόσθετα. Υπάρχουν πολλά σενάρια, ανάλογα με το λειτουργικό σύστημα που χρησιμοποιείτε και τον τρόπο δομής του προσθέτου.

1.3.1. Συστήματα Linux / παρόμοια με Unix

Τα περισσότερα πρόσθετα ανήκουν σε δύο κατηγορίες: μικρά των οποίων ο πηγαίος κώδικας διανέμεται ως από αρχείο .c, και μεγαλύτερα των οποίων ο πηγαίος κώδικας διανέμεται ως κατάλογος που περιέχει πολλαπλά αρχεία μαζί με ένα Makefile.

Για ένα απλό πρόσθετο ενός αρχείου, ονομάστε το borker.c, η εγκατάστασή του είναι απλά θέμα εκτέλεσης της εντολής gimptool-3.0 --install borker.c. Αυτή η εντολή μεταγλωττίζει το πρόσθετο και το εγκαθιστά στον προσωπικό σας κατάλογο πρόσθετων, ~/gimp-3.0/plug-ins, εκτός εάν τον έχετε αλλάξει. Αυτό θα προκαλέσει την αυτόματη φόρτωσή του την επόμενη φορά που θα εκκινήσετε το GIMP. Δεν χρειάζεται να είστε ρίζα (root) για να κάνετε αυτά τα πράγματα. Στην πραγματικότητα, δεν θα έπρεπε να είστε. Εάν το πρόσθετο δεν καταφέρει να μεταγλωττιστεί, τότε, γίνετε δημιουργικοί.

1.3.2. Windows

Τα περισσότερα πρόσθετα του GIMP που είναι διαθέσιμα στα Windows παρέχουν είτε ένα πρόγραμμα εγκατάστασης, είτε μπορούν να μεταφορτωθούν σε προ-μεταγλωττισμένη δυαδική μορφή, έτοιμη να αντιγραφεί σε έναν φάκελο της επιλογής σας που αναγνωρίζεται από το GIMP.

Εάν υπάρχει διαθέσιμος ένας εγκαταστάτης, αυτός θα πρέπει να κάνει όλη τη δουλειά για εσάς επιλέγοντας έναν κατάλληλο φάκελο και αντιγράφοντας όλα τα σχετικά αρχεία. Εάν όχι, ίσως χρειαστεί να ελέγξετε τις προτιμήσεις φακέλων του GIMP στους οποίους θα πρέπει να αντιγραφούν τα πρόσθετα. Θυμηθείτε, κάθε πρόσθετο πρέπει να βρίσκεται στο δικό του φάκελο με το ίδιο όνομα με το πρόσθετο.

1.3.3. Apple Mac OS X

Ο τρόπος με τον οποίο εγκαθιστάτε τα πρόσθετα στο OS X εξαρτάται κυρίως από τον τρόπο με τον οποίο εγκαταστήσατε το ίδιο το GIMP. Εάν ήσασταν από τους γενναίους και εγκαταστήσατε το GIMP μέσω ενός από τους διαχειριστές πακέτων όπως το fink [FINK], ή το darwinports [DARWINORTS], η εγκατάσταση των πρόσθετων λειτουργεί ακριβώς όπως περιγράφεται ήδη για την πλατφόρμα Linux. Η μόνη διαφορά είναι ότι μερικά πρόσθετα μπορεί να είναι ακόμη και διαθέσιμα στο αποθετήριο του διαχειριστή πακέτων σας, οπότε δοκιμάστε το.

Εάν, από την άλλη μεριά, προτιμάτε να πάρετε ένα προδομημένο πακέτο του GIMP όπως το GIMP.app, πιθανότατα θα θέλετε και ένα προδομημένο επίσης πρόσθετο. Μπορείτε να προσπαθήσετε να αποκτήσετε μια προδομημένη έκδοση του πρόσθετου των ονείρων σας από τον συγγραφέα του πρόσθετου. Η δημιουργία των δικών σας δυαδικών αρχείων δυστυχώς περιλαμβάνει την εγκατάσταση του GIMP.

1.3.4. Εκτέλεση του εγκατεστημένου προσθέτου

Αφού εγκαταστήσετε το πρόσθετο, πώς το ενεργοποιείτε; Η διαδρομή μενού καθορίζεται από το ίδιο το πρόσθετο, επομένως για να απαντήσετε σε αυτό, πρέπει είτε να δείτε την τεκμηρίωση για το πρόσθετο (εάν υπάρχει), να εξερευνήσετε τα μενού ή να χρησιμοποιήσετε την λειτουργία αναζήτησης εντολών του GIMP πατώντας / και, στη συνέχεια, εισάγοντας το όνομα του προσθέτου. Εάν ξέρετε πώς να διαβάζετε τον πηγαίο κώδικα, μπορείτε επίσης να τον ελέγξετε για να δείτε σε ποιο μενού καταχωρείται το ίδιο.

Για πιο σύνθετα πρόσθετα, οργανωμένα ως κατάλογος με πολλά αρχεία, συνήθως υπάρχει ένα αρχείο μέσα που ονομάζεται INSTALL, ή README, με οδηγίες. Εάν όχι, η καλύτερη συμβουλή είναι να πετάξετε το πρόσθετο στα σκουπίδια και να ξοδέψετε τον χρόνο σας σε κάτι άλλο: οποιοσδήποτε κώδικας γραμμένος με τόσο λίγη ανησυχία για τον χρήστη είναι πιθανό να απογοητεύσει με μυριάδες τρόπους.

Εάν εγκαθιστάτε στον προσωπικό σας κατάλογο προσθέτων ένα πρόσθετο με το ίδιο όνομα με τον κατάλογο προσθέτων του συστήματος, μόνο ένα μπορεί να φορτωθεί και θα είναι το πρόσθετο στον αρχικό σας κατάλογο. Θα πάρετε μηνύματα που σας το λένε, κάθε φορά που ξεκινάτε το GIMP. Αυτή η κατάσταση είναι προφανώς απευκτέα.

1.4. Συγγραφή προσθέτων

Εάν θέλετε να μάθετε πώς να γράψετε ένα πρόσθετο, μπορείτε να βρείτε πολύ βοήθεια στην ιστοσελίδα των αναλυτών του GIMP[GIMP-DEV-PLUGIN]. ΤοGIMP είναι ένα σύνθετο πρόγραμμα, αλλά η ομάδα ανάπτυξης έχει κάνει τεράστιες προσπάθειες για διευκόλυνση της εκμάθησης συγγραφής προσθέτων: υπάρχουν καλές οδηγίες και παραδείγματα, ενώ η κύρια βιβλιοθήκη που χρησιμοποιούν τα πρόσθετα για να αλληλεπιδράσουν με το GIMP (αποκαλούμενη «libgimp») έχει ένα καλά τεκμηριωμένο API. Οι καλοί προγραμματιστές, μαθαίνουν τροποποιώντας τα υπάρχοντα πρόσθετα και είναι συχνά ικανοί να κάνουν ενδιαφέροντα πράγματα μετά από μόνο μερικές μέρες δουλειάς.