Index: trunk/stac/src/stacRead.c
===================================================================
--- trunk/stac/src/stacRead.c	(revision 2897)
+++ trunk/stac/src/stacRead.c	(revision 3375)
@@ -8,23 +8,34 @@
     psArray *filenames = config->inputs;// The file names
     int nFiles = filenames->n;		// The number of input files
-    psArray *files = psArrayAlloc(nFiles); // The input files, to be returned
+    psArray *images = psArrayAlloc(nFiles); // The input files, to be returned
+    psRegion *imageRegion = psRegionAlloc(0, 0, 0, 0); // Region of image to read
 
-    psTrace("stac.read.images",1,"Reading input images....\n");
+    psTrace("stac.read.images", 1, "Reading input images....\n");
     for (int i = 0; i < nFiles; i++) {
+	psTrace("stac.read.images", 2, "Reading input image %s....\n",filenames->data[i]);
+	psFits *imageFile = psFitsAlloc(filenames->data[i]);
 	// We only read PHUs --- not mucking around with extensions for now
-	psTrace("stac.read.images",2,"Reading input image %s....\n",filenames->data[i]);
-	files->data[i] = psImageReadSection(NULL, 0, 0, 0, 0, 0, NULL, 0, filenames->data[i]);
-	if (files->data[i] == NULL) {
+	psImage *image = psFitsReadImage(NULL, imageFile, *imageRegion, 0);
+	if (image == NULL) {
 	    psErrorStackPrint(stderr,"Fatal error: Unable to read %s\n",filenames->data[i]);
 	    exit(EXIT_FAILURE);
 	}
-	// Big assumption: input images are 32-bit.
-	if (((psImage*)(files->data[i]))->type.type != PS_TYPE_F32) {
-	    psError("stac.read.images", "Image %d is not 32-bit\n",i);
+	psTrace("stac.read.images", 4, "Image %s is %dx%d\n", filenames->data[i], image->numCols,
+		image->numRows);
+	// Convert to 32-bit floating point, in necessary
+	if (image->type.type != PS_TYPE_F32) {
+	    psTrace("stac.read.images", 3, "Converting %s to floating point in memory....",
+		    filenames->data[i]);
+	    images->data[i] = psImageCopy(NULL, image, PS_TYPE_F32);
+	    psFree(image);
+	} else {
+	    images->data[i] = image;
 	}
+	psFree(imageFile);
     }
     psTrace("stac.read.images",1,"%d input images read.\n",nFiles);
+    psFree(imageRegion);
 
-    return files;
+    return images;
 }
 
