Hoppa till innehåll
Meny
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

Använda vanliga SVG i QGIS

Publicerat den 2019-12-112019-12-06

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.

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     Mastodon  

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Daniel Nilsson om QField
  • denis Empisse om SpaceMouse Python
  • klakar om SpaceMouse Python
  • Anders Jackson om Återbesök, WebODM
  • Anders Jackson om SpaceMouse Python

Arkiv

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2025 Geosupportsystem | WordPress-tema av Superbthemes.com