diff --git a/.gitattributes b/.gitattributes
index 7b670570af..0d8ab331fb 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1237,6 +1237,7 @@ components/fpvectorial/pdfvrsintatico.pas svneol=native#text/plain
components/fpvectorial/rawvectorialreadwrite.pas svneol=native#text/plain
components/fpvectorial/svgvectorialreader.pas svneol=native#text/plain
components/fpvectorial/svgvectorialwriter.pas svneol=native#text/plain
+components/fpvectorial/svgzvectorialreader.pas svneol=native#text/pascal
components/fpvectorial/tools/laszip/laszip.lpi svneol=native#text/plain
components/fpvectorial/tools/laszip/laszip.pas svneol=native#text/plain
components/fpweb/README.txt svneol=native#text/plain
diff --git a/components/fpvectorial/fpvectorial.pas b/components/fpvectorial/fpvectorial.pas
index ce55af8ab2..3e5bd00545 100644
--- a/components/fpvectorial/fpvectorial.pas
+++ b/components/fpvectorial/fpvectorial.pas
@@ -40,7 +40,7 @@ uses
type
TvVectorialFormat = (
{ Multi-purpose document formats }
- vfPDF, vfSVG, vfCorelDrawCDR, vfWindowsMetafileWMF, vfODG,
+ vfPDF, vfSVG, vfSVGZ, vfCorelDrawCDR, vfWindowsMetafileWMF, vfODG,
{ CAD formats }
vfDXF,
{ Geospatial formats }
@@ -71,6 +71,7 @@ const
STR_PDF_EXTENSION = '.pdf';
STR_POSTSCRIPT_EXTENSION = '.ps';
STR_SVG_EXTENSION = '.svg';
+ STR_SVGZ_EXTENSION = '.svgz';
STR_CORELDRAW_EXTENSION = '.cdr';
STR_WINMETAFILE_EXTENSION = '.wmf';
STR_AUTOCAD_EXCHANGE_EXTENSION = '.dxf';
@@ -4068,6 +4069,7 @@ begin
if AnsiCompareText(lExt, STR_PDF_EXTENSION) = 0 then Result := vfPDF
else if AnsiCompareText(lExt, STR_POSTSCRIPT_EXTENSION) = 0 then Result := vfPostScript
else if AnsiCompareText(lExt, STR_SVG_EXTENSION) = 0 then Result := vfSVG
+ else if AnsiCompareText(lExt, STR_SVGZ_EXTENSION) = 0 then Result := vfSVGZ
else if AnsiCompareText(lExt, STR_CORELDRAW_EXTENSION) = 0 then Result := vfCorelDrawCDR
else if AnsiCompareText(lExt, STR_WINMETAFILE_EXTENSION) = 0 then Result := vfWindowsMetafileWMF
else if AnsiCompareText(lExt, STR_AUTOCAD_EXCHANGE_EXTENSION) = 0 then Result := vfDXF
diff --git a/components/fpvectorial/fpvectorialpkg.lpk b/components/fpvectorial/fpvectorialpkg.lpk
index f9fb66a58c..00b911a256 100644
--- a/components/fpvectorial/fpvectorialpkg.lpk
+++ b/components/fpvectorial/fpvectorialpkg.lpk
@@ -12,7 +12,7 @@
-
+
@@ -81,6 +81,10 @@
+
+
+
+
diff --git a/components/fpvectorial/fpvectorialpkg.pas b/components/fpvectorial/fpvectorialpkg.pas
index 64cdba3faf..47a2e9f5e7 100644
--- a/components/fpvectorial/fpvectorialpkg.pas
+++ b/components/fpvectorial/fpvectorialpkg.pas
@@ -12,7 +12,7 @@ uses
dxfvectorialreader, epsvectorialreader, lasvectorialreader,
lazvectorialreader, mathmlvectorialreader, odgvectorialreader,
rawvectorialreadwrite, svgvectorialreader, svgvectorialwriter,
- LazarusPackageIntf;
+ svgzvectorialreader, LazarusPackageIntf;
implementation
diff --git a/components/fpvectorial/svgzvectorialreader.pas b/components/fpvectorial/svgzvectorialreader.pas
new file mode 100644
index 0000000000..a189968b2b
--- /dev/null
+++ b/components/fpvectorial/svgzvectorialreader.pas
@@ -0,0 +1,50 @@
+unit svgzvectorialreader;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils,
+ zstream,
+ svgvectorialreader, fpvectorial, fpvutils, lazutf8;
+
+type
+ { TvSVGZVectorialReader }
+
+ TvSVGZVectorialReader = class(TvSVGVectorialReader)
+ public
+ { General reading methods }
+ procedure ReadFromFile(AFileName: string; AData: TvVectorialDocument); virtual;
+ procedure ReadFromStream(AStream: TStream; AData: TvVectorialDocument); override;
+ end;
+
+implementation
+
+{ TvSVGZVectorialReader }
+
+procedure TvSVGZVectorialReader.ReadFromFile(AFileName: string;
+ AData: TvVectorialDocument);
+var
+ FileStream: TGZFileStream;
+begin
+ FileStream := TGZFileStream.Create(AFileName, gzopenread);
+ try
+ ReadFromStream(FileStream, AData);
+ finally
+ FileStream.Free;
+ end;
+end;
+
+procedure TvSVGZVectorialReader.ReadFromStream(AStream: TStream;
+ AData: TvVectorialDocument);
+begin
+ inherited ReadFromStream(AStream, AData);
+end;
+
+initialization
+
+ RegisterVectorialReader(TvSVGZVectorialReader, vfSVGZ);
+
+end.
+