Releases: jonclayden/RNifti
Releases · jonclayden/RNifti
Version 1.9.0
- Methods for the
Math,Ops,ComplexandSummarygroup generics have
been added for theinternalImageclass, as well asis.na()andmean().
This prevents R from falling back on thecharactermethods, which aren't
helpful. In most cases these implementations simply call the relevant generic
on the array version of the image; the exception isSummary, which calls a
C++ implementation to avoid allocating memory for an R array when only a
summary value is needed. (Reported by Martin Wilson, issue #39 anddivest
issue #6.) - Image value range calculation and NA handling in the core C++ code has been
improved, particularly for the 32-bit integer datatype.
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.readNiftiandwriteNiftieach gain a "json" argument,
and the newimageAttributesfunction can be used to get and set attributes
for images. Conversion to or from JSON requires thejsonlitepackage;
this is an R-only feature for now. - If a plain string is passed to
lyras the "scale" argument and doesn't
match a known scale name from theshadespackage, it is now assumed to be
a single literal colour name. (Prompted by Ellyn Butler, issue #36.) - Initialisation of the complex
NAvalue in C++ code has been simplified to
avoid remaining compilation problems on some platforms. (Issues #35 and #38.)
Version 1.7.0
- Indexing into an
rgbArrayor an RGB-valuedinternalImagenow produces a
result of typergbArray, to maintain the special interpretation of these
values, and facilitate conversion to strings. rgbArraynow also gains anas.rastermethod.- The test suite has been moved from
testthattotinytest. - 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.
Version 1.6.1
- A misaligned memory read caught by clang-UBSan has been corrected.
Version 1.6.0
R interface
- The
niftiHeader()function gains an "unused" argument. IfTRUE, 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 theniftilibI/O functions
discard them, and the corenifti_imagestructure 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
NiftiImageclass now has constructors taking a NIfTI header structure.
Other changes
- The
NiftiImageData::Iteratorinner 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 annmake-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
zlibis now version 1.3. The includedzlibheaders are no
longer exposed to client packages if the systemzlibis used for linkage,
as the two may be incompatible.
Version 1.5.1
- Several warnings from recent compilers relating to
printf-style format
strings have been resolved.
Version 1.5.0
- The
writeNifti()andwriteAnalyze()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.d4vectorsoption isTRUE. 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 callasNifti()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
MriImageobjects with complex or RGB types has been added. cfloatandcdoubleare now additionally accepted as datatypes for 32-bit
and 64-bit floating-point complex types, respectively.- The upstream NIfTI libraries have been updated.