From 635ec22edc6431285c9cdebc315bfdae0ba62105 Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Tue, 21 Sep 2021 03:11:47 +0200 Subject: [PATCH] svg loader: converting the image path to the absolute one The href image tag should point to an absolute image path. --- src/examples/images/image-embeded.svg | 6 +++--- src/examples/images/logo.png | Bin 0 -> 15174 bytes src/loaders/svg/tvgSvgLoader.cpp | 3 ++- src/loaders/svg/tvgSvgLoader.h | 1 + src/loaders/svg/tvgSvgSceneBuilder.cpp | 19 ++++++++++++------- src/loaders/svg/tvgSvgSceneBuilder.h | 2 +- 6 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 src/examples/images/logo.png diff --git a/src/examples/images/image-embeded.svg b/src/examples/images/image-embeded.svg index 8f0712a..3104bec 100644 --- a/src/examples/images/image-embeded.svg +++ b/src/examples/images/image-embeded.svg @@ -7,6 +7,6 @@ - - - \ No newline at end of file + + + diff --git a/src/examples/images/logo.png b/src/examples/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b08abf8b6ca7116a0eeafbeb783014c0faf08ca4 GIT binary patch literal 15174 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 PsNJ*ENIzw}?XUj>=Yg`$ literal 0 HcmV?d00001 diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index 88b2496..c1b3b33 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -2788,7 +2788,7 @@ void SvgLoader::run(unsigned tid) if (loaderData.cloneNodes.count > 0) _clonePostponedNodes(&loaderData.cloneNodes); } - root = svgSceneBuild(loaderData.doc, vx, vy, vw, vh, w, h, preserveAspect); + root = svgSceneBuild(loaderData.doc, vx, vy, vw, vh, w, h, preserveAspect, svgPath); } @@ -2857,6 +2857,7 @@ bool SvgLoader::open(const string& path) if (!f.is_open()) return false; + svgPath = path; getline(f, filePath, '\0'); f.close(); diff --git a/src/loaders/svg/tvgSvgLoader.h b/src/loaders/svg/tvgSvgLoader.h index 01e90d4..468f058 100644 --- a/src/loaders/svg/tvgSvgLoader.h +++ b/src/loaders/svg/tvgSvgLoader.h @@ -29,6 +29,7 @@ class SvgLoader : public LoadModule, public Task { public: string filePath; + string svgPath = ""; const char* content = nullptr; uint32_t size = 0; diff --git a/src/loaders/svg/tvgSvgSceneBuilder.cpp b/src/loaders/svg/tvgSvgSceneBuilder.cpp index 0026af4..fe7a2db 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg/tvgSvgSceneBuilder.cpp @@ -469,7 +469,7 @@ static bool _isValidImageMimeTypeAndEncoding(const char** href, const char** mim } -static unique_ptr _imageBuildHelper(SvgNode* node, float vx, float vy, float vw, float vh) +static unique_ptr _imageBuildHelper(SvgNode* node, float vx, float vy, float vw, float vh, const string& svgPath) { if (!node->node.image.href) return nullptr; auto picture = Picture::gen(); @@ -496,7 +496,12 @@ static unique_ptr _imageBuildHelper(SvgNode* node, float vx, float vy, TVGLOG("SVG", "Embedded svg file is disabled."); return nullptr; } - if (picture->load(href) != Result::Success) return nullptr; + string imagePath = href; + if (strncmp(href, "/", 1)) { + auto last = svgPath.find_last_of("/"); + imagePath = svgPath.substr(0, (last == string::npos ? 0 : last + 1 )) + imagePath; + } + if (picture->load(imagePath) != Result::Success) return nullptr; } float w, h; @@ -512,7 +517,7 @@ static unique_ptr _imageBuildHelper(SvgNode* node, float vx, float vy, } -static unique_ptr _sceneBuildHelper(const SvgNode* node, float vx, float vy, float vw, float vh) +static unique_ptr _sceneBuildHelper(const SvgNode* node, float vx, float vy, float vw, float vh, const string& svgPath) { if (_isGroupType(node->type)) { auto scene = Scene::gen(); @@ -522,9 +527,9 @@ static unique_ptr _sceneBuildHelper(const SvgNode* node, float vx, float auto child = node->child.data; for (uint32_t i = 0; i < node->child.count; ++i, ++child) { if (_isGroupType((*child)->type)) { - scene->push(_sceneBuildHelper(*child, vx, vy, vw, vh)); + scene->push(_sceneBuildHelper(*child, vx, vy, vw, vh, svgPath)); } else if ((*child)->type == SvgNodeType::Image) { - auto image = _imageBuildHelper(*child, vx, vy, vw, vh); + auto image = _imageBuildHelper(*child, vx, vy, vw, vh, svgPath); if (image) scene->push(move(image)); } else { auto shape = _shapeBuildHelper(*child, vx, vy, vw, vh); @@ -544,11 +549,11 @@ static unique_ptr _sceneBuildHelper(const SvgNode* node, float vx, float /* External Class Implementation */ /************************************************************************/ -unique_ptr svgSceneBuild(SvgNode* node, float vx, float vy, float vw, float vh, float w, float h, bool preserveAspect) +unique_ptr svgSceneBuild(SvgNode* node, float vx, float vy, float vw, float vh, float w, float h, bool preserveAspect, const string& svgPath) { if (!node || (node->type != SvgNodeType::Doc)) return nullptr; - auto docNode = _sceneBuildHelper(node, vx, vy, vw, vh); + auto docNode = _sceneBuildHelper(node, vx, vy, vw, vh, svgPath); if (fabsf(w - vw) > FLT_EPSILON || fabsf(h - vh) > FLT_EPSILON) { auto sx = w / vw; diff --git a/src/loaders/svg/tvgSvgSceneBuilder.h b/src/loaders/svg/tvgSvgSceneBuilder.h index a09e340..4232aca 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.h +++ b/src/loaders/svg/tvgSvgSceneBuilder.h @@ -25,6 +25,6 @@ #include "tvgCommon.h" -unique_ptr svgSceneBuild(SvgNode* node, float vx, float vy, float vw, float vh, float w, float h, bool preserveAspect); +unique_ptr svgSceneBuild(SvgNode* node, float vx, float vy, float vw, float vh, float w, float h, bool preserveAspect, const string& svgPath); #endif //_TVG_SVG_SCENE_BUILDER_H_ -- 2.7.4