Convert images to/from native raster image format

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(grid)
library(nara)

Create a native raster image

nr <- nr_new(10, 10, fill = 'white')
class(nr)

Save/Load native raster images to/from PNG and JPEG

The {fastpng}, {png} and {jpeg} packages allow images to be loaded directly as native raster images.

png_file <- system.file("image", "deer-1.png", package="nara")
jpg_file <- system.file("image", "deer-1.jpg", package="nara")
nr <- fastpng::read_png(png_file, type = 'nativeraster')
class(nr)
plot(nr)
nr <- png::readPNG(png_file, native = TRUE)
class(nr)
plot(nr)
nr <- jpeg::readJPEG(jpg_file, native = TRUE)
class(nr)
plot(nr)

These packages will also automatically detect and save native raster images

fastpng::write_png(nr, "test.png")
jpeg::writeJPEG(nr, "test.jpg")
png::writePNG(nr, "test.png")

Convert a regular R raster image to/from native raster image format

ras <- matrix(c('brown', 'darkblue', 'darkblue', 'brown'), 2, 2)
ras
class(ras)
grid.raster(ras, interpolate = FALSE)
nr <- nara::raster_to_nr(ras)
nr
class(nr)
plot(nr)

Convert a regular R array image to/from native raster image format

arr <- array(c(
  1, 1, 0,
  0, 0, 0,
  0, 0, 0, 
  1, 1, 0
), dim = c(2, 2, 3))

arr
class(arr)
grid.raster(arr, interpolate = FALSE)
nr <- nara::array_to_nr(arr)
nr
class(nr)
plot(nr)


Try the nara package in your browser

Any scripts or data that you put into this service are public.

nara documentation built on May 28, 2026, 5:07 p.m.