Inkscape

Ιστορικό

Το Inkscape ξεκίνησε το 2003 ως  διακλάδωση κώδικα του έργου Sodipodi. Το Sodipodi αναπτύχθηκε από το 1999 και βασιζόταν στο Gill (Gnome Illustration Application) του Raph Levien.
Η διακλάδωση οδηγήθηκε από μια ομάδα τεσσάρων πρώην προγραμματιστών του Sodipodi (Ted Gould, Bryce Harrington, Nathan Hurst και MenTaLguY) που είχαν διαφορετικές αντιλήψεις για τους σκοπούς του έργου, το άνοιγμα των συνεισφορών σε τρίτους καθώς και τεχνικές διαφωνίες. Ανακοίνωσαν ότι, με το Inkscape, θα πρέπει να εστιάσουν την ανάπτυξη στην υλοποίηση του πλήρους προτύπου SVG, ενώ η ανάπτυξη του Sodipodi έδινε έμφαση στη δημιουργία ενός γενικής χρήσης επεξεργαστή γραφικών διανύσματος, ίσως σε βάρος του SVG.
Μετά τη διακλάδωση, οι νέοι προγραμματιστές του Inkscape το άλλαξαν πολύ: το ξανάγραψαν από C σε C++; υιοθέτησαν το πακέτο εργαλείων GTK+, συνδέσεις C++ (gtkmm)· ξανασχεδίασαν τη διεπαφή χρήστη του και προσέθεσαν νέα γνωρίσματα. Ιδιαίτερα, η υλοποίηση του προτύπου SVG, αν και ατελής, έχει εμφανίσει σταδιακή βελτίωση.
Αντί για από πάνω προς τα κάτω έλεγχο, οι προγραμματιστές του προσπάθησαν να ενθαρρύνουν τους μεμονωμένους προγραμματιστές να παίρνουν το δικαίωμά τους από την ικανότητά τους και την ενεργή ανάμειξη στο έργο. Στην πραγματικότητα, αυτές οι αξίες επιτρέπουν στους ιδρυτές του Inkscape να επιβεβαιώσουν την απόφασή τους να κάνουν το έργο χωρίς να αποθαρρύνουν τους νεοφερμένους, οι οποίοι, με τη σειρά τους, ήρθαν για να παίξουν σημαντικούς ρόλους. Η προσέλκυση νεοφερμένων υποβοηθήθηκε πολύ από την ιδιαίτερη έμφαση του έργου στην παροχή στους ενεργούς προγραμματιστές, την πλήρη πρόσβαση στον πηγαίο του κώδικα και στις προσπάθειες για συμμετοχή στην κοινότητα ανοιχτού λογισμικού και παράγωγων έργων  όπως το Open Clip Art Library).
Από το 2005, το Inkscape έχει συμμετάσχει στο πρόγραμμα Google Summer of Code.
Μέχρι το τέλος του Νοεμβρίου 2007, το  σύστημα ανίχνευσης σφαλμάτων του Inkscape εφιλοξενείτο στο Sourceforge. Κατόπιν μετακινήθηκε στο  Launchpad.

Χειρισμός αντικειμένου

Κάθε αντικείμενο στο σχέδιο μπορεί να υπόκειται σε ελεύθερους συσχετισμένους μετασχηματισμούς: μετακίνηση, περιστροφή, κλιμάκωση, στρέβλωση και έναν προσαρμόσιμο πίνακα. Οι παράμετροι μετασχηματισμού μπορούν επίσης να οριστούν αριθμητικά μέσω του διαλόγου μετασχηματισμού. Οι μετασχηματισμοί μπορούν να προσκολληθούν σε γωνίες, πλέγματα, γραμμές οδηγούς και κόμβους άλλων αντικειμένων. Τα πλέγματα, οι οδηγοί και οι ιδιότητες προσκόλλησης ορίζονται με βάση το έγγραφο. Ως εναλλακτικό της προσκόλλησης, παρέχεται ένας διάλογος στοίχισης και κατανομής, που μπορεί να εκτελέσει συνηθισμένες εργασίες στοίχισης σε επιλεγμένα αντικείμενα: π.χ. στοίχιση τους σε συγκεκριμένη κατεύθυνση, ισοκατανομή τους, τυχαία διασπορά τους και αφαίρεση επικαλύψεων μεταξύ αντικειμένων.
Τα αντικείμενα μπορούν να ομαδοποιηθούν μαζί ελεύθερα. Οι ομάδες αντικειμένων συμπεριφέρονται από πολλές απόψεις ως "ατομικά" αντικείμενα: για παράδειγμα, μπορούν να κλωνοποιηθούν ή να τους αποδοθεί ένα χρώμα. Τα αντικείμενα που αποτελούν μια ομάδα μπορούν να επεξεργαστούν χωρίς να πρέπει να αποομαδοποιηθούν πρώτα, μέσω μιας εντολής εισαγωγής ομάδας: η ομάδα μπορεί τότε να επεξεργαστεί ως μια προσωρινή στρώση. Η διάταξη Z των αντικειμένων μπορεί να επεξεργαστεί είτε χρησιμοποιώντας στρώσεις, ή με χειροκίνητη μετακίνηση του αντικειμένου πάνω και κάτω στη στοίβα Z. Οι στρώσεις μπορούν να κλειδωθούν ή να κρυφτούν, αποτρέποντας τροποποίηση και τυχαία επιλογή.
Ένα ειδικό εργαλείο,  δημιουργία κλωνοποιημένων παραθέσεων, παρέχεται για δημιουργία συμμετρικών ή πλεγματοειδών σχεδίων χρησιμοποιώντας ποικίλες συμμετρίες επιπέδων.
Τα αντικείμενα μπορούν να αποκοπούν, να αντιγραφούν και να επικολληθούν χρησιμοποιώντας ένα πρόχειρο. Όμως, από την έκδοση 0.46, το Inkscape χρησιμοποιεί μια εσωτερική μεταβλητή αντί για το πρόχειρο του συστήματος, που περιορίζει τις λειτουργίες αντιγραφής και επικόλλησης σε ένα στιγμιότυπο εφαρμογής. Τα αντικείμενα μπορούν να αντιγραφούν μεταξύ εγγράφων ανοίγοντας τα από το μενού Αρχείο σε ένα ήδη ανοιχτό παράθυρο, αντί να ανοιχτεί ένα δεύτερο αρχείο από το λειτουργικό σύστημα κελύφους

Λειτουργίες σε μονοπάτια

Το Inkscape έχει ένα εκτεταμένο σύνολο εργαλείων για επεξεργασία μονοπατιών, καθώς είναι τα βασικά στοιχεία ενός αρχείου διανύσματος. Το "εργαλείο κόμβου" επιτρέπει την επεξεργασία απλών και πολλαπλών μονοπατιών σε απλά και πολλαπλά επίπεδα κόμβων με επεξεργασία της θέσης των κόμβων και των σημείων ελέγχου των μονοπατιών  Μπεζιέ ή καμπύλες σπειρογραφήματος. Τα τμήματα του μονοπατιού μπορούν να προσαρμοστούν με μεταφορά τους. Όταν επιλέγονται πολλαπλοί κόμβοι, μπορούν να μετακινηθούν, να κλιμακωθούν και να περιστραφούν χρησιμοποιώντας συντόμευση πληκτρολογίου ή στοιχεία ελέγχου ποντικιού. Πρόσθετοι κόμβοι μπορούν να εισαχθούν στα μονοπάτια σε αυθαίρετες ή ομαλές τοποθεσίες και μια επίδραση μπορεί να χρησιμοποιηθεί για εισαγωγή κόμβων σε προκαθορισμένα διαστήματα. Όταν διαγράφονται κόμβοι, οι λαβές στους κόμβους που απομένουν  προσαρμόζονται για να διατηρήσουν το αρχικό σχήμα όσο πιο καλά μπορούν.
Το εργαλείο μικρορυθμίσεων παρέχεται για υψηλότερου επιπέδου επεξεργασία ολόκληρων αντικειμένων ή τμημάτων ενός αντικειμένου. Μπορεί να μετατοπίσει, να απωθήσει/έλξει, να τοποθετήσει τυχαία, να συρρικνώσει/μεγεθύνει, να περιστρέψει, να αντιγράψει/διαγράψει επιλεγμένα ολόκληρα αντικείμενα. Οι κόμβοι δημιουργούνται δυναμικά και διαγράφονται όταν χρειάζεται, ενώ χρησιμοποιείται αυτό το εργαλείο, έτσι μπορεί επίσης να χρησιμοποιηθεί σε απλά μονοπάτια χωρίς προηγούμενη επεξεργασία.
Άλλες πιθανές λειτουργίες υψηλού επιπέδου σε μονοπάτια περιλαμβάνουν: Την αντιστάθμιση ή ένθεση  ενός μονοπατιού κατά ένα σταθερό ποσό. Τη δημιουργία μιας ασύνδετης δυναμικής αντιστάθμισης ενός μονοπατιού που μπορεί να ρυθμιστεί χρησιμοποιώντας το εργαλείο κόμβων. Τη δημιουργία μιας συνδεδεμένης αντιστάθμισης ενός μονοπατιού που θα ενημερωθεί όποτε το αρχικό τροποποιείται. Τη μετατροπή ενός αντικειμένου άλλου σχήματος όπως μια σπείρα ή κειμένου σε μονοπάτι. Τη μετατροπή μιας πινελιάς ενός σχήματος σε μονοπάτι. Την απλοποίηση ενός μονοπατιού για να περιέχει λιγότερους κόμβους, ενώ διατηρεί το σχήμα. Την εκτέλεση πράξεων Μπουλ όπως ένωση, διαφορά, τομή ή αποκλεισμός σε αυτά.
Οι πρόσφατες εκδόσεις περιλαμβάνουν ένα γνώρισμα που λέγεται Ζωντανές επιδράσεις σε μονοπάτι, που μπορεί να εφαρμόσει ποικίλους τροποποιητές σε ένα μονοπάτι. Παραμόρφωση φακέλου είναι διαθέσιμη μέσω των επιδράσεων μονοπατιού και παρέχει μια επίδραση προοπτικής. Υπάρχουν περισσότερα από δώδεκα από αυτές τις ζωντανές επιδράσεις μονοπατιού. Οι  ζωντανές επιδράσεις μονοπατιού μπορούν να στοιβαχτούν σε ένα μοναδικό αντικείμενο και να έχουν ζωντανή αλληλεπίδραση με τον καμβά και το μενού με βάση την επεξεργασία των επιδράσεων.

Υποστήριξη κειμένου

Το Inkscape υποστηρίζει επεξεργασία κειμένου και για το κανονικό πολύστηλο κείμενο (στοιχείο του SVG <text>) και για το ρέον κείμενο (το μη πρότυπο στοιχείο,  <flowRoot> που προτάθηκε παλιότερα για SVG 1.2). Από την έκδοση 0.47, το ρέον κείμενο δεν αποδίδεται από άλλες εφαρμογές, που οφείλεται σε έλλειψη μιας κατάλληλης παράλληλης δομής <switch>στο έγγραφο SVG. Το στοιχείο Tiny SVG 1.2 <textArea> δεν υποστηρίζεται. Όλο το κείμενο είναι άμεσα επεξεργάσιμο στον καμβά. Η απόδοση κειμένου βασίζεται στη βιβλιοθήκη Pango, που επιτρέπει στο Inkscape να υποστηρίξει πολλά σύνθετα σενάρια που περιλαμβάνουν εβραϊκά, αραβικά, τάι, θιβετιανά, κλπ. πύκνωση και απόσταση γραμμάτων μπορούν να ρυθμιστούν σε μια βάση ανά γλύφη χρησιμοποιώντας συντομεύσεις πληκτρολογίου. Η τοποθέτηση κειμένου σε μονοπάτι υποστηρίζεται και το κείμενο καθώς και το μονοπάτι παραμένουν παραμένουν επεξεργάσιμα.

Απόδοση

Αντίθετα με πολλές άλλες εφαρμογές GTK+, το Inkscape χρησιμοποιεί τη δική του βιβλιοθήκη απόδοσης για τη δημιουργία γραφικών, που λέγεται libnr. Η libnr μπορεί να αποδώσει εικόνες μέχρι 256x εστίαση με εξομάλυνση και ενημέρωση γραφικών κατά τους μετασχηματισμούς. Το Inkscape χρησιμοποιεί τη βιβλιοθήκη γραφικών Cairo για να αποδώσει μια κατάσταση περιγράμματος (από την έκδοση 0.46).

Διεπαφή και χρηστικότητα

Μια από τις κύριες προτεραιότητες του έργου Inkscape είναι η συνεπής διεπαφή και η ευχρηστία. Αυτό συμπεριλαμβάνει προσπάθειες να παρακολουθήσει το GNOME, γενική προσβασιμότητα πληκτρολογίου και βολική επεξεργασία στον καμβά. Το Inkscape έχει πετύχει σημαντική πρόοδο στη χρηστικότητα από την αρχή του έργου.
Ο αριθμός των αιωρούμενων πλαισίων διαλόγων έχει μειωθεί, με τις λειτουργίες τους διαθέσιμες χρησιμοποιώντας συντομεύσεις πληκτρολογίου ή στις στις προσαρτημένες εργαλειοθήκες στο παράθυρο επεξεργασίας. Τα στοιχεία ελέγχου της εργαλειοθήκης στην κορυφή του παραθύρου εμφανίζουν πάντα τα σχετικά στοιχεία ελέγχου με το τρέχον εργαλείο.
Όλοι οι μετασχηματισμοί διανυσμάτων, η κλιμάκωση, η περιστροφή και η τοποθέτηση (πλην στρέβλωσης) έχουν συντομεύσεις πληκτρολογίου με συνεπείς τροποποιητές , π.χ., μετασχηματισμούς Alt κατά 1 εικονοστοιχείο οθόνης στην τρέχουσα εστίαση, το Shift πολλαπλασιάζει τον μετασχηματισμό κατά 10, κλπ.)· αυτά τα κλειδιά δουλεύουν σε κόμβους του εργαλείου κόμβος καθώς και σε αντικείμενα στο εργαλείο επιλογής. Οι πιο κοινές λειτουργίες (όπως μετασχηματισμοί, εστίαση, διάταξη-z) έχουν συνεπείς συντομεύσεις ενός πλήκτρου.
Το Inkscape παρέχει αιωρούμενες συμβουλές οθόνης και και υποδείξεις στη γραμμή κατάστασης για όλα τα πλήκτρα, στοιχεία ελέγχου, εντολές, πλήκτρα, και λαβές στον καμβά. Τα μηνύματα υποδείξεων είναι δυναμικά: ένα δοσμένο αντικείμενο μπορεί να εμφανίσει μέχρι τέσσερις υποδείξεις κατά την επεξεργασία του σε μόλις ένα εργαλείο. Η ενημέρωση υποδείξεων βασίζεται σε δύο στοιχεία —στη χρήση του εργαλείου και στον τύπο του του επεξεργαζόμενου αντικειμένου/κόμβου/λαβής—κειμένου, σχημάτων, μονοπατιών, τύπων κόμβου, κλπ. Το Inkscape έρχεται με ένα πλήρες πληκτρολόγιο και αναφορές ποντικιού (σε HTML και SVG) και αρκετά διαδραστικά μαθήματα μαθήματα σε SVG.
Η διεπαφή του Sodipodi (προκατόχου του Inkscape) βασιζόταν σε αυτά του CorelDRAW και του GIMP. Η διεπαφή του  Inkscape έχει επηρεαστεί από την αντίστοιχη του Xara Xtreme.

Συμβατότητα

Η εγγενής μορφή εικόνας που επεξεργάζεται το Inkscape είναι η SVG, μορφή που επίσης υποστηρίζεται από το Adobe Illustrator, αλλά οι δύο εφαρμογές δεν είναι 100% συμβατές. Το Inkscape μπορεί επίσης να εξάγει σε PS, EPS και PDF.>
Η εφαρμογή των προτύπων SVG and CSS στο Inkscape  είναι ατελής. Το πιο σημαντικό είναι ότι δεν υποστηρίζει ακόμα κίνηση. Το Inkscape έχει πολυγλωσσική υποστήριξη, ειδικά για σύνθετα σενάρια, κάτι που προς το παρόν λείπει στις περισσότερες εμπορικές εφαρμογές γραφικών διανύσματος. 
Το Inkscape σε Mac OS X τυπικά τρέχει κάτω από X11.app, αν και το υποκείμενο πακέτο εργαλείων GTK+ μπορεί να μεταγλωττιστεί για να τρέχει εγγενώς κάτω από Quartz).