X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffreenet%2Fcaptcha%2Ffreeimage%2Ffont.cpp;fp=src%2Ffreenet%2Fcaptcha%2Ffreeimage%2Ffont.cpp;h=0f9541cff3e05392cac86ea17d8ea0e93f3df57d;hb=822f84f5dac64183c556bd86fea8cd7b0527f528;hp=0000000000000000000000000000000000000000;hpb=fcb124f8d6d3f5678e82049fb8e5e23c8cfaec6d;p=fms.git diff --git a/src/freenet/captcha/freeimage/font.cpp b/src/freenet/captcha/freeimage/font.cpp new file mode 100644 index 0000000..0f9541c --- /dev/null +++ b/src/freenet/captcha/freeimage/font.cpp @@ -0,0 +1,92 @@ +#include "../../../../include/freenet/captcha/freeimage/font.h" + +namespace FreeImage +{ + +Font::Font() +{ + m_fontwidth=0; + m_fontheight=0; +} + +Font::Font(const Bitmap &bmp) +{ + m_fontwidth=0; + m_fontheight=0; + Load(bmp); +} + +Font::~Font() +{ + +} + +const Bitmap &Font::Char(const int num) +{ + if(num>=0 && num<256 && m_chars.size()>num) + { + return m_chars[num]; + } + else + { + return m_blank; + } +} + +const bool Font::Load(const Bitmap &bmp) +{ + m_fontwidth=bmp.Width()/16; + m_fontheight=bmp.Height()/14; + + m_chars.clear(); + m_chars.resize(256); + + int charnum=32; + for(int yy=0; yyxx && found==false; x--) + { + for(int y=yy; ym_fontwidth ? width=m_fontwidth : false; + m_chars[charnum].Create(width,m_fontheight,32); + m_chars[charnum].Blit(bmp,0,0,xx,yy,width,m_fontheight,-1); + m_chars[charnum].SetTransparent(); + RGBQUAD col=m_chars[charnum].GetPixel(m_chars[charnum].Width()-1,0); + for(int y=0; y