Example #1
0
/* To check memory leaks, run such as 'valgrind --leak-check=full ./bug00185' */
int
main()
{
	gdImagePtr im;
	char *path;

	path = gdTestFilePath("xpm/bug00185.xpm");
	im = gdImageCreateFromXpm(path);
	free(path);
	if (!im) return 1;
	gdImageDestroy(im);

	path = gdTestFilePath("xpm/bug00185_damaged.xpm");
	im = gdImageCreateFromXpm(path);
	free(path);
	if (!im) return 0;
	gdImageDestroy(im);

	return 2;
}
Example #2
0
int
graphicsGdImageCreateFromXpm(gdImage **dst, const char *path)
{
#ifdef GD_XPM
  size_t len = strlen(path);
  char *temp = calloc(len + 1, sizeof(char)); /* with terminating `\0' */
  if (temp == NULL) {
	graphicsGdRaiseCondition("calloc failed: %s", "graphicsGdImageCreateFromXpm");
	return -1;
  }
  strncpy(temp, path, len + 1);
  *dst = gdImageCreateFromXpm(temp);
  free(temp);
  return 0;
#else
  graphicsGdRaiseCondition("unsupported format: %s", "Xpm");
  return -2;
#endif
}
Example #3
0
int
main(void)
{
	gdImagePtr im;
	char path[1024];
	int c, result;

	sprintf(path, "%s/xpm/bug00166.xpm", GDTEST_TOP_DIR);
	im = gdImageCreateFromXpm(path);
	if (!im) {
		return 2;
	}
	c = gdImageGetPixel(im, 1, 1);
	if (gdImageRed(im, c)      == 0xAA
	        && gdImageGreen(im, c) == 0xBB
	        && gdImageBlue(im, c)  == 0xCC) {
		result = 0;
	} else {
		result = 1;
	}
	gdImageDestroy(im);
	return result;
}
Example #4
0
int
main(void)
{
  gdImagePtr im;
  char path[1024];
  int c, result;

  sprintf(path, "%s/xpm/color_name.xpm", GDTEST_TOP_DIR);
  im = gdImageCreateFromXpm(path);
  if (!im) {
    return 2;
  }
  c = gdImageGetPixel(im, 2, 2);
  if (gdImageRed(im, c)      == 0xFF
      && gdImageGreen(im, c) == 0xFF
      && gdImageBlue(im, c)  == 0x0) {
    result = 0;
  } else {
    result = 1;
  }
  gdImageDestroy(im);
  return result;
}
Example #5
0
static gdImagePtr gd_loadimage(GVJ_t * job, usershape_t *us)
{
    assert(job);
    assert(us);
    assert(us->name);

    if (us->data) {
	if (us->datafree != gd_freeimage) {
	     us->datafree(us);        /* free incompatible cache data */
	     us->data = NULL;
	     us->datafree = NULL;
	}
    }
    if (!us->data) { /* read file into cache */
	if (!gvusershape_file_access(us))
	    return NULL;
	switch (us->type) {
#if 0
	    case FT_GD:
		im = gdImageCreateFromGd(us->f);
		break;
	    case FT_GD2:
		im = gdImageCreateFromGd2(us->f);
		break;
#endif
#ifdef HAVE_GD_PNG
	    case FT_PNG:
		us->data = (void*)gdImageCreateFromPng(us->f);
		break;
#endif
#ifdef HAVE_GD_GIF
	    case FT_GIF:
		us->data = (void*)gdImageCreateFromGif(us->f);
		break;
#endif
#ifdef HAVE_GD_JPEG
	    case FT_JPEG:
		us->data = (void*)gdImageCreateFromJpeg(us->f);
		break;
#endif
#if 0
#ifdef HAVE_GD_XPM
	    case FT_XPM:
		us->data = (void*)gdImageCreateFromXpm(us->f);
		break;
#endif
#ifdef HAVE_GD_WBMP
	    case FT_WBMP:
		us->data = (void*)gdImageCreateFromWbmp(us->f);
		break;
#endif
#endif
	    default:
		break;
	}
        if (us->data)
	    us->datafree = gd_freeimage;

	gvusershape_file_release(us);
    }
    return (gdImagePtr)(us->data);
}