# Inkscape

Inkscape est un logiciel libre (et open-source) de dessin vectoriel, multiplateforme (Windows, Mac OS X (sous X11), GNU/Linux et FreeBSD). Il gère des fichiers conformes aux standards XML, SVG et CSS du W3C.
Le logiciel est intégré à la liste des logiciels libres préconisés par l’État français dans le cadre de la modernisation globale de ses systèmes d’information.
Il a des fonctionnalités similaires aux logiciels propriétaires CorelDRAW et Adobe Illustrator.

## Historique

Le développement d’Inkscape a commencé en 2003, sur la base d’un fork du projet Sodipodi, causé par des divergences au sujet de l’avancée future du développement. Sodipodi est lui-même un fork de Gill, un logiciel créé par Raph Levien (en) pour le bureau GNOME.
Inkscape est, entre autres, passé du langage de programmation C au C++, et aux bindings C++ de la bibliothèque graphique GTK+ (Gtkmm). Des changements ont aussi été effectués au niveau de l’interface utilisateur et de nouvelles fonctions ont été ajoutées.
L’accent a particulièrement été mis sur l’ergonomie et l’utilisabilité de l’interface du logiciel, notamment par une conformité accrue avec le Guide de l’interface humaine du bureau GNOME, l’utilisation de raccourcis clavier universels…

## Fonctionnalités
### Création d’objets

Inkscape permet de créer différents objets dont des lignes à main levée, des courbes de Bézier (point à point ou à main levée), des segments de droites, des lignes calligraphiques à la plume (support de l’angle et pression des tablettes graphiques), des rectangles et des carrés (il est possible d'en arrondir les coins).
Il permet aussi de créer des ellipses, des cercles, des arcs de cercle, des polygones, des spirales et des étoiles.
Le logiciel permet en plus de créer du texte, de dupliquer des objets, d'importer et de vectoriser des images matricielles.

### Manipulation d’objets

* Transformations affines (translation, symétrie, redimensionnement, rotation, déformation), de manière interactive ou par spécification de valeurs numériques ;
* Tri par empilement des calques, des groupes, et des objets (z-order) ;
* Groupement hiérarchique d’objets et de groupes ;
* Système de calques ;
* Copier et coller des objets ;
* Alignement et distribution d’objets, disposer sur une grille, éparpillage d’objets ;
* Grille et guides magnétiques.

### Remplissage et contours

* Sélecteur de couleur (RVB, TLS, CMYK, roue) ;
* Pipette à couleur ;
* Copier/coller le style des objets ;
* Remplissage par aplats de couleur, dégradés, textures et motifs, avec support de canal alpha ;
* Édition de dégradés sur le canevas avec des poignées de contrôle ;
* Éditeur de dégradés (linéaires et radiaux) ;
* Bordures pointillées et « marqueurs » (objets SVG se fixant aux nœuds et extrémités des courbes).

### Opérations sur les chemins

Différentes opérations booléennes de combinaisons de deux chemins :
| Opération | Résultat |
| Original | Image représentant le résultat des opérations. |
| Union | Image représentant le résultat des opérations. |
| Différence | Image représentant le résultat des opérations. |
| Intersection | Image représentant le résultat des opérations. |
| Exclusion | Image représentant le résultat des opérations. |
| Division | Image représentant le résultat des opérations. |
| Découper les chemins | Image représentant le résultat des opérations. |
* Édition de nœuds : déplacement, poignées de contrôle des courbes de Bézier, alignement et distribution de nœuds, redimensionnement et rotation de groupes de nœuds ;
* Conversion en chemin des objets textes, formes et bordures ;
* Opérations booléennes (union, intersection, différence, exclusion, division) ;
* Simplification, perturbation, et fractalisation des chemins ;
* Création de lignes extérieures avec décalages (offset), se modifiant dynamiquement en fonction des formes dont elles sont dérivées.

### Support du texte

* Texte multi-ligne (SVG 1.0/1.1 <text>) ;
* Ajustement de l’interlignage et de l'interlettrage ;
* Modification du style, des couleurs, de la taille des caractères ;
* Texte attaché à une courbe pour suivre son chemin ;
* Utilisation de la bibliothèque Pango ;
* Utilisation de toutes les polices vectorielles installées sur le système.

### Rendu

* Affichage et rendu anticrénelés ;
* Transparence via canal alpha pour l’affichage et l’export au format PNG ;
* Rendu des objets durant leurs transformations.

### Divers

* Outil de connexion d'objets pour les diagrammes ;
* Éditeur XML intégré : visualisation et modification en direct de l’arbre du document SVG en cours ;
* Importation de fichiers bitmap et vectoriels de différents formats ;
* Vectorisation visuelle des images bitmap avec POTrace ;
* Exportation aux formats PNG, PostScript, DXF et ODG ;
* Importation et exportation au format PDF ;
* Inkscape peut importer, exporter et sauvegarder au format EMF (Enhanced MetaFile) (seulement sous Windows pour l'instant) ou Windows Metafile (WMF), ce qui permet notamment d'ouvrir et de modifier les Clip arts de MS Office dans Inkscape, ou inversement d'insérer les dessins vectoriels créés sous Inkscape dans MS Office ;
* Options en ligne de commande pour l'exportation, la conversion et l'analyse de fichiers SVG ;
* Métadonnées RDF (auteur, date, licence, etc.) ;
* Support de plugins en langage Python (fonctions de fractale, de perturbation, d’interpolation des courbes) ;
* Support partiel des feuilles de style en cascade (CSS), la gestion des feuilles de style CSS est limitée ;
* Insertion de symboles mathématiques et de lettres grecques.
Inkscape intègre une implémentation partielle du format de fichiers SVG. Il ne permet pas l'animation des objets vectoriels.

### Extensions

* L'extension Sozi permet de produire des présentations sous forme SVG ; elle est sous licence libre.

### Incompatibilité ayant affecté macOS Ventura

Un problème a affecté certaines applications sur macOS Ventura (macOS 13) basées sur le toolkit GTK3, rendant l'application insensible à certains mouvements de la souris. Inkscape 1.2.2 a été affecté. Le problème a été résolu en juillet 2023 avec la publication de la version 1.3 d'Inkscape.

## Applications

Dans le projet OpenStreetMap, le moteur de rendu Osmarender utilise Inkscape pour générer les éléments de pavage (tiles en anglais). La génération des morceaux de carte, bitmap en format PNG est distribuée via le sous-projet Tiles@Home (comme dans SETI@home).