Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrachytski <siarhei.rachytski@gmail.com>2012-08-27 19:06:17 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:42:39 +0300
commit64c5490bd01fc8ebeb50486a067734633745aeef (patch)
treef02379fa47dd8322101174e220e2b14b1d2caaba /skin_generator
parentae41f4dc304f903e9c42f20d1ffe91c91b0efc87 (diff)
saving PNG images of symbols in separate folders while generating skins.
Diffstat (limited to 'skin_generator')
-rw-r--r--skin_generator/skin_generator.cpp25
-rw-r--r--skin_generator/skin_generator.hpp2
2 files changed, 25 insertions, 2 deletions
diff --git a/skin_generator/skin_generator.cpp b/skin_generator/skin_generator.cpp
index 20289648f2..ae44d769c4 100644
--- a/skin_generator/skin_generator.cpp
+++ b/skin_generator/skin_generator.cpp
@@ -291,7 +291,9 @@ namespace tools
QSize symbolSize = symbolSizes[i];
- page.m_fileName = skinName.substr(0, skinName.find_last_of("/") + 1) + "symbols_" + suffixes[i];
+ page.m_dir = skinName.substr(0, skinName.find_last_of("/") + 1);
+ page.m_suffix = suffixes[i];
+ page.m_fileName = page.m_dir + "symbols_" + page.m_suffix;
for (int i = 0; i < fileNames.size(); ++i)
{
@@ -410,6 +412,22 @@ namespace tools
m_svgRenderer.load(it->m_fullFileName);
m_svgRenderer.render(&painter, QRect(dstRect.minX() + 2, dstRect.minY() + 2, dstRect.SizeX() - 4, dstRect.SizeY() - 4));
+
+ size_t w = dstRect.SizeX() - 4;
+ size_t h = dstRect.SizeY() - 4;
+
+ gil::bgra8_image_t symbolImagePng(w, h);
+ gil::fill_pixels(gil::view(symbolImagePng), gil::rgba8_pixel_t(0, 0, 0, 0));
+ QImage img((uchar*)&gil::view(symbolImagePng)(0, 0), w, h, QImage::Format_ARGB32);
+ QPainter painter(&img);
+ painter.setClipping(true);
+
+ m_svgRenderer.load(it->m_fullFileName);
+ m_svgRenderer.render(&painter, QRect(0, 0, w, h));
+ string dir(page.m_dir + "drawable-" + page.m_suffix + "/");
+ QDir().mkpath(QString(dir.c_str()));
+ string s(dir + it->m_symbolID.toLocal8Bit().constData() + ".png");
+ img.save(s.c_str());
}
/// Rendering packed fonts
@@ -466,7 +484,10 @@ namespace tools
}
}
- img.save((page.m_fileName + ".png").c_str());
+
+ string s = page.m_fileName + ".png";
+ LOG(LINFO, ("saving skin image into: ", s));
+ img.save(s.c_str());
}
}
diff --git a/skin_generator/skin_generator.hpp b/skin_generator/skin_generator.hpp
index b8efc6f33c..10ff43adb0 100644
--- a/skin_generator/skin_generator.hpp
+++ b/skin_generator/skin_generator.hpp
@@ -72,6 +72,8 @@ namespace tools
int m_width;
int m_height;
string m_fileName;
+ string m_dir;
+ string m_suffix;
m2::Packer m_packer;
};