本文整理汇总了C++中pm_openr函数的典型用法代码示例。如果您正苦于以下问题:C++ pm_openr函数的具体用法?C++ pm_openr怎么用?C++ pm_openr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pm_openr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: processMapFile
static void
processMapFile(const char * const mapFileName,
struct pam * const outpamCommonP,
tupletable * const colormapP,
unsigned int * const colormapSizeP,
tuple * const firstColorP) {
/*----------------------------------------------------------------------------
Read a color map from the file named 'mapFileName'. It's a map that
associates each color in that file with a unique whole number. Return the
map as *colormapP, with the number of entries in it as *colormapSizeP.
Also determine the first color (top left) in the map file and return that
as *firstColorP.
-----------------------------------------------------------------------------*/
FILE * mapfile;
struct pam mappam;
tuple ** maptuples;
tuple firstColor;
mapfile = pm_openr(mapFileName);
maptuples = pnm_readpam(mapfile, &mappam, PAM_STRUCT_SIZE(tuple_type));
pm_close(mapfile);
computeColorMapFromMap(&mappam, maptuples, colormapP, colormapSizeP);
firstColor = pnm_allocpamtuple(&mappam);
pnm_assigntuple(&mappam, firstColor, maptuples[0][0]);
*firstColorP = firstColor;
pnm_freepamarray(maptuples, &mappam);
*outpamCommonP = mappam;
outpamCommonP->file = stdout;
}
示例2: getOrFakeAndMap
static void
getOrFakeAndMap(const char * const andPgmFname,
int const xorCols,
int const xorRows,
gray *** const andPGMarrayP,
pixval * const andMaxvalP,
colorhash_table * const andChtP,
const char ** const errorP) {
int andRows, andCols;
if (!andPgmFname) {
/* He's not supplying a bitmap for 'and'. Fake the bitmap. */
*andPGMarrayP = NULL;
*andMaxvalP = 1;
*andChtP = NULL;
*errorP = NULL;
} else {
FILE * andfile;
andfile = pm_openr(andPgmFname);
*andPGMarrayP = pgm_readpgm(andfile, &andCols, &andRows, andMaxvalP);
pm_close(andfile);
if ((andCols != xorCols) || (andRows != xorRows)) {
asprintfN(errorP,
"And mask and image have different dimensions "
"(%d x %d vs %d x %d). Aborting.",
andCols, xorCols, andRows, xorRows);
} else
*errorP = NULL;
}
}
示例3: main
int
main(int argc, char *argv[]) {
FILE * const ofP = stdout;
struct cmdlineInfo cmdline;
FILE* ifP;
bool eof;
pnm_init(&argc, argv);
parseCommandLine(argc, argv, &cmdline);
ifP = pm_openr(cmdline.inputFilespec);
eof = FALSE;
while (!eof) {
cutOneImage(ifP, cmdline, ofP);
pnm_nextimage(ifP, &eof);
}
pm_close(ifP);
pm_close(ofP);
return 0;
}
示例4: main
int
main(int argc, char *argv[]) {
FILE* ifP;
int eof; /* No more images in input */
unsigned int image_seq;
/* Sequence of current image in input file. First = 0 */
pnm_init( &argc, argv );
parse_command_line(argc, argv, &cmdline);
ifP = pm_openr(cmdline.input_file);
eof = FALSE;
for (image_seq = 0; !eof; image_seq++) {
const char *output_file_name; /* malloc'ed */
compute_output_name(cmdline.output_file_pattern, cmdline.padname,
image_seq,
&output_file_name);
pm_message("WRITING %s\n", output_file_name);
extract_one_image(ifP, output_file_name);
strfree(output_file_name);
pnm_nextimage(ifP, &eof);
}
pm_close(ifP);
return 0;
}
示例5: main
int
main(int argc,
char * argv[]) {
struct cmdlineInfo cmdline;
FILE * ifP;
unsigned int cols, rows;
pixval maxval;
xvPalette xvPalette;
ppm_init(&argc, argv);
parseCommandLine(argc, argv, &cmdline);
ifP = pm_openr(cmdline.inputFileName);
makeXvPalette(&xvPalette);
readXvHeader(ifP, &cols, &rows, &maxval);
writePpm(ifP, &xvPalette, cols, rows, maxval, stdout);
pm_close(ifP);
return 0;
}
示例6: readPpmPalette
static void
readPpmPalette(const char * const paletteFileName,
pixel (* const ppmPaletteP)[],
unsigned int * const paletteSizeP) {
FILE * pfP;
pixel ** pixels;
int cols, rows;
pixval maxval;
pfP = pm_openr(paletteFileName);
pixels = ppm_readppm(pfP, &cols, &rows, &maxval);
pm_close(pfP);
*paletteSizeP = rows * cols;
if (*paletteSizeP > MAXCOLORS)
pm_error("ordered palette image contains %d pixels. Maximum is %d",
*paletteSizeP, MAXCOLORS);
{
int j;
int row;
j = 0; /* initial value */
for (row = 0; row < rows; ++row) {
int col;
for (col = 0; col < cols; ++col)
(*ppmPaletteP)[j++] = pixels[row][col];
}
}
ppm_freearray(pixels, rows);
}
示例7: main
int
main(int argc, const char *argv[]) {
struct cmdlineInfo cmdline;
FILE * ifP;
pm_proginit(&argc, argv);
parseCommandLine(argc, argv, &cmdline);
ifP = pm_openr(cmdline.inputFileName);
switch (cmdline.direction) {
case DIR_TB:
wipeoutTb(ifP, stdout);
break;
case DIR_LR:
wipeoutLr(ifP, stdout);
break;
}
pm_close(ifP);
pm_close(stdout);
return 0;
}
示例8: readRelevantPixels
static void
readRelevantPixels(const char * const inputFilename,
unsigned int const hstepReq,
unsigned int const vstepReq,
unsigned int * const hstepP,
unsigned int * const vstepP,
sample *** const pixelsP,
struct pam * const pamP,
unsigned int * const hsamplesP) {
/*----------------------------------------------------------------------------
load the image, saving only the pixels we might actually inspect
-----------------------------------------------------------------------------*/
FILE * ifP;
unsigned int hstep;
unsigned int vstep;
ifP = pm_openr(inputFilename);
pnm_readpaminit(ifP, pamP, PAM_STRUCT_SIZE(tuple_type));
computeSteps(pamP, hstepReq, vstepReq, &hstep, &vstep);
load(pamP, hstep, pixelsP, hsamplesP);
*hstepP = hstep;
*vstepP = vstep;
pm_close(ifP);
}
示例9: main
int
main(int argc, char **argv) {
struct cmdlineInfo cmdline;
FILE * ifP;
tuplen ** tuplenarray;
struct pam inpam;
double sharpness;
pnm_init(&argc, argv);
parseCommandLine(argc, argv, &cmdline);
ifP = pm_openr(cmdline.inputFilespec);
tuplenarray = pnm_readpamn(ifP, &inpam, PAM_STRUCT_SIZE(tuple_type));
if (inpam.height < 3 || inpam.width < 3)
pm_error("sharpness is undefined for an image less than 3 pixels "
"in all directions. This image is %d x %d",
inpam.width, inpam.height);
computeSharpness(&inpam, tuplenarray, &sharpness);
printf("Sharpness = %f\n", sharpness);
pnm_freepamarrayn(tuplenarray, &inpam);
pm_close(ifP);
return 0;
}
示例10: dsCreateSource
struct sourceManager *
dsCreateSource(const char * const fileName) {
struct sourceManager * srcP;
MALLOCVAR(srcP);
if (srcP == NULL)
pm_error("Unable to get memory for the Jpeg library source manager.");
srcP->ifP = pm_openr(fileName);
srcP->jpegSourceMgr.init_source = dsInitSource;
srcP->jpegSourceMgr.fill_input_buffer = dsFillInputBuffer;
srcP->jpegSourceMgr.skip_input_data = dsSkipInputData;
srcP->jpegSourceMgr.resync_to_restart = jpeg_resync_to_restart;
srcP->jpegSourceMgr.term_source = dsTermSource;
srcP->prematureEof = FALSE;
srcP->currentBuffer = srcP->buffer1;
srcP->nextBuffer = srcP->buffer2;
srcP->jpegSourceMgr.bytes_in_buffer =
fread(srcP->currentBuffer, 1, BUFFER_SIZE, srcP->ifP);
srcP->jpegSourceMgr.next_input_byte = srcP->currentBuffer;
srcP->bytesInNextBuffer =
fread(srcP->nextBuffer, 1, BUFFER_SIZE, srcP->ifP);
return srcP;
}
示例11: main
int
main(int argc, char * argv[]) {
FILE* ifp;
bit** bits;
int rows, cols;
const char * inputFilename;
pbm_init(&argc, argv);
if (argc-1 > 0)
pm_error("Too many arguments (%d). The only valid argument is an "
"input file name.", argc-1);
else if (argc-1 == 1)
inputFilename = argv[1];
else
inputFilename = "-";
ifp = pm_openr(inputFilename);
bits = pbm_readpbm(ifp, &cols, &rows);
if (rows > 255)
pm_error("Image is too high: %d rows. Max height: 255 rows", rows);
if (cols > 255)
pm_error("Image is too wide: %d cols. Max width: 255 cols", cols);
generateMo(stdout, bits, cols, rows);
pm_close(ifp);
pbm_freearray(bits, rows);
exit(0);
}
示例12: openFiles
static void
openFiles(struct CmdlineInfo const cmdline,
unsigned int * const fileCtP,
struct pam ** const imgPamP,
const char *** const namesP) {
unsigned int fileCt;
struct pam * imgPam;
const char ** names;
fileCt = cmdline.nFiles > 0 ? cmdline.nFiles : 1;
MALLOCARRAY(imgPam, fileCt);
MALLOCARRAY(names, fileCt);
if (!imgPam || !names)
pm_error("out of memory");
if (cmdline.nFiles > 0) {
unsigned int i;
for (i = 0; i < cmdline.nFiles; ++i) {
imgPam[i].file = pm_openr(cmdline.inFileName[i]);
names[i] = strdup(cmdline.inFileName[i]);
}
} else {
imgPam[0].file = stdin;
names[0] = strdup("stdin");
}
*fileCtP = fileCt;
*imgPamP = imgPam;
*namesP = names;
}
示例13: readMapFile
static void
readMapFile(const char * const rmapFileName,
xelval const maxval,
gray * const lumamap) {
int rmcols, rmrows;
gray rmmaxv;
int rmformat;
FILE * rmapfP;
rmapfP = pm_openr(rmapFileName);
pgm_readpgminit(rmapfP, &rmcols, &rmrows, &rmmaxv, &rmformat);
if (rmmaxv != maxval)
pm_error("maxval in map file (%u) different from input (%u)",
rmmaxv, maxval);
if (rmrows != 1)
pm_error("Map must have 1 row. Yours has %u", rmrows);
if (rmcols != maxval + 1)
pm_error("Map must have maxval + 1 (%u) columns. Yours has %u",
maxval + 1, rmcols);
pgm_readpgmrow(rmapfP, lumamap, maxval+1, rmmaxv, rmformat);
pm_close(rmapfP);
}
示例14: main
int
main(int argc, const char ** argv) {
struct cmdlineInfo cmdline;
FILE * ifP;
IPDB * pdbP;
int status;
pm_proginit(&argc, argv);
parseCommandLine(argc, argv, &cmdline);
ifP = pm_openr(cmdline.inputFileName);
pdbP = ipdb_alloc(NULL);
if (pdbP == NULL)
pm_error("Could not allocate IPDB structure.");
status = ipdbRead(pdbP, ifP, cmdline.verbose);
if (status != 0)
pm_error("Image header read error: %s.", ipdb_err(status));
writeImgPam(pdbP, stdout);
writeText(pdbP, cmdline.notefile);
ipdb_free(pdbP);
pm_close(ifP);
return EXIT_SUCCESS;
}
示例15: initPatternPixel
static void
initPatternPixel(outGenerator * const outGenP,
struct cmdlineInfo const cmdline) {
struct patternPixelState * stateP;
FILE * patternFileP;
MALLOCVAR_NOFAIL(stateP);
patternFileP = pm_openr(cmdline.patFilespec);
stateP->patTuples =
pnm_readpam(patternFileP,
&stateP->patPam, PAM_STRUCT_SIZE(tuple_type));
pm_close(patternFileP);
stateP->xshift = cmdline.xshift;
stateP->yshift = cmdline.yshift;
stateP->magnifypat = cmdline.magnifypat;
outGenP->stateP = stateP;
outGenP->getTuple = &patternPixel;
outGenP->terminateState = &termPatternPixel;
outGenP->pam.format = stateP->patPam.format;
outGenP->pam.plainformat = stateP->patPam.plainformat;
outGenP->pam.depth = stateP->patPam.depth;
outGenP->pam.maxval = stateP->patPam.maxval;
strcpy(outGenP->pam.tuple_type, stateP->patPam.tuple_type);
if (cmdline.verbose)
reportImageParameters("Pattern file", &stateP->patPam);
}