IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 17, 2010, 3:12:15 PM (16 years ago)
Author:
Paul Price
Message:

Preserve type in psFitsReadImageBuffer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/fits/psFitsImage.c

    r25002 r27313  
    498498    psImage *inImage;                   // Image to read in
    499499    if (floatType == PS_FITS_FLOAT_NONE) {
    500         inImage = psImageRecycle(outImage, numCols, numRows, info->psDatatype);
    501         outImage = psMemIncrRefCounter(inImage);
     500        if (!outImage || outImage->type.type == info->psDatatype) {
     501            outImage = psImageRecycle(outImage, numCols, numRows, info->psDatatype);
     502            inImage = psMemIncrRefCounter(outImage);
     503        } else {
     504            outImage = psImageRecycle(outImage, numCols, numRows, outImage->type.type);
     505            inImage = psImageAlloc(numCols, numRows, info->psDatatype);
     506        }
    502507    } else {
    503508        inImage = psImageAlloc(numCols, numRows, info->psDatatype);
     
    511516        return NULL;
    512517    }
    513     psFree(info);
    514518
    515519    if (floatType != PS_FITS_FLOAT_NONE) {
    516520        outImage = psFitsFloatImageFromDisk(outImage, inImage, floatType);
    517     }
     521    } else if (outImage->type.type != info->psDatatype) {
     522        outImage = psImageCopy(outImage, inImage, outImage->type.type);
     523    }
     524    psFree(info);
    518525    psFree(inImage);
    519526
Note: See TracChangeset for help on using the changeset viewer.