Follow us on:

Home

Inkscape tutorial: Overtrekken

Een van de functies in Inkscape is een gereedschap voor het overtrekken van bitmapafbeeldingen in een <path> element voor je SVG-afbeelding. Deze korte nota's helpen je mee op weg.

Op dit moment gebruikt Inkscape de Potrace engine van Peter Selinger voor het overtrekken van bitmaps (potrace.sourceforge.net). In de toekomst gaan we mogelijk alternatieve overtrekprogramma's ondersteunen. Echter, nu is deze goede tool meer dan voldoende voor onze noden.

Hou in het achterhoofd dat het doel van overtrekken noch het reproduceren is van een exacte kopie van het origineel, noch bedoeld is voor het maken van een finale afbeelding. Geen enkel overtrekprogramma kan dat. Het geeft je echter een set curves die je als bron voor je afbeelding kan gebruiken.

Potrace interpreteert een zwart-witafbeelding en maakt hiervan een set curves. We hebben nu drie types invoerfilters voor Potrace om de ruwe afbeelding te converteren in iets dat Potrace kan gebruiken.

Algemeen geldt dat hoe meer donkere pixels in de intermediaire bitmap, hoe meer Potrace zal overtrekken. Omdat de hoeveelheid overtrek vergroot, is meer CPU-tijd nodig en zal het <path>-element veel groter worden. Het is een goed idee dat je als gebruiker eerst experimenteert met lichtere afbeeldingen en dan langzaam overgaat naar donkere afbeeldingen om de gewenste proportie en complexiteit van het uitvoerpad te verkrijgen.

Om de tracer te gebruiken, laad of importeer je een afbeelding, selecteer deze en klik op het commando Paden > Bitmap overtrekken of gebruik je Shift+Alt+B.

An example image

De gebruiker zal de volgende drie beschikbare filteropties zien:

Deze optie gebruikt in essentie de som van de rood-, groen- en blauwwaarde (of grijstint) van een pixel als een zwart-witindicator. De grenswaarde kan ingesteld worden van 0.0 (zwart) tot 1.0 (wit). Hoe hoger de grenswaarde, hoe kleiner het aantal pixels dat als “wit” wordt gezien en bijgevolg hoe donkerder de intermediaire afbeelding.

An example image

Deze optie gebruikt het randdetectiealgoritme van J. Canny als een snelle methode voor het vinden van lijnen met dezelfde kleurgradiënt of contrast. Dit zal een intermediaire afbeelding produceren die minder lijkt op de originele tekening dan met de optie Helderheid, maar zal wellicht curve-informatie bevatten die anders genegeerd wordt. De grenswaarde (0.0 - 1.0) past hier de grenswaarde voor de helderheid aan die bepaalt of een pixel langs de contrastrand in de uitvoer terug te vinden is. Deze instelling kan de donkerheid of randdikte in de uitvoer aanpassen.

An example image

Het resultaat van deze filter produceert een intermediaire afbeelding die zeer verschillend is van de twee andere, maar niettemin erg bruikbaar is. In tegenstelling met het tonen van lijnen met gelijke helderheid of contrast, zal deze filter randen vinden waar kleuren veranderen, zelfs bij gelijke helderheid en contrast. De instelling, aantal kleuren, bepaalt hoeveel kleuren er in de intermediaire afbeelding zouden zijn, indien deze intermediaire bitmap in kleur was. Het kent dan zwart en wit toe afhankelijk van het feit of de kleur een even of oneven index heeft.

An example image

De gebruiker zou de drie filters moeten proberen en de verschillende types uitvoer voor verschillende types afbeeldingen observeren. Er is altijd een afbeelding waar de ene filter beter werkt dan de andere.

Na het overtrekken is het aan te raden om het commando Paden > Vereenvoudigen (Ctrl+L) toe te passen op het uitvoerpad om het aantal knooppunten te reduceren. Dit vereenvoudigt het bewerken van de potrace-uitvoer. Hier is bijvoorbeeld een typische overtrek van de Oude gitaarspeler:

An example image

Zie het enorm aantal knooppunten in het pad. Na het drukken op Ctrl+L is dit een typisch resultaat:

An example image

De voorstelling is een iets benaderender en ruwer, maar de afbeelding is veel eenvoudiger en bewerkbaarder. Hou in het achterhoofd dat wat je wil niet een exacte rendering is van de afbeelding, maar een set curves die je kan gebruiken in je afbeelding.