IFFChunk()s can be nested in a tree-like structure. Use this method
to get a specific chunk with a specific label.
Usage
# S4 method for class 'IFFChunk,character,integer'
getIFFChunk(x, chunk.path, chunk.number)
# S4 method for class 'IFFChunk,character,missing'
getIFFChunk(x, chunk.path, chunk.number)
# S4 method for class 'IFFChunk,character,missing,IFFChunk'
getIFFChunk(x, chunk.path, chunk.number = NULL) <- value
# S4 method for class 'IFFChunk,character,integer,IFFChunk'
getIFFChunk(x, chunk.path, chunk.number = NULL) <- valueArguments
- x
An
IFFChunk()object from which the nestedIFFChunk()should be extracted an returned.- chunk.path
A
vectorof 4characterlong strings of IFF chunk labels, specifying the path of the target IFF chunk. For example:c("ILBM", "BODY")means, get the "BODY" chunk from inside the "ILBM" chunk.- chunk.number
A
vectorof the same length aschunk.path, withintegerindex numbers. Sometimes a chunk can contain a list of chunks with the same label. With this argument you can specify which element should be returned. By default (when missing), the first element is always returned.- value
An
IFFChunk()with which the target chunk should be replaced. Make sure thatvalueis of the samechunk.typeas the last chunk specified in thechunk.path.
Value
Returns an IFFChunk() object nested inside x at the
specified path. Or in case of the replace method the original chunk x is
returned with the target chunk replaced by value.
Details
IFFChunk objects have 4 character identifiers, indicating what type
of chunk you are dealing with. These chunks can be nested inside of each other.
Use this method to extract specific chunks by referring to there respective
identifiers. The identifiers are shown when calling print on an
IFFChunk(). If a specified path doesn't exist, this method throws a
`subscript out of range' error.
See also
Other iff.operations:
IFFChunk-class,
WaveToIFF(),
as.raster.AmigaBasicShape(),
interpretIFFChunk(),
rasterToIFF(),
rawToIFFChunk(),
read.iff(),
write.iff()
Examples
## load an IFF file
example.iff <- read.iff(system.file("ilbm8lores.iff", package = "AmigaFFH"))
## Get the BMHD (bitmap header) from the ILBM (interleaved bitmap) chunk:
bmhd <- getIFFChunk(example.iff, c("ILBM", "BMHD"))
## This is essentially doing the same thing, but we now explicitly
## tell the method to get the first element for each specified label:
bmhd <- getIFFChunk(example.iff, c("ILBM", "BMHD"), c(1L, 1L))
## Let's modify the bitmap header and replace it in the parent IFF chunk.
bmhd.itpt <- interpretIFFChunk(bmhd)
## Let's disable the masking, the bitmap will no longer be transparent:
bmhd.itpt$Masking <- "mskNone"
bmhd <- IFFChunk(bmhd.itpt)
## Now replace the header from the original iff with the modified header:
getIFFChunk(example.iff, c("ILBM", "BMHD")) <- bmhd