507 |
|
static int |
508 |
|
rmx_write_spec(const RMATRIX *rm, FILE *fp) |
509 |
|
{ |
510 |
– |
int prevNCSAMP = NCSAMP; |
510 |
|
uby8 *scan = (uby8 *)malloc((rm->ncomp+1)*rm->ncols); |
511 |
|
int ok = 1; |
512 |
|
SCOLOR scol; |
514 |
|
|
515 |
|
if (!scan) |
516 |
|
return(0); |
518 |
– |
NCSAMP = rm->ncomp; /* XXX: kosher? */ |
517 |
|
for (i = 0; i < rm->nrows; i++) { |
518 |
|
for (j = rm->ncols; j--; ) { |
519 |
|
const double *dp = rmx_lval(rm,i,j); |
520 |
< |
for (k = NCSAMP; k--; ) |
520 |
> |
for (k = rm->ncomp; k--; ) |
521 |
|
scol[k] = dp[k]; |
522 |
< |
scolor2scolr(scan+j*(NCSAMP+1), scol, NCSAMP); |
522 |
> |
scolor2scolr(scan+j*(rm->ncomp+1), scol, rm->ncomp); |
523 |
|
} |
524 |
< |
if (fwritescolrs(scan, rm->ncols, fp) < 0) { |
524 |
> |
if (fwritescolrs(scan, rm->ncomp, rm->ncols, fp) < 0) { |
525 |
|
ok = 0; |
526 |
|
break; |
527 |
|
} |
528 |
|
} |
529 |
|
free(scan); |
532 |
– |
NCSAMP = prevNCSAMP; |
530 |
|
return(ok); |
531 |
|
} |
532 |
|
|