RNifti Versions Save

Fast R and C++ access to NIfTI images

v1.6.0

3 months ago

R interface

  • The niftiHeader() function gains an "unused" argument. If TRUE, the function's return value includes those legacy ANALYZE-7.5 fields that are formally unused by the NIfTI-1 standard (or the last few bytes of a NIfTI-2 header). These fields cannot be set, however, as the niftilib I/O functions discard them, and the core nifti_image structure does not represent them. They also cannot be accessed with the $ operator shorthand. The option is therefore only useful to inspect file headers created by other software.

API changes

  • The NiftiImage class now has constructors taking a NIfTI header structure.

Other changes

  • The NiftiImageData::Iterator inner class now holds a pointer, not a reference, to its parent. This doesn't really change the API, but ensures that iterator objects are mutable, which is formally required by the C++ standard. (Prompted by Timothy Anderson, issue #31.)
  • There is now support for standalone use on Windows with the Visual C++ toolchain, including an nmake-compatible makefile, and this is now tested as part of package CI. The package also no longer includes symlinks, for better portability. (Prompted by Timothy Anderson, issue #31.)
  • The bundled zlib is now version 1.3. The included zlib headers are no longer exposed to client packages if the system zlib is used for linkage, as the two may be incompatible.

v1.5.1

5 months ago
  • Several warnings from recent compilers relating to printf-style format strings have been resolved.

v1.5.0

5 months ago
  • The writeNifti() and writeAnalyze() functions gain a "compression" argument to control the compression level used when writing gzipped images.
  • The viewer will now show 4D images with fourth dimension 3 as vectors if the RNifti.d4vectors option is TRUE. This is off by default (following the previous behaviour) as it's less explicit than an image with a vector intent.
  • The niftiHeader() function will no longer call asNifti() on an argument that looks like a path, as this will wastefully read in the pixel data when only the metadata is needed.
  • Support for MriImage objects with complex or RGB types has been added.
  • cfloat and cdouble are now additionally accepted as datatypes for 32-bit and 64-bit floating-point complex types, respectively.
  • The upstream NIfTI libraries have been updated.