Смысл данной статьи — дать представление о использовании библиотеки GD в связке с С.
Скачать libgd или почитать более подробно о ее использовании можно здесь: http://www.libgd.org/(eng.)
После установки GD cписок функций и типы принимаемых/возвращаемых данных можно посмотреть в файлике /usr/local/include/gd.h (в моем случае, иначе sudo updatedb && locate gd.h) понять назначение функций довольно просто по их названию.
Код небольшой программки с моим описанием, которая рисует вотэто:
Если что-нибудь будет непонятно, ниже приведу более подробное объяснение.
Итак начнем:
Сохраняем файлик,
компилируем его, в моём случае так: gсс -lgd имя_файла -o имя_исполняемого_файла
и запускаем: ./имя_исполняемого_файла [куда_сохранить_картинку]
upd: В моем случае использовалась ОС Ubuntu 8.10, в вашем случае могут быть незначительные отличия в командах.
Скачать libgd или почитать более подробно о ее использовании можно здесь: http://www.libgd.org/(eng.)
После установки GD cписок функций и типы принимаемых/возвращаемых данных можно посмотреть в файлике /usr/local/include/gd.h (в моем случае, иначе sudo updatedb && locate gd.h) понять назначение функций довольно просто по их названию.
Код небольшой программки с моим описанием, которая рисует вотэто:
Если что-нибудь будет непонятно, ниже приведу более подробное объяснение.
Итак начнем:
// Инклудим нужные библиотеки
#include <gd.h>
#include <stdio.h>
int main(int argc, char **argv) {
gdImagePtr im,im_clear; // обьявляем переменные для хранения указателей на нарисованные изображения
int black, white, trans; // обьявляем переменные для хранения цветов
FILE *out1; //обьявляем указатель на файл
im = gdImageCreate(100, 100); //создаем пустой лист размером 100х100
im_clear = gdImageCreate(100, 100);
white = gdImageColorAllocate(im, 255, 255, 255); // обьявляем цвета
black = gdImageColorAllocate(im, 0, 0, 0);
trans = gdImageColorAllocate(im, 1, 1, 1);
gdImageCopy (im_clear, im, 0,0,0,0, 100, 100); //Копируем пока еще пустой im в im_clear
if (argc>1) out1 = fopen(argv[1], "wb"); else out1 = fopen("anim.gif", "wb"); // открываем файл куда сохраним свою гифку
gdImageGifAnimBegin(im, out1, 1, 0); //Пишем заголовок gif-а
for (int i=0;i<25;i++)
{
gdImageCopy (im, im_clear, 0,0,0,0, 100, 100); //очищаем лист im
gdImageRectangle(im, i*2, i*2, 100-i*2-1, 100-i*2-1, black); // рисуем квадрат
gdImageGifAnimAdd(im, out1, 0, 0, 0, 10, 1, NULL);//пишем кадр в гифку
};
putc (';', out1); // пишем в гифку конец
fclose(out1); //закрываем файлик
gdImageDestroy(im); // убираем за собой
gdImageDestroy(im_clear);
}
* This source code was highlighted with Source Code Highlighter.
Сохраняем файлик,
компилируем его, в моём случае так: gсс -lgd имя_файла -o имя_исполняемого_файла
и запускаем: ./имя_исполняемого_файла [куда_сохранить_картинку]
upd: В моем случае использовалась ОС Ubuntu 8.10, в вашем случае могут быть незначительные отличия в командах.