ultimatepp/reference/RichTextIterator/main.cpp
cxl 4e2ac976f3 .reference
git-svn-id: svn://ultimatepp.org/upp/trunk@14723 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-07-29 09:01:16 +00:00

29 lines
669 B
C++

#include <CtrlLib/CtrlLib.h>
using namespace Upp;
Vector<Image> ExtractImages(const RichText& txt)
{
struct Iter : RichText::Iterator {
Vector<Image> m;
virtual bool operator()(int, const RichPara& para) {
for(int i = 0; i < para.GetCount(); i++) {
const RichPara::Part& p = para[i];
if(p.object)
m.Add(p.object.ToImage(p.object.GetPixelSize()));
}
return false;
}
} iter;
txt.Iterate(iter);
return pick(iter.m);
}
GUI_APP_MAIN
{
int i = 0;
for(Image m : ExtractImages(ParseQTF(LoadDataFile("Test.qtf"))))
PNGEncoder().SaveFile(GetHomeDirFile(String() << "ExtractedImage_" << ++i << ".png"), m);
}