Всем привет. Мне нужно накодить функцию, которая на входе получала бы текстовую строку, размер текста и размер картинки, а на выходе давала бы GIF'ку с этим текстом указанного размера. Можно ли такое сделать на winapi, или надо писать с нуля? Если можно, то в какую примерно сторону копать? Или может уже существуют готовые либы для этого?
hello_world GFL SDK точно имеет функцию для рисования текста в GIF и поддерживает много других форматов.
А можно как-нибудь на виндовом gdi такое замутить? Формат не обязательно gif, можно и bmp А либы эти слишком уж толстые.
1. Создаём bmp заданного размера через CreateCompatibleBitmap. 2. Грузим его в DC через SelectObject. 3. Наносим текст через TextOut или DrawText. 4. Выгружаем картинку из DC (опять SelectObject) 5. Сохраняем в формате bmp.
Пример: Код (Text): hDC = GetDC(0); hBmpDC = CreateCompatibleDC(hDC); hBmp = CreateCompatibleBitmap(hDC,ширина,высота); hOldBmp = SelectObject(hBmpDC,hBmp); TextOut(hBmpDC,координата_x,координата_y,"текст",размер_строки); SelectObject(hBmpDC,hOldBmp); CreateBMPFile(...); Функцию CreateBMPFile можно скопипастить из примера "Storing an Image" в борландовской справке.
Quantum Большое спасибо, пример работает, но у меня есть еще пара вопросов. Я пишу что-то типа защиты от автоматических регистраций и мне надо чтобы этот текст(на картинке) не определялся всякими нейросетями и прочими приблудами. Пробовал скармливать файнридеру разные картинки, и оказалось, что он перестает определять текст даже если пару букв повернуть на 10-20 градусов. Но вот на mail.ru например у картинки еще "испорчен" фон. Подозреваю, что это было сделано не зря. Т.е. вопрос в том, надо ли портить фон на картинке, и если надо то как?