version 0.3.16
[fms.git] / src / freenet / captcha / alternatecaptchafonts.cpp
diff --git a/src/freenet/captcha/alternatecaptchafonts.cpp b/src/freenet/captcha/alternatecaptchafonts.cpp
new file mode 100644 (file)
index 0000000..da7b267
--- /dev/null
@@ -0,0 +1,41 @@
+#ifdef ALTERNATE_CAPTCHA\r
+\r
+#include "../../../include/freenet/captcha/alternatecaptchafonts.h"\r
+\r
+#include <Poco/Path.h>\r
+#include <Poco/DirectoryIterator.h>\r
+\r
+bool AlternateCaptchaFonts::m_fontsloaded(false);\r
+std::vector<FreeImage::Font> AlternateCaptchaFonts::m_fonts;\r
+\r
+AlternateCaptchaFonts::AlternateCaptchaFonts()\r
+{\r
+       if(m_fontsloaded==false)\r
+       {\r
+               FreeImage_Initialise(true);\r
+               LoadFonts();\r
+               m_fontsloaded=true;\r
+       }\r
+}\r
+\r
+void AlternateCaptchaFonts::LoadFonts()\r
+{\r
+\r
+       FreeImage::Bitmap bmp;\r
+       Poco::Path path("fonts");\r
+       Poco::DirectoryIterator di(path);\r
+       Poco::DirectoryIterator end;\r
+\r
+       while(di!=end)\r
+       {\r
+               if(di.name().find("bmp")!=std::string::npos)\r
+               {\r
+                       bmp.Load("bmp",di.path().toString());\r
+                       m_fonts.push_back(FreeImage::Font(bmp));\r
+               }\r
+               ++di;\r
+       }\r
+\r
+}\r
+\r
+#endif // ALTERNATE_CAPTCHA\r