int XpmReadFileToImage( Display *display, char *filename, XImage **image_return, XImage **shapeimage_return, XpmAttributes *attributes) { XpmImage image; XpmInfo info; int ErrorStatus; xpmData mdata; xpmInitXpmImage(&image); xpmInitXpmInfo(&info); /* open file to read */ if ((ErrorStatus = OpenReadFile(filename, &mdata)) != XpmSuccess) return (ErrorStatus); /* create the XImage from the XpmData */ if (attributes) { xpmInitAttributes(attributes); xpmSetInfoMask(&info, attributes); ErrorStatus = xpmParseDataAndCreate(display, &mdata, image_return, shapeimage_return, &image, &info, attributes); } else ErrorStatus = xpmParseDataAndCreate(display, &mdata, image_return, shapeimage_return, &image, NULL, attributes); if (attributes) { if (ErrorStatus >= 0) /* no fatal error */ xpmSetAttributes(attributes, &image, &info); XpmFreeXpmInfo(&info); } xpmDataClose(&mdata); /* free the XpmImage */ XpmFreeXpmImage(&image); return (ErrorStatus); }
int XpmCreateXpmImageFromBuffer(char *buffer, XpmImage *image, XpmInfo *info) { xpmData mdata; int ErrorStatus; /* init returned values */ xpmInitXpmImage(image); xpmInitXpmInfo(info); /* open buffer to read */ xpmOpenBuffer(buffer, &mdata); /* create the XpmImage from the XpmData */ ErrorStatus = xpmParseData(&mdata, image, info); xpmDataClose(&mdata); return (ErrorStatus); }
int XpmReadFileToXpmImage( char *filename, XpmImage *image, XpmInfo *info) { xpmData mdata; int ErrorStatus; /* init returned values */ xpmInitXpmImage(image); xpmInitXpmInfo(info); /* open file to read */ if ((ErrorStatus = OpenReadFile(filename, &mdata)) != XpmSuccess) return (ErrorStatus); /* create the XpmImage from the XpmData */ ErrorStatus = xpmParseData(&mdata, image, info); xpmDataClose(&mdata); return (ErrorStatus); }