Exemplo n.º 1
0
static void
getcolors(void)			/* get xyY colors from standard input */
{
	int	gotwhite = 0;
	COLOR	whiteclr;
	int	n;
	float	xyYin[3];

	while (fgetval(stdin, 'i', &n) == 1) {		/* read colors */
		if ((n < 0) | (n > 24) ||
				fgetval(stdin, 'f', &xyYin[0]) != 1 ||
				fgetval(stdin, 'f', &xyYin[1]) != 1 ||
				fgetval(stdin, 'f', &xyYin[2]) != 1 ||
				(xyYin[0] < 0.) | (xyYin[1] < 0.) ||
				xyYin[0] + xyYin[1] > 1.) {
			fprintf(stderr, "%s: bad color input data\n",
					progname);
			exit(1);
		}
		if (n == 0) {				/* calibration white */
			xyY2RGB(whiteclr, xyYin);
			gotwhite++;
		} else {				/* standard color */
			n--;
			xyY2RGB(inpRGB[n], xyYin);
			inpflags |= 1L<<n;
		}
	}
					/* normalize colors */
	if (!gotwhite) {
		if (!(inpflags & 1L<<White)) {
			fprintf(stderr, "%s: missing input for White\n",
					progname);
			exit(1);
		}
		setcolor(whiteclr,
			colval(inpRGB[White],RED)/colval(mbRGB[White],RED),
			colval(inpRGB[White],GRN)/colval(mbRGB[White],GRN),
			colval(inpRGB[White],BLU)/colval(mbRGB[White],BLU));
	}
	for (n = 0; n < 24; n++)
		if (inpflags & 1L<<n)
			setcolor(inpRGB[n],
				colval(inpRGB[n],RED)/colval(whiteclr,RED),
				colval(inpRGB[n],GRN)/colval(whiteclr,GRN),
				colval(inpRGB[n],BLU)/colval(whiteclr,BLU));
}
Exemplo n.º 2
0
int load(char * fname, double * dados, int nrow, int ncol) {
// Carrega os dados do arquivo "fname" na matriz "dados", de dimensão "nrow" x "ncol"
	char * pchar, buf [bufsize];
	FILE * fp = fopen (fname, "r");
	if (fp == NULL) {
		printf("Não conseguiu ler o arquivo %s. \n", fname);
		return 1;
		}
	fgets(buf,bufsize,fp);
	fgets(buf,bufsize,fp);
	for (int i = 0; i < nrow; ++ i) {
		fgets(buf,bufsize,fp);
		for (int k = 0; k < ncol; ++ k) {
			* dados = fgetval(buf);
			dados ++ ;
			}
		}
	fclose(fp);
	return 0;
	}