Source

gd-libgd / src / gd2topng.c

Diff from to

File src/gd2topng.c

 #include <stdlib.h>
 #include "gd.h"
 
-/* A short program which converts a .png file into a .gd file, for
+/* A short program which converts a .png file into a .gd2 file, for
    your convenience in creating images on the fly from a
-   basis image that must be loaded quickly. The .gd format
+   basis image that must be loaded quickly. The .gd2 format
    is not intended to be a general-purpose format. */
 
 int
 {
   gdImagePtr im;
   FILE *in, *out;
-  if (argc != 3)
+  int x, y, w, h;
+  if ((argc != 3) && (argc != 7))
     {
-      fprintf (stderr, "Usage: gd2topng filename.gd2 filename.png\n");
+      fprintf (stderr, "Usage: gd2topng filename.gd2 filename.png [srcx srcy width height]\n");
+      fprintf (stderr, "If the coordinates are absent,t he entire image is converted.\n");
       exit (1);
     }
+  if (argc == 7) {
+    x = atoi(argv[3]);
+    y = atoi(argv[4]);
+    w = atoi(argv[5]);
+    h = atoi(argv[6]);
+  }
   in = fopen (argv[1], "rb");
   if (!in)
     {
       fprintf (stderr, "Input file does not exist!\n");
       exit (1);
     }
-  im = gdImageCreateFromGd2 (in);
+  if (argc == 7) {
+    im = gdImageCreateFromGd2Part (in, x, y, w, h);
+  } else {
+    im = gdImageCreateFromGd2 (in);
+  }
   fclose (in);
   if (!im)
     {