Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C и GD. Вывод текста на картинке 
V
    Опции темы
safari
Дата 23.3.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.2.2009

Репутация: нет
Всего: нет



Доброго времени суток!

Задача такая нужно вывести текст из файла в виде картинки, но текст может быть разным.
Необходимо создавать изображение размером такое, чтоб влезал весь текст, то есть нужно сделать проверку на размер или тип шрифта.
Может быть легче изменить шрифт под размер картинки?
Подскажите, плиз, куда копать и что можно посмотреть, может быть есть какие-то специальные функции.

Задачу пытаюсь решить с помощью С и GD-library на fc10.
Часть кода
Код

 /* Allocate the image: 77 pixels across by 20 pixels tall */
  im = gdImageCreate(77, 20);

  /* Allocate the color black (red, green and blue all minimum).
 *  *     Since this is the first color in a new image, it will
 *   *         be the background color. */
  black = gdImageColorAllocate(im, 0, 0, 0);

  /* Allocate the color white (red, green and blue all maximum). */
  white = gdImageColorAllocate(im, 255, 255, 255);

  gdImageString(im, gdFontLarge, 0, 0, "user=cms088", white);

    /* Open a file for writing. "wb" means "write binary", important
 *  *     under MSDOS, harmless under Unix. */
  pngout = fopen("text.png", "wb");

  /* Output the image to the disk file in PNG format. */
  gdImagePng(im, pngout);

   /* Close the file. */
  fclose(pngout);

  /* Destroy the image in memory. */
  gdImageDestroy(im);



PM MAIL   Вверх
andrew_121
Дата 23.3.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Для подобной цели я использовал phgwriter (http://pngwriter.sourceforge.net/) и Freetype2 (http://freetype.sourceforge.net/index2.html) с Mingw.



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
safari
Дата 6.4.2009, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.2.2009

Репутация: нет
Всего: нет



Спасибо за совет, задача решилась, но появилась другая проблема.
Хочу скомпилировать программку статически, но не получается, динамически всё работает. Система fc10

$ gcc -static -o text text.c -lgd -lpng -lz -ljpeg -lm
/usr/bin/ld: cannot find -lgd
collect2: выполнение ld завершилось с кодом возврата 1

gd и gd-devel стоит.

$ ldd text
    linux-gate.so.1 =>  (0x00110000)
    libgd.so.2 => /usr/lib/libgd.so.2 (0x00111000)
    libc.so.6 => /lib/libc.so.6 (0x0059a000)
    libXpm.so.4 => /usr/lib/libXpm.so.4 (0x05d78000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00774000)
    libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x06f19000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00ae9000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00a2e000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00a04000)
    libz.so.1 => /lib/libz.so.1 (0x0075e000)
    libm.so.6 => /lib/libm.so.6 (0x00710000)
    /lib/ld-linux.so.2 (0x00575000)
    libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0x008a2000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00877000)
    libdl.so.2 => /lib/libdl.so.2 (0x0073b000)
    libexpat.so.1 => /lib/libexpat.so.1 (0x009db000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00895000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0089a000)

Подскажите, плиз в чём дело.

PM MAIL   Вверх
xvr
Дата 6.4.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



А libgd.a есть? Видимо нет

PM MAIL   Вверх
safari
Дата 6.4.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.2.2009

Репутация: нет
Всего: нет



Нет, нету, но какому пакету это библиотека должна принадлежать?
Везде пишут gd-devel, но этот пакет стоит
PM MAIL   Вверх
xvr
Дата 7.4.2009, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(safari @ 6.4.2009,  13:53)
Нет, нету, но какому пакету это библиотека должна принадлежать?

Не в курсе, ищите  smile 

Для динамической линковки применяются динамические библиотеки (*.so), для статической - статические (*.a). Это разные файлы и заменить друг друга они не могут. Так что, если какой то версии библиотек нет, то соотвевтующая линковка не пройдет  smile Обычно обе версии библиотек лежат в одном пакете, но бывают и исключения  smile 

Еще вариант - взять сорцы и построить самому  smile 


Это сообщение отредактировал(а) xvr - 7.4.2009, 11:34
PM MAIL   Вверх
safari
Дата 7.4.2009, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.2.2009

Репутация: нет
Всего: нет



Ок, спасибо, как говорил Никулин, будем искать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.