Inkscape

**Inkscape** on vaba tarkvara vektorgraafika töötlemiseks. Tarkvara arenduseesmärkideks on luua võimas graafikarakendus, mis oleks täielikult ühilduv XMLi, SVG ja CSSi standarditega.

Inkscape toetab mitmeid platvorme ja jookseb nii Linuxi, Mac OS Xi kui Windowsi keskkondades. Inkscape ei toeta SVG standardit täielikult: põhilisteks puudusteks võib pidada animatsiooni ja SVG kirjatüüpide toe puudumise. Viimase arendusele on siiski versioonis 0.47 alus pandud.

## Ajalugu

Inkscape harunes Lauris Kaplinski Sodipodi programmist. Sodipodi oli omakorda harunenud Ralph Levieni programmist Gill (Gnome Illustration Application).

Inkscape'i loonud varasemad Sodipodi autorid (Ted Gould, Bryce Harrington, Nathan Hurst, ja MenTaLguY) põhjendasid sammu põhimõtteliste vastuoludega projekti eesmärkide osas. Inkscape soovis keskenduda SVG standardi täielikule toetamisele, samas kui Sodipodi soovis luua üldotstarbelist vektorgraafikaprogrammi, SVG standardit vajadusel ignoreerides.

Pärast haru loomist on liigutud C keelelt C++ peale ning seetõttu vahetatud ka kasutajaliidese teeke; programmi kasutajaliides on saanud uusi funktsioone. Programmi SVG tugi on paranenud, kuid standardi implementatsioon ei ole veel täielik.

Keskse juhtimise asemel püüdleb projekti kogukond egalitaristliku juhtimise suunas, kus autoriteedi määravad arendaja individuaalsed võimed ja aktiivne osavõtt. Seetõttu on aktiivsetel arendajatel projekti lähtekoodidele täielik ligipääs ja püütakse osaleda ka vaba tarkvara kogukonna projektides (tihti on selleks ühis- või *spin-off* projektid, nagu Open Art Library). Kuigi projekti loojatel on praegu suur sõnaõigus, täidavad tähtsaid kohuseid ka paljud uustulnukad.

Pärast Xara otsust litsentsida Xara Xtreme GPL-iga, avaldas firma soovi leida Inkscape'iga koostöövõimalusi koodi jagamiseks, koostöö koordineerimiseks ja saadaolevast kommertstarkvarast kvaliteedilt möödumiseks.

Alates aastast 2005 on Inkscape osalenud Google Summer of Code'i projektis.

Programmi veahaldus kolis 2007. aasta novembris Sourceforge'i alt Launchpadi alla.

## Funktsionaalsus
### Objektide loomine
Objektide põhitüübid on:
* jooned – pliiatsitööriistaga saab luua vabakäejooni; samuti on võimalik punkthaaval Bezier' kõveraid luua; kalligraafiatööriistaga saab tõmmata kalligraafilisi vabakäejooni, mis meenutavad sule- või pintslitõmbeid.
* ristkülikud – ristkülikutööriist võimaldab riskülikutele määrata ümaraid nurki
* ellipsid – ellipsitööriist võimaldab ellipseid muuta kaarteks või sektoriteks
* tähed/hulktahukad – hulktahukatööriista abil loodud tähtede abil saab luua spirograafilisi efekte.
* tekst – tekst luuakse tekstitööriista abil. Tekstid saavad kasutada süsteemis olevaid fonte ja neid saab muuta kõverateks. Toetatud on nii tavaline tekst kui tekstikastid; teksti saab muuta kõigi muutmistööriistadega ning tekst võib järgida joont ning seda saab käsitsi sõrendada.
* rastergraafika – Inkscape toetab rastergraafika (PNG, JPG, BMP) eksportimist ning lisamist failidele. Vaikimisi on lisatud failid viidatud, kuid neid saab efekti abil ka faili kaasata. Rastergraafika vektoriseerimiseks on loodud kasutajaliides Potrace'ile.
* kloonimine – Inkscape võimaldab objektist luua seotud koopia, mille originaali muutmisel ka koopia muutub. Originaali kustutamisel seos kaob. Võimalik on luua ka kloonitud objektide jadasid.

### Objektide töötlemine
Objektidele saab rakendada affiingeomeetrilisi transformatsioone (liigutamine, pööramine, skaleerimine ja kallutamine). Teisenduste parameetreid on võimalik sisestada ka dialoogiaknas. Transformatsioonid võivad abi- ja alusjoonte, nurkade ja teiste objektidega arvestada (tõmme). Abi- ja alusjooned ja nendega arvestamine salvestub koos dokumendiga. Alternatiivina tõmbele võib kasutada joondamis- ja jagamisdialoogi, mille abil võib valitud objektid mingis suunas joondada või jaotada nad laiali võrdselt, juhuslikult või nii, et nad üksteist ei kata.

Objekte on võimalik suvaliselt grupeerida. Grupid käituvad paljuski nagu "atomaarsed" objektid ning neid on võimalik tervikuna töödelda – näiteks on neid võimalik kloonida või värvida. Gruppe saab muuta ka ilma neid lõhkumata. Objektide järjestust on võimalik organiseerida kihtide abil ning ka neid ükshaaval üles- ja allapoole liigutades. Kihte on võimalik töö ajaks lukustada ja peita.

Olemas on spetsiaalne kloonmustri tööriist erineva sümmeetriaga mustrite loomiseks.

Objektide kopeerimine ja asetamine on võimalik, seda kohati ka teiste programmide vahel (ver. 0.74 alates).

### Objektide kujundus
Objektide väljanägemise määravad järgmised parameetrid:
* taustavärv – võib olla ühtlane värv, lineaarne või radiaalne värviüleminek, muster või vanemobjektilt päritud värv. Värvivalik toetab RGBA-ks teisenduvaid värviruume. Mustreid saab luua suvalistest objektidest või kasutada sisseehitatud mustreid.
* piirjoon – võib omada samu omadusi mis taust, kuid kehtib vaid objekti piirjoone kohta.
* joone laad – lubab varieerida joone jämedust, nurkade teravust, alguse- ja lõputähist (näiteks osutavate joonte puhul) ning katkendlikkust. Lisaks on võimalik joonele paigutada märke ka keskele (näiteks: kiri "lõika siit" ja kääripilt).
* läbipaistvus – lisaks värviläbipaistvusele on võimalik läbipaistvus määrata ka terve objekti jaoks.
* filtrid – Gaussi udu on võimalik lisada objektidele lihtsalt; dialoogis Filter saab konstrueerida ka keerukamaid filtreid.

Objekte saab muuta ka maskide ja lõikejoonte abil, mille võivad moodustada nii eraldi objektid kui nende grupid.

Objektide kujundus on neist eraldiseisev, lõikepuhvrist on võimalik puhvris oleva objekti kujundust asetada valitud objektile.

### Töö joontega

Inkscape'il on ulatuslik tööriistavalik joonte kui vektorkujutiste põhikomponentide muutmiseks. Sõlmpunktide redaktor võimaldab muuta joont ühe punkti tasemel ja võimaldab Bezier' kõveraid manipulaatorite ja kontrollpunktide abil muuta. Joonesegmente saab muuta neid hiirega tõmmates ning klaviatuuri kiirklahvide abil on neid võimalik ka skaleerida ja pöörata. Joontele saab vabalt valitud kohtadesse lisada punkte ning efekti abil saab seda teha määratud vahedega. Punktide kustutamisel muudetakse ülejäänud punktide manipulaatoreid nii, et algne joon muutuks võimalikult vähe.

Joonte täpsemaks muutmiseks on olemas tööriist nende lükkamiseks, kasvatamiseks, kahandamiseks, kokkutõmbeks, eemaletõukeks või käänulisemaks muutmiseks. Selle tööriista kasutamisel tekivad ja kaovad uued punktid vajadusel ise, mis võimaldab tööriista kasutada ka joone eelneva ettevalmistuseta.

Muud võimalikud kõrgtaseme tööriistad on näiteks infokadudega kujundite suurendamine või vähendamine, või siis kujundile automaatselt suurema ümberjoone või sisejoone loomine. Sellist piirjoont saab panna ka sõltuma algsest kujundist nii, et originaali muutmine kajastub ka ümbritsevas piirjoones. Inkscape võimaldab kujunditeks muuta spiraale, teksti, joont. Kujundeid saab lihtsustada ja nendega sooritada Boole'i operatsioone nagu näiteks liitmine, vahe, ühisosa või täiend.

Uuemates versioonides on võimalik kujunditele määrata ka eriefekte, mis töötlevad kujundid näiteks hammasratasteks või painutavad kujundit mõnd joont järgima.

### Tekstitugi
Inkscape toetab teksti redigeerimist mitmerealise tekstina (SVG element ) ja voogava tekstina (ebastandardne element , mida püüti kaasata SVG versiooni 1.2). Alates versioonist 0.47 ei näita ülejäänud programmid voogavat teksti, sest alternatiivide jaoks puudub lülitamiselement ja ülejäänud programmid seda ei toeta. SVG 1.2 Tiny elementi  ei toetata. Kogu teksti saab redigeerida otse tööpinnal. Teksti redigeerimiseks kasutatakse Pango teeki, mis võimaldab Inkscape'il toetada ka keerulisi kirjaviise, näiteks Heebrea, Araabia, Tai, Tiibeti jne. Tähtevahede tähthaaval korrigeerimine ja sõrendamine toimub klaviatuuri kiirklahvide abil. Teksti saab panna järgima joont, sealjuures jäävad mõlemad muudetavaks.

## Pildi esitamine

Erinevalt paljudest teistest GTK+ rakendustest kasutab Inkscape oma graafikaesitusteeki libnr, mis suudab suurendada 25600%, muutumata sealjuures nurgeliseks. Graafikaelemente suudetakse joonistada ka transformeerimiste käigus. Keeruliste kujutiste töötlemise kiirendamiseks on olemas ka režiim ainult piirjoontega töötamiseks. Inkscape kasutab alates versioonist 0.46 piirjoonte joonistamiseks Cairo teeki.

### Muu

* XML puu redaktor, SVG dokumendistruktuuri lähtetekstina muutmiseks;
* Ühendustööriist algoritmidega graafide ja joonekorrektuuri tegemiseks;
* RDF metainfo muutmine;
* Käsurealiides, põhiliselt pildivormingute teisendamiseks;
* Üle 40 kasutajaliidese keele;
* Laieneb uutele failivormingutele, efektidele ja muule funktsionaalsusele;
* Matemaatiliste diagrammide tugi, LaTeX toega ;
* Eksperimentaalne skriptimistugi.

## Liides ja kasutusmugavus
Üks Inkscape'i projekti prioriteetidest on kasutajaliidese järjepidevus ja kasutatavus. See tähendab, et järgitakse GNOME'i kasutajaliidese juhiseid, pakutakse hulgaliselt klaviatuuri kiirklahve ja lubatakse objekte muuta nii, et tagasiside muutuste kohta on näha kohe.

Tööpinda katvate dialoogiakende hulk on viidud miinimumini, võimaldades sama funktsionaalsust kasutada klaviatuurilt või redigeerimisakna kõrvale paigutuvatelt paneelidelt. Tööriba pakub valitud tööriista jaoks alati seostuvaid valikuid.

Kõik transformatsioonid (mitte ainult liigutamine, vaid ka skaleerimine ja pööramine) on teostuvad klaviatuurilt, omades järjepidevust ka mõjutatavate klahvide osas (Alt muudab 1 ekraanipiksli võrra, Shift korrutab muudatuse hulga 10ga jne); need nupud töötavad ka sõlmpunktide redaktori ja objektivalikuprogrammiga. Sagedaste tegevuste (nagu muutmised, suurendamine, objektide järjekord) kiirklahvid on kõik ühenupulised.

Inkscape pakub nuppude, juhikute, käskude klahvide ja tööpinnal olevate juhtelementide kohal hiirt hoides abitekste nii hiire juures kui ka olekuribal. Hiire ja klaviatuuri jaoks on olemas täielik ülevaade (HTML- ja SVG-vormingus) ning samuti on programmil kaasas mitmed interaktiivsed SVG tutvustusfailid.

Inkscape'i eellase Sodipodi liides põhines CorelDraw ja GIMPi liidestel. Inkcape'i liidest on mõjutanud Xara Xtreme.

## Vaata ka
* Vektorgraafika
* Vaba tarkvara

## Viited

## Välislingid
* Inkscape'i koduleht