@@ -51,15 +51,15 @@ def load(filename):
51
51
return nifti2nipy (ni_img )
52
52
53
53
54
- def save (img , filename , io_dtype = None ):
54
+ def save (img , filename , dtype_from = 'data' ):
55
55
"""Write the image to a file.
56
56
57
57
Parameters
58
58
----------
59
59
img : An `Image` object
60
60
filename : string
61
61
Should be a valid filename.
62
- io_dtype : None or dtype specifier, optional
62
+ dtype_from : {'data', 'header'} or dtype specifier, optional
63
63
dtype to save data to disk. Set into header before save as hint for
64
64
output format to chose dtype to save to. Not every format supports every
65
65
dtype, so some values of this parameter will raise errors. The default
@@ -127,11 +127,17 @@ def save(img, filename, io_dtype=None):
127
127
saver = nib .spm2analyze .save
128
128
else :
129
129
raise ValueError ('Cannot save file type "%s"' % ftype )
130
+ dtype_from_str = isinstance (dtype_from , basestring )
131
+ if dtype_from_str and dtype_from == 'header' :
132
+ saver (ni_img , filename )
133
+ return img
130
134
# Set output dtype if possible
131
135
hdr = ni_img .get_header ()
132
- # Set io dtype if possible
133
- if not io_dtype is None :
134
- hdr .set_data_dtype (io_dtype )
136
+ if dtype_from_str and dtype_from == 'data' :
137
+ io_dtype = img .get_data ().dtype
138
+ else :
139
+ io_dtype = dtype_from
140
+ hdr .set_data_dtype (io_dtype )
135
141
# make new image
136
142
saver (ni_img , filename )
137
143
return img
0 commit comments