as.raster {grDevices} | R Documentation |
Functions to create a raster object (representing a bitmap image) and coerce other objects to a raster object.
is.raster(x) as.raster(x, ...) ## S3 method for class 'matrix' as.raster(x, max = 1, ...) ## S3 method for class 'array' as.raster(x, max = 1, ...) ## S3 method for class 'logical' as.raster(x, max = 1, ...) ## S3 method for class 'numeric' as.raster(x, max = 1, ...) ## S3 method for class 'character' as.raster(x, max = 1, ...) ## S3 method for class 'raw' as.raster(x, max = 255L, ...)
x |
any R object. |
max |
number giving the maximum of the color values range. |
... |
further arguments passed to or from other methods. |
An object of class "raster"
is a matrix of colour values as
given by rgb
representing a bitmap image.
It is not expected that the user will need to call these functions
directly; functions to render bitmap images in graphics packages will
make use of the as.raster()
function to generate a raster
object from their input.
The as.raster()
function is (S3) generic so methods can be
written to convert other R objects to a raster object.
The default implementation for numeric matrices interprets scalar values on black-to-white scale.
Raster objects can be subsetted like a matrix and it is possible to assign to a subset of a raster object.
There is a method for converting a raster object to a
matrix
(of colour strings).
Raster objects can be compared for equality or inequality (with each other or with a colour string).
There is a is.na
method which returns a logical matrix
of the same dimensions as the raster object. Note that NA
values are interpreted as the fully transparent colour by some (but
not all) graphics devices.
For as.raster()
, a raster object.
For is.raster()
, a logical indicating whether
x
is a raster object.
Raster images are internally represented row-first, which can cause confusion when trying to manipulate a raster object. The recommended approach is to coerce a raster to a matrix, perform the manipulation, then convert back to a raster.
# A red gradient as.raster(matrix(hcl(0, 80, seq(50, 80, 10)), nrow = 4, ncol = 5)) # Vectors are 1-column matrices ... # character vectors are color names ... as.raster(hcl(0, 80, seq(50, 80, 10))) # numeric vectors are greyscale ... as.raster(1:5, max = 5) # logical vectors are black and white ... as.raster(1:10 %% 2 == 0) # ... unless nrow/ncol are supplied ... as.raster(1:10 %% 2 == 0, nrow = 1) # Matrix can also be logical or numeric (or raw) ... as.raster(matrix(c(TRUE, FALSE), nrow = 3, ncol = 2)) as.raster(matrix(1:3/4, nrow = 3, ncol = 4)) # An array can be 3-plane numeric (R, G, B planes) ... as.raster(array(c(0:1, rep(0.5, 4)), c(2, 1, 3))) # ... or 4-plane numeric (R, G, B, A planes) as.raster(array(c(0:1, rep(0.5, 6)), c(2, 1, 4))) # subsetting r <- as.raster(matrix(colors()[1:100], ncol = 10)) r[, 2] r[2:4, 2:5] # assigning to subset r[2:4, 2:5] <- "white" # comparison r == "white"