version 0.3.16
[fms.git] / src / freenet / captcha / alternatecaptchafonts.cpp
1 #ifdef ALTERNATE_CAPTCHA\r
2 \r
3 #include "../../../include/freenet/captcha/alternatecaptchafonts.h"\r
4 \r
5 #include <Poco/Path.h>\r
6 #include <Poco/DirectoryIterator.h>\r
7 \r
8 bool AlternateCaptchaFonts::m_fontsloaded(false);\r
9 std::vector<FreeImage::Font> AlternateCaptchaFonts::m_fonts;\r
10 \r
11 AlternateCaptchaFonts::AlternateCaptchaFonts()\r
12 {\r
13         if(m_fontsloaded==false)\r
14         {\r
15                 FreeImage_Initialise(true);\r
16                 LoadFonts();\r
17                 m_fontsloaded=true;\r
18         }\r
19 }\r
20 \r
21 void AlternateCaptchaFonts::LoadFonts()\r
22 {\r
23 \r
24         FreeImage::Bitmap bmp;\r
25         Poco::Path path("fonts");\r
26         Poco::DirectoryIterator di(path);\r
27         Poco::DirectoryIterator end;\r
28 \r
29         while(di!=end)\r
30         {\r
31                 if(di.name().find("bmp")!=std::string::npos)\r
32                 {\r
33                         bmp.Load("bmp",di.path().toString());\r
34                         m_fonts.push_back(FreeImage::Font(bmp));\r
35                 }\r
36                 ++di;\r
37         }\r
38 \r
39 }\r
40 \r
41 #endif  // ALTERNATE_CAPTCHA\r