| 436 |
|
for (i = 0; i < rm->nrows; i++) { |
| 437 |
|
for (j = rm->ncols; j--; ) { |
| 438 |
|
const double *dp = rmx_lval(rm,i,j); |
| 439 |
< |
setcolr(scan[j], dp[0], dp[1], dp[2]); |
| 439 |
> |
if (rm->ncomp == 1) |
| 440 |
> |
setcolr(scan[j], dp[0], dp[0], dp[0]); |
| 441 |
> |
else |
| 442 |
> |
setcolr(scan[j], dp[0], dp[1], dp[2]); |
| 443 |
|
} |
| 444 |
|
if (fwritecolrs(scan, rm->ncols, fp) < 0) { |
| 445 |
|
free(scan); |
| 492 |
|
fprintf(fp, "NROWS=%d\n", rm->nrows); |
| 493 |
|
fprintf(fp, "NCOLS=%d\n", rm->ncols); |
| 494 |
|
fprintf(fp, "NCOMP=%d\n", rm->ncomp); |
| 495 |
< |
} else if (rm->ncomp != 3) { /* wrong # components? */ |
| 496 |
< |
CMATRIX *cm; /* convert & write */ |
| 494 |
< |
if (rm->ncomp != 1) /* only convert grayscale */ |
| 495 |
< |
return(0); |
| 496 |
< |
if (!(cm = cm_from_rmatrix(rm))) |
| 497 |
< |
return(0); |
| 498 |
< |
fputformat(cm_fmt_id[dtype], fp); |
| 499 |
< |
fputc('\n', fp); |
| 500 |
< |
ok = cm_write(cm, dtype, fp); |
| 501 |
< |
cm_free(cm); |
| 502 |
< |
return(ok); |
| 503 |
< |
} |
| 495 |
> |
} else if ((rm->ncomp != 3) & (rm->ncomp != 1)) |
| 496 |
> |
return(0); /* wrong # components */ |
| 497 |
|
if ((dtype == DTfloat) | (dtype == DTdouble)) |
| 498 |
|
fputendian(fp); /* important to record */ |
| 499 |
|
fputformat(cm_fmt_id[dtype], fp); |