Как сделать GIF'ку с текстом?

Тема в разделе "WASM.WIN32", создана пользователем hello_world, 5 июн 2005.

  1. hello_world

    hello_world New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2003
    Сообщения:
    55
    Адрес:
    москва
    Всем привет.



    Мне нужно накодить функцию, которая на входе получала бы текстовую строку, размер текста и размер картинки, а на выходе давала бы GIF'ку с этим текстом указанного размера.

    Можно ли такое сделать на winapi, или надо писать с нуля?

    Если можно, то в какую примерно сторону копать?

    Или может уже существуют готовые либы для этого?
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    hello_world

    GFL SDK точно имеет функцию для рисования текста в GIF и поддерживает много других форматов.
     
  3. bbuc

    bbuc New Member

    Публикаций:
    0
    Регистрация:
    19 май 2004
    Сообщения:
    20
  4. hello_world

    hello_world New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2003
    Сообщения:
    55
    Адрес:
    москва
    А можно как-нибудь на виндовом gdi такое замутить?

    Формат не обязательно gif, можно и bmp

    А либы эти слишком уж толстые.
     
  5. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    1. Создаём bmp заданного размера через CreateCompatibleBitmap.

    2. Грузим его в DC через SelectObject.

    3. Наносим текст через TextOut или DrawText.

    4. Выгружаем картинку из DC (опять SelectObject)

    5. Сохраняем в формате bmp.
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Пример:
    Код (Text):
    1. hDC = GetDC(0);
    2. hBmpDC = CreateCompatibleDC(hDC);
    3. hBmp = CreateCompatibleBitmap(hDC,ширина,высота);
    4. hOldBmp = SelectObject(hBmpDC,hBmp);
    5. TextOut(hBmpDC,координата_x,координата_y,"текст",размер_строки);
    6. SelectObject(hBmpDC,hOldBmp);
    7. CreateBMPFile(...);


    Функцию CreateBMPFile можно скопипастить из примера "Storing an Image" в борландовской справке.
     
  7. hello_world

    hello_world New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2003
    Сообщения:
    55
    Адрес:
    москва
    Quantum

    Большое спасибо, пример работает,

    но у меня есть еще пара вопросов.

    Я пишу что-то типа защиты от автоматических регистраций

    и мне надо чтобы этот текст(на картинке) не определялся

    всякими нейросетями и прочими приблудами.

    Пробовал скармливать файнридеру разные картинки,

    и оказалось, что он перестает определять текст даже

    если пару букв повернуть на 10-20 градусов. Но вот

    на mail.ru например у картинки еще "испорчен" фон.

    Подозреваю, что это было сделано не зря. Т.е. вопрос

    в том, надо ли портить фон на картинке, и если надо то как?