summaryrefslogtreecommitdiff
path: root/examples/gif.c
diff options
context:
space:
mode:
authorpajoye <none@none>2008-01-22 17:46:02 +0000
committerpajoye <none@none>2008-01-22 17:46:02 +0000
commitf769fe0a0df695c3a3c504dd4ae6522607cdb5e9 (patch)
tree96952396dfb02326fea5a359a49c0c740bcdf0c4 /examples/gif.c
parent50ba0f31c895b2ae343f3bf0ba0b4225f91d31db (diff)
downloadlibgd-f769fe0a0df695c3a3c504dd4ae6522607cdb5e9.tar.gz
- add animated GIF example with a palette per frame (local palette)
Diffstat (limited to 'examples/gif.c')
-rw-r--r--examples/gif.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/gif.c b/examples/gif.c
new file mode 100644
index 0000000..0c845b0
--- /dev/null
+++ b/examples/gif.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <gd.h>
+
+int main(int argc, char ** argv)
+{
+ int i;
+ FILE * out;
+
+ gdImagePtr im;
+ gdImagePtr prev =NULL;
+ int white, black;
+
+ im = gdImageCreate(100, 100);
+ if (!im) {
+ fprintf(stderr, "can't create image");
+ return 1;
+ }
+
+ out = fopen("anim.gif", "wb");
+ if (!out) {
+ fprintf(stderr, "can't create file %s", "anim.gif");
+ return 1;
+ }
+
+ white = gdImageColorAllocate(im, 255, 255, 255);
+ gdImageGifAnimBegin(im, out, 1, -1);
+
+ for(i = 0; i < 20; i++) {
+ int r,g,b;
+ im = gdImageCreate(100, 100);
+ r = rand() % 255;
+ g = rand() % 255;
+ b = rand() % 255;
+
+ white = gdImageColorAllocate(im, 255, 255, 255);
+ black = gdImageColorAllocate(im, r, g, b);
+ printf("(%i, %i, %i)\n",r, g, b);
+ gdImageFilledRectangle(im, rand() % 100, rand() % 100, rand() % 100, rand() % 100, black);
+ gdImageGifAnimAdd(im, out, 1, 0, 0, 10, 1, prev);
+
+ if(prev) {
+ gdImageDestroy(prev);
+ }
+ prev = im;
+ }
+
+ gdImageGifAnimEnd(out);
+ fclose(out);
+
+ return 0;
+} \ No newline at end of file