Det finns massor med öppna ikonpaket tillgängliga på internet. Alla med öppna licenser är helt fria att använda i exempelvis QGIS. Så är exempelvis fallet med Font Awesome.
Det startade som ett Kickstartprojekt och nu finns version 5 av grafikpaketet att hämta på Internet. Det finns en pro-version man kan köpa med extra innehåll, men det fria paketet innehåller 1’544 ikoner, så det räcker för mig just nu.
Paketet hämtar jag via GitHub, men det går lika bra att använda länken på deras nedladdningssida till ”Free for Desktop” (klicka i bilden ovan). Katalogerna som innehåller SVG filerna packar jag upp till SVG katalogen i min QGIS profil. Jag låter dessa vara kvar i sina kategorikataloger brands, regular och solid.
Alla filerna är väldigt enkla SVG filer med bara precis så mycket kod som behövs för att de skall ritas ut korrekt. Perfekt som start men…
Försöker jag använda ikonerna i QGIS så går det hur bra som helst, men jag kan inte ändra färger på vare sig fyllning eller kantlinje. Jag kan heller inte ange tjocklek på kantlinjen.
Inte så konstigt, då koden i filerna för att göra detta dynamiskt hanterbart inte finns med. Men det tänker jag lösa med Python.
import glob for file in glob.glob('./*.svg'): with open(file, 'r+') as f: original_svg = f.read() f.seek(0) f.write(original_svg.replace('<path ', '<path fill="param(fill) #000" stroke="param(outline) #fff" stroke-width="param(outline-width) 0" ')) f.close()
Koden ovan skriver jag i en texteditor och sparar i katalogen med SVG-filer som ”QGISify_svg.py”.
Koden körs sedan med kommandot python QGISify_svg.py från den katalog där filen ligger. För övriga kataloger så behöver jag bara flytta filen och köra skriptet igen. Jag har inte byggt in några kontrollfunktioner i skriptet så jag får själv säkerställa att jag bara kör det en gång på filerna.
Nu går det utmärkt att ändra färger och lägga till en kantlinje om man vill det…
Skriptet går att köra på alla kataloger med SVG-filer, men det körs urskiljningslöst. Det finns SVG-filer som inte kommer att fungera att köra skriptet på då dessa kanske redan har en ”style” angiven. De tillägg som skriptet skriver till filerna hamnar då i konflikt med detta och i värsta fall blir bilderna korrupta. Du måste därför säkerställa att filerna är av en passande typ innan du kör skriptet i katalogen med filer. Det minsta du bör göra är att ta en kopia på filerna innan du kör skriptet, så att det går att återställa eventuella fel.