Recent Releases of RNifti

RNifti - Version 1.8.0

  • It is now possible to read, write and manipulate additional image metadata fields stored in JSON "sidecar" files like those used by the Brain Imaging Data Structure. readNifti and writeNifti each gain a "json" argument, and the new imageAttributes function can be used to get and set attributes for images. Conversion to or from JSON requires the jsonlite package; this is an R-only feature for now.
  • If a plain string is passed to lyr as the "scale" argument and doesn't match a known scale name from the shades package, it is now assumed to be a single literal colour name. (Prompted by Ellyn Butler, issue #36.)
  • Initialisation of the complex NA value in C++ code has been simplified to avoid remaining compilation problems on some platforms. (Issues #35 and #38.)

- C
Published by jonclayden over 1 year ago

RNifti - Version 1.7.0

  • Indexing into an rgbArray or an RGB-valued internalImage now produces a result of type rgbArray, to maintain the special interpretation of these values, and facilitate conversion to strings.
  • rgbArray now also gains an as.raster method.
  • The test suite has been moved from testthat to tinytest.
  • An API accommodation for versions of R before 3.1.0 has now been removed, as it produces a note in the current R-devel.

- C
Published by jonclayden about 2 years ago

RNifti - Version 1.6.1

  • A misaligned memory read caught by clang-UBSan has been corrected.

- C
Published by jonclayden about 2 years ago

RNifti - Version 1.6.0

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.

- C
Published by jonclayden over 2 years ago

RNifti - Version 1.5.1

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

- C
Published by jonclayden over 2 years ago

RNifti - Version 1.5.0

  • 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.

- C
Published by jonclayden over 2 years ago